Kurz: Vytvoření vlastní role Azure pomocí Azure PowerShellu

Pokud předdefinované role Azure nevyhovují konkrétním potřebám vaší organizace, můžete vytvořit vlastní role. V tomto kurzu pomocí Azure PowerShellu vytvoříte vlastní roli Čtenář lístků podpory. Vlastní role umožňuje uživateli zobrazit vše v řídicí rovině předplatného a také otevřít lístky podpory.

V tomto kurzu se naučíte:

  • Vytvoření vlastní role
  • Výpis vlastních rolí
  • Aktualizace vlastní role
  • Odstranění vlastní role

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Požadavky

Pro absolvování tohoto kurzu potřebujete:

Přihlášení k Azure PowerShellu

Přihlaste se k Azure PowerShellu.

Vytvoření vlastní role

Nejjednodušší způsob, jak vytvořit vlastní roli, je začít s předdefinovanou rolí, upravit ji a pak vytvořit novou roli.

  1. V PowerShellu pomocí příkazu Get-AzProviderOperation získejte seznam operací pro poskytovatele prostředků Microsoft.Support. Je užitečné znát operace, které máte k dispozici k vytváření oprávnění. Můžete také zobrazit seznam všech operací v operacích poskytovatele prostředků Azure.

    Get-AzProviderOperation "Microsoft.Support/*" | FT Operation, Description -AutoSize
    
    Operation                              Description
    ---------                              -----------
    Microsoft.Support/register/action      Registers to Support Resource Provider
    Microsoft.Support/supportTickets/read  Gets Support Ticket details (including status, severity, contact ...
    Microsoft.Support/supportTickets/write Creates or Updates a Support Ticket. You can create a Support Tic...
    
  2. K výstupu role Čtenář ve formátu JSON použijte příkaz Get-AzRoleDefinition.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. V editoru otevřete soubor ReaderSupportRole.json.

    Následuje ukázka výstupu JSON. Informace o různých vlastnostech najdete v tématu Vlastní role Azure.

    {
      "Name": "Reader",
      "Id": "acdd72a7-3385-48ef-bd42-f606fba81ae7",
      "IsCustom": false,
      "Description": "Lets you view everything, but not make any changes.",
      "Actions": [
        "*/read"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/"
      ]
    }
    
  4. Upravte soubor JSON a přidejte "Microsoft.Support/*" akci do Actions vlastnosti. Nezapomeňte za akci čtení zahrnout čárku. Tato akce umožní uživateli vytvářet lístky podpory.

  5. Pomocí příkazu Get-AzSubscription získejte ID vašeho předplatného.

    Get-AzSubscription
    
  6. Do vlastnosti AssignableScopes přidejte ID vašeho předplatného v následujícím formátu: "/subscriptions/00000000-0000-0000-0000-000000000000".

    Musíte přidat explicitní ID předplatných, jinak tuto roli nebudete moct importovat do svého předplatného.

  7. Odstraňte řádek vlastnosti Id a změňte vlastnost IsCustom na hodnotu true.

  8. Změňte vlastnost Name na Čtenář lístků podpory a vlastnost Description na Zobrazení všeho v předplatném a také otevírání lístků podpory.

    Váš soubor JSON by měl vypadat následovně:

    {
      "Name": "Reader Support Tickets",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  9. Pokud chcete vytvořit novou vlastní roli, použijte příkaz New-AzRoleDefinition a zadejte definiční soubor role JSON.

    New-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole.json"
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    

    Nová vlastní role je teď k dispozici na webu Azure Portal a můžete ji přiřadit uživatelům, skupinám nebo instančním objektům stejně jako předdefinované role.

Výpis vlastních rolí

  • Pokud chcete zobrazit seznam všech vlastních rolí, použijte příkaz Get-AzRoleDefinition .

    Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
    
    Name                   IsCustom
    ----                   --------
    Reader Support Tickets     True
    

    Vlastní roli můžete zobrazit také na webu Azure Portal.

    screenshot of custom role imported in the Azure portal

Aktualizace vlastní role

Pokud chcete aktualizovat vlastní roli, můžete aktualizovat soubor JSON nebo použít objekt PSRoleDefinition.

  1. Pokud chcete aktualizovat soubor JSON, použijte příkaz Get-AzRoleDefinition k výstupu vlastní role ve formátu JSON.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. Otevřete soubor v editoru.

  3. V Actionsaplikaci přidejte akci pro vytvoření a správu nasazení "Microsoft.Resources/deployments/*"skupin prostředků .

    Váš aktualizovaný soubor JSON by měl vypadat následovně:

    {
      "Name": "Reader Support Tickets",
      "Id": "22222222-2222-2222-2222-222222222222",
      "IsCustom": true,
      "Description": "View everything in the subscription and also open support tickets.",
      "Actions": [
        "*/read",
        "Microsoft.Support/*",
        "Microsoft.Resources/deployments/*"
      ],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ]
    }
    
  4. Pokud chcete aktualizovat vlastní roli, použijte příkaz Set-AzRoleDefinition a zadejte aktualizovaný soubor JSON.

    Set-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole2.json"
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    
  5. Pokud chcete objekt použít PSRoleDefintion k aktualizaci vlastní role, nejprve pomocí příkazu Get-AzRoleDefinition získejte roli.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Add Voláním metody přidejte akci pro čtení nastavení diagnostiky.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. K aktualizaci role použijte Set-AzRoleDefinition.

    Set-AzRoleDefinition -Role $role
    
    Name             : Reader Support Tickets
    Id               : 22222222-2222-2222-2222-222222222222
    IsCustom         : True
    Description      : View everything in the subscription and also open support tickets.
    Actions          : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*,
                       Microsoft.Insights/diagnosticSettings/*/read}
    NotActions       : {}
    DataActions      : {}
    NotDataActions   : {}
    AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
    

Odstranění vlastní role

  1. Pomocí příkazu Get-AzRoleDefinition získejte ID vlastní role.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. Použijte příkaz Remove-AzRoleDefinition a zadejte ID role k odstranění vlastní role.

    Remove-AzRoleDefinition -Id "22222222-2222-2222-2222-222222222222"
    
    Confirm
    Are you sure you want to remove role definition with id '22222222-2222-2222-2222-222222222222'.
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):
    
  3. Když se zobrazí výzva k potvrzení, zadejte Y.

Další kroky