Självstudie: Skapa en anpassad Azure-roll med Hjälp av Azure PowerShell

Om de inbyggda Azure-rollerna inte uppfyller organisationens specifika behov kan du skapa egna anpassade roller. För den här självstudien skapar du en anpassad roll med namnet Reader Support Tickets (Läsare av supportbegäranden) med hjälp av Azure PowerShell. Med den anpassade rollen kan användaren visa allt i kontrollplanet för en prenumeration och även öppna supportärenden.

I den här självstudien lär du dig att:

  • Skapa en anpassad roll
  • Lista anpassade roller
  • Uppdatera en anpassad roll
  • Ta bort en anpassad roll

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Förutsättningar

För att kunna genomföra den här kursen behöver du följande:

Logga in till Azure PowerShell

Logga in till Azure PowerShell.

Skapa en anpassad roll

Det enklaste sättet att skapa en anpassad roll är att utgå från en inbyggd roll, redigera den och sedan skapa en ny roll.

  1. I PowerShell använder du kommandot Get-AzProviderOperation för att hämta listan över åtgärder för resursprovidern Microsoft.Support. Det är bra att känna till de åtgärder som är tillgängliga för att skapa dina behörigheter. Du kan också se en lista över alla åtgärder i Azure-resursprovideråtgärder.

    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. Använd kommandot Get-AzRoleDefinition för att mata ut rollen Reader (Läsare) i JSON-format.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. Öppna filen ReaderSupportRole.json i en textredigerare.

    Följande visar JSON-utdata. Information om de olika egenskaperna finns i Anpassade Azure-roller.

    {
      "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. Redigera JSON-filen för att lägga till åtgärden "Microsoft.Support/*" i Actions egenskapen. Se till att inkludera ett kommatecken efter läsåtgärden. Den här åtgärden tillåter att användare skapar supportbegäranden.

  5. Hämta ID för din prenumeration med hjälp av kommandot Get-AzSubscription.

    Get-AzSubscription
    
  6. I AssignableScopes lägger du till ditt prenumerations-ID i följande format: "/subscriptions/00000000-0000-0000-0000-000000000000"

    Du måste lägga till explicita prenumerations-ID:n; annars tillåts du inte importera rollen i din prenumeration.

  7. Ta bort egenskapsraden Id och ändra egenskapen IsCustom till true.

  8. Ändra egenskaperna Name och Description till ”Reader Support Tickets” (Läsare av supportbegäranden) och ”View everything in the subscription and also open support tickets” (Visa allt i prenumerationen och även öppna supportbegäranden).

    Din JSON-fil ska se ut så här:

    {
      "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. För att skapa en ny anpassad roll använder du kommandot New-AzRoleDefinition och anger JSON-rolldefinitionsfilen.

    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}
    

    Den nya anpassade rollen är nu tillgänglig i Azure-portalen och kan tilldelas till användare, grupper eller tjänstens huvudnamn precis som inbyggda roller.

Lista anpassade roller

  • Om du vill lista alla dina anpassade roller använder du kommandot Get-AzRoleDefinition.

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

    Du kan även visa den anpassade rollen i Azure-portalen.

    screenshot of custom role imported in the Azure portal

Uppdatera en anpassad roll

Om du vill uppdatera den anpassade rollen kan du uppdatera JSON-filen eller använda objektet PSRoleDefinition.

  1. För att uppdatera JSON-filen använder du kommandot Get-AzRoleDefinition för att mata ut den anpassade rollen i JSON-format.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. Öppna filen i en textredigerare.

  3. I Actionslägger du till åtgärden för att skapa och hantera resursgruppsdistributioner "Microsoft.Resources/deployments/*".

    Din uppdaterade JSON-fil ska se ut så här:

    {
      "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. För att uppdatera den anpassade rollen använder du kommandot Set-AzRoleDefinition och anger den uppdaterade JSON-filen.

    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. Om du vill använda objektet PSRoleDefintion för att uppdatera din anpassade roll använder du först kommandot Get-AzRoleDefinition för att hämta rollen.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Add Anropa metoden för att lägga till åtgärden för att läsa diagnostikinställningar.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. Använd kommandot Set-AzRoleDefinition för att uppdatera rollen.

    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}
    

Ta bort en anpassad roll

  1. Använd kommandot Get-AzRoleDefinition för att hämta ID för den anpassade rollen.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. Använd kommandot Remove-AzRoleDefinition och ange roll-ID för att ta bort den anpassade rollen.

    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. När du ombeds bekräfta skriver du Y.

Nästa steg