Teilen über


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:

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.

  1. Ü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.
  2. Erstellen Sie eine neue Datei namens ReaderSupportRole.json.

  3. Ö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}"
      ]
    }
    
  4. 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/*"
    
  5. Rufen Sie die ID Ihres Abonnements mithilfe des Befehls az account list ab.

    az account list --output table
    
  6. 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.

  7. Ä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"
      ]
    }
    
  8. 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.

    screenshot of custom role imported in the Azure portal

Aktualisieren einer benutzerdefinierten Rolle

Wenn Sie die benutzerdefiniert Rolle aktualisieren möchten, aktualisieren Sie die JSON-Datei und dann die benutzerdefinierte Rolle.

  1. Öffnen Sie die Datei „ReaderSupportRole.json“.

  2. 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"
      ]
    }
    
  3. 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"
    

Nächste Schritte