Tutorial: Erstellen einer benutzerdefinierten Azure-Rolle mithilfe der Azure CLI
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 der Azure CLI 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.
Voraussetzungen
Zum Durcharbeiten dieses Tutorials benötigen Sie Folgendes:
- Berechtigungen zum Erstellen benutzerdefinierter Rollen, z . B. Benutzerzugriffsadministrator
- Azure Cloud Shell oder Azure CLI.
Anmelden bei der Azure-Befehlszeilenschnittstelle
Melden Sie sich bei der Azure-Befehlszeilenschnittstelle an.
Erstellen einer benutzerdefinierten Rolle
Zum Erstellen einer benutzerdefinierten Rolle beginnen Sie am besten mit einer JSON-Vorlage, fügen Ihre Änderungen hinzu und erstellen dann eine neue Rolle.
Überprüfen Sie die Liste der Aktionen für den Microsoft.Support-Ressourcenanbieter. Es ist hilfreich, die Aktionen zu kennen, die zum Erstellen der Berechtigungen verfügbar sind.
Aktion BESCHREIBUNG Microsoft.Support/register/action Führt die Registrierung beim Supportressourcenanbieter durch. Microsoft.Support/supportTickets/read Ruft Details zu Supporttickets (einschließlich Status, Schweregrad, Kontaktdetails und Kommunikation) oder die Liste mit Supporttickets (abonnementübergreifend) ab. Microsoft.Support/supportTickets/write Erstellt oder aktualisiert ein Supportticket. Sie können ein Supportticket zu technischen Problemen bzw. zu Problemen im Zusammenhang mit Abrechnung, Kontingenten oder Abonnementverwaltung erstellen. Der Schweregrad, die Kontaktinformationen und die Kommunikation für vorhandene Supporttickets können aktualisiert werden. Erstellen Sie eine neue Datei namens ReaderSupportRole.json.
Öffnen Sie „ReaderSupportRole.json“ in einem Editor, und fügen Sie den folgenden JSON-Code hinzu.
Informationen zu den verschiedenen Eigenschaften finden Sie unter Benutzerdefinierte Rollen für Azure-Ressourcen.
{ "Name": "", "IsCustom": true, "Description": "", "Actions": [], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/{subscriptionId1}" ] }
Fügen Sie der
Actions
-Eigenschaft die folgenden Aktionen hinzu. Diese Aktionen ermöglichen dem Benutzer, alle Inhalte des Abonnement anzuzeigen und Supporttickets zu erstellen."*/read", "Microsoft.Support/*"
Rufen Sie die ID Ihres Abonnements mithilfe des Befehls az account list ab.
az account list --output table
Ersetzen Sie in
AssignableScopes
die Zeichenfolge{subscriptionId1}
durch Ihre Abonnement-ID.Sie müssen explizite Abonnement-IDs hinzufügen. Andernfalls können Sie die Rolle nicht in Ihr Abonnement importieren.
Ä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 az role definition create und geben die JSON-Rollendefinitionsdatei an.
az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
{ "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" }
Die neue benutzerdefinierte Rolle ist jetzt 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 az role definition list mit dem Parameter
--custom-role-only
.az role definition list --custom-role-only true
[ { "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*", "Microsoft.Insights/diagnosticSettings/*/read" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" } ]
Sie können die benutzerdefinierte Rolle auch im Azure-Portal anzeigen.
Aktualisieren einer benutzerdefinierten Rolle
Wenn Sie die benutzerdefiniert Rolle aktualisieren möchten, aktualisieren Sie die JSON-Datei und dann die benutzerdefinierte Rolle.
Öffnen Sie die Datei „ReaderSupportRole.json“.
Fügen Sie in
Actions
die Aktion zum Erstellen und Verwalten von Ressourcengruppenbereitstellungen ("Microsoft.Resources/deployments/*"
) hinzu. Achten Sie darauf, ein Komma nach der vorherigen Aktion einzufügen.Ihre aktualisierte 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/*", "Microsoft.Resources/deployments/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Führen Sie zum Aktualisieren der benutzerdefinierten Rolle den Befehl az role definition update aus, und geben Sie die aktualisierte JSON-Datei an.
az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
{ "additionalProperties": {}, "assignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ], "description": "View everything in the subscription and also open support tickets.", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222", "name": "22222222-2222-2222-2222-222222222222", "permissions": [ { "actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "additionalProperties": {}, "dataActions": [], "notActions": [], "notDataActions": [] } ], "roleName": "Reader Support Tickets", "roleType": "CustomRole", "type": "Microsoft.Authorization/roleDefinitions" }
Löschen einer benutzerdefinierten Rolle
Verwenden Sie den Befehl az role definition delete, und geben Sie den Rollennamen oder die Rollen-ID an, um die benutzerdefinierte Rolle zu löschen.
az role definition delete --name "Reader Support Tickets"