Sdílet prostřednictvím


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. Pokud chcete začít, přečtěte si 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.

    snímek obrazovky webu Azure Portal s importovanou vlastní rolí

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