Tutorial: Erstellen einer benutzerdefinierten Azure-Rolle mithilfe von Azure PowerShell

Wenn die integrierten Azure-Rollen die Anforderungen Ihrer Organisation nicht erfüllen, können Sie Ihre eigenen benutzerdefinierten Rollen erstellen. In diesem Tutorial erstellen Sie mithilfe von Azure PowerShell eine benutzerdefinierte Rolle namens „Reader Support Tickets“. Die benutzerdefinierte Rolle ermöglicht Benutzer*innen, alle Inhalte auf der Steuerungsebene eines Abonnements anzuzeigen und auch Supporttickets zu erstellen.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen einer benutzerdefinierten Rolle
  • Auflisten benutzerdefinierter Rollen
  • Aktualisieren einer benutzerdefinierten Rolle
  • Löschen einer benutzerdefinierten Rolle

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

Zum Durcharbeiten dieses Tutorials benötigen Sie Folgendes:

Anmelden bei Azure PowerShell

Melden Sie sich bei Azure PowerShell an.

Erstellen einer benutzerdefinierten Rolle

Zum Erstellen einer benutzerdefinierten Rolle beginnen Sie am besten mit einer integrierten Rolle, bearbeiten sie und erstellen dann eine neue Rolle.

  1. Verwenden Sie in PowerShell den Befehl Get-AzProviderOperation, um die Liste der Vorgänge für den Ressourcenanbieter „Microsoft.Support“ abzurufen. Es ist hilfreich, die Vorgänge zu kennen, die zum Erstellen der Berechtigungen verfügbar sind. Eine Liste der verfügbaren Vorgänge finden Sie auch unter Vorgänge für Azure-Ressourcenanbieter.

    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. Verwenden Sie den Befehl Get-AzRoleDefinition, um die Rolle Leser im JSON-Format auszugeben.

    Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
    
  3. Öffnen Sie die Datei ReaderSupportRole.json in einem Editor.

    Die JSON-Ausgabe sieht wie folgt aus. Informationen zu den verschiedenen Eigenschaften finden Sie unter Benutzerdefinierte Rollen für Azure-Ressourcen.

    {
      "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. Bearbeiten Sie die JSON-Datei, um der Actions-Eigenschaft die Aktion "Microsoft.Support/*" hinzuzufügen. Achten Sie darauf, ein Komma nach der Leseaktion einzufügen. Diese Aktion ermöglicht dem Benutzer das Erstellen von Supporttickets.

  5. Rufen Sie die ID Ihres Abonnements mithilfe des Befehls Get-AzSubscription ab.

    Get-AzSubscription
    
  6. Fügen Sie in AssignableScopes Ihre Abonnement-ID im folgenden Format ein: "/subscriptions/00000000-0000-0000-0000-000000000000".

    Sie müssen explizite Abonnement-IDs hinzufügen. Andernfalls können Sie die Rolle nicht in Ihr Abonnement importieren.

  7. Löschen Sie die Zeile mit der Eigenschaft Id, und ändern Sie die Eigenschaft IsCustom in true.

  8. Ändern Sie die Eigenschaften Name und Description in „Reader Support Tickets“ und „View everything in the subscription and also open support tickets“.

    Ihre JSON-Datei sollte wie folgt aussehen:

    {
      "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. Zum Erstellen der neuen benutzerdefinierten Rolle verwenden Sie den Befehl New-AzRoleDefinition und geben die JSON-Rollendefinitionsdatei an.

    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}
    

    Die neue benutzerdefinierte Rolle ist jetzt im Azure-Portal verfügbar und kann wie integrierte Rollen Benutzern, Gruppen oder Dienstprinzipalen zugewiesen werden.

Auflisten benutzerdefinierter Rollen

  • Verwenden Sie zum Auflisten aller benutzerdefinierten Rollen den Befehl Get-AzRoleDefinition.

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

    Sie können die benutzerdefinierte Rolle auch im Azure-Portal anzeigen.

    screenshot of custom role imported in the Azure portal

Aktualisieren einer benutzerdefinierten Rolle

Um die benutzerdefinierte Rolle zu aktualisieren, können Sie die JSON-Datei aktualisieren oder das Objekt PSRoleDefinition verwenden.

  1. Verwenden Sie zum Aktualisieren der JSON-Datei den Befehl Get-AzRoleDefinition, um die benutzerdefinierte Rolle im JSON-Format auszugeben.

    Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
    
  2. Öffnen Sie die Datei in einem Editor.

  3. Fügen Sie in Actions die Aktion zum Erstellen und Verwalten von Ressourcengruppenbereitstellungen ("Microsoft.Resources/deployments/*") hinzu.

    Ihre aktualisierte JSON-Datei sollte wie folgt aussehen:

    {
      "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ühren Sie zum Aktualisieren der benutzerdefinierten Rolle den Befehl Set-AzRoleDefinition aus, und geben Sie die aktualisierte JSON-Datei an.

    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. Wenn Sie zum Aktualisieren der benutzerdefinierten Rolle das Objekt PSRoleDefintion verwenden möchten, führen Sie zuerst den Befehl Get-AzRoleDefinition aus, um die Rolle abzurufen.

    $role = Get-AzRoleDefinition "Reader Support Tickets"
    
  6. Rufen Sie die Add-Methode auf, um die Aktion zum Lesen der Diagnoseeinstellungen hinzuzufügen.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. Aktualisieren Sie die Rolle mithilfe von 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}
    

Löschen einer benutzerdefinierten Rolle

  1. Verwenden Sie zum Abrufen der ID der benutzerdefinierten Rolle den Befehl Get-AzRoleDefinition.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. Verwenden Sie den Befehl Remove-AzRoleDefinition, und geben Sie die Rollen-ID an, um die benutzerdefinierte Rolle zu löschen.

    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. Wenn Sie zum Bestätigen aufgefordert werden, geben Sie Y ein.

Nächste Schritte