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 von Azure PowerShell. 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:
- Berechtigungen zum Erstellen von benutzerdefinierten Rollen, wie z. B. Benutzerzugriffsadministrator
- Azure Cloud Shell oder Azure PowerShell
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.
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...
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
Ö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": [ "/" ] }
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.Rufen Sie die ID Ihres Abonnements mithilfe des Befehls Get-AzSubscription ab.
Get-AzSubscription
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.
Löschen Sie die Zeile mit der Eigenschaft
Id
, und ändern Sie die EigenschaftIsCustom
intrue
.Ändern Sie die Eigenschaften
Name
undDescription
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" ] }
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.
Aktualisieren einer benutzerdefinierten Rolle
Um die benutzerdefinierte Rolle zu aktualisieren, können Sie die JSON-Datei aktualisieren oder das Objekt PSRoleDefinition
verwenden.
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
Öffnen Sie die Datei in einem Editor.
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" ] }
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}
Wenn Sie zum Aktualisieren der benutzerdefinierten Rolle das Objekt
PSRoleDefinition
verwenden möchten, führen Sie zuerst den Befehl Get-AzRoleDefinition aus, um die Rolle abzurufen.$role = Get-AzRoleDefinition "Reader Support Tickets"
Rufen Sie die
Add
-Methode auf, um die Aktion zum Lesen der Diagnoseeinstellungen hinzuzufügen.$role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
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
Verwenden Sie zum Abrufen der ID der benutzerdefinierten Rolle den Befehl Get-AzRoleDefinition.
Get-AzRoleDefinition "Reader Support Tickets"
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"):
Wenn Sie zum Bestätigen aufgefordert werden, geben Sie Y ein.