Erstellen oder Aktualisieren von benutzerdefinierten Rollen in Azure über die REST-API

Wichtig

Das Hinzufügen einer Verwaltungsgruppe zu AssignableScopes befindet sich derzeit in der Vorschauphase. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Wenn die integrierten Azure-Rollen die Anforderungen Ihrer Organisation nicht erfüllen, können Sie Ihre eigenen benutzerdefinierten Rollen erstellen. In diesem Artikel wird beschrieben, wie Sie benutzerdefinierte Rollen mithilfe der REST-API auflisten, erstellen, aktualisieren oder löschen.

Auflisten benutzerdefinierter Rollen

Verwenden Sie zum Auflisten aller benutzerdefinierten Rollen in einem Verzeichnis die Rollendefinitionen – Liste-REST-API.

  1. Beginnen Sie mit der folgenden Anforderung:

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2015-07-01&$filter={filter}
    
  2. Ersetzen Sie {Filter} mit dem Rollentyp.

    Filtern BESCHREIBUNG
    $filter=type+eq+'CustomRole' Auf dem CustomRole-Typ basierender Filter

Auflisten benutzerdefinierter Rollen in einem Bereich

Verwenden Sie zum Auflisten benutzerdefinierter Rollen in einem Bereich die Rollendefinitionen – Liste-REST-API.

  1. Beginnen Sie mit der folgenden Anforderung:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?api-version=2015-07-01&$filter={filter}
    
  2. Ersetzen Sie innerhalb des URIs {scope} mit dem Bereich, für den Sie die Rollen auflisten möchten.

    `Scope` type
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resource group
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Verwaltungsgruppe
  3. Ersetzen Sie {Filter} mit dem Rollentyp.

    Filtern BESCHREIBUNG
    $filter=type+eq+'CustomRole' Auf dem CustomRole-Typ basierender Filter

Auflisten einer Definition einer benutzerdefinierten Rolle nach Namen

Verwenden Sie die Rollendefinitionen – Abrufen-REST-API zum Abrufen von Informationen zu einer benutzerdefinierten Rolle nach ihrem Anzeigenamen.

  1. Beginnen Sie mit der folgenden Anforderung:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?api-version=2015-07-01&$filter={filter}
    
  2. Ersetzen Sie innerhalb des URIs {scope} mit dem Bereich, für den Sie die Rollen auflisten möchten.

    `Scope` type
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resource group
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Verwaltungsgruppe
  3. Ersetzen Sie {Filter} mit dem Anzeigenamen für die Rolle.

    Filtern BESCHREIBUNG
    $filter=roleName+eq+'{roleDisplayName}' Verwenden Sie die URL-codierte Form des genauen Anzeigenamens der Rolle. Beispiel: $filter=roleName+eq+'Virtual%20Machine%20Contributor'.

Auflisten einer Definition einer benutzerdefinierten Rolle nach ID

Verwenden Sie die Rollendefinitionen – Abrufen-REST-API zum Abrufen von Informationen zu einer benutzerdefinierten Rolle nach ihrem eindeutigen Bezeichner.

  1. Verwenden Sie die Rollendefinitionen – Liste-REST-API zum Abrufen des GUID-Bezeichners für die Rolle.

  2. Beginnen Sie mit der folgenden Anforderung:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2015-07-01
    
  3. Ersetzen Sie innerhalb des URIs {scope} mit dem Bereich, für den Sie die Rollen auflisten möchten.

    `Scope` type
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resource group
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Verwaltungsgruppe
  4. Ersetzen Sie {roledefinitionid} durch den GUID-Bezeichner der Rollendefinition.

Erstellen einer benutzerdefinierten Rolle

Um eine benutzerdefinierte Rolle zu erstellen, verwenden Sie die Rollendefinitionen – Erstellen oder Aktualisieren-REST-API. Um diese API aufzurufen, müssen Sie als Benutzer angemeldet sein, dem eine Rolle zugewiesen ist, die über die Microsoft.Authorization/roleDefinitions/write-Berechtigung für alle assignableScopes verfügt. Unter den integrierten Rollen verfügen nur Besitzer und Benutzerzugriffsadministrator über diese Berechtigung.

  1. Überprüfen Sie die Liste der Ressourcenanbietervorgänge, die zum Erstellen von Berechtigungen für die benutzerdefinierte Rolle verfügbar sind.

  2. Verwenden Sie ein GUID-Tool, um einen eindeutigen Bezeichner zu generieren, der für den benutzerdefinierten Rollenbezeichner verwendet wird. Das Format des Bezeichners ist: 00000000-0000-0000-0000-000000000000

  3. Beginnen Sie mit folgender Anforderung und folgendem Text:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2015-07-01
    
    {
      "name": "{roleDefinitionId}",
      "properties": {
        "roleName": "",
        "description": "",
        "type": "CustomRole",
        "permissions": [
          {
            "actions": [
    
            ],
            "notActions": [
    
            ]
          }
        ],
        "assignableScopes": [
          "/subscriptions/{subscriptionId1}",
          "/subscriptions/{subscriptionId2}",
          "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}",
          "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}",
          "/providers/Microsoft.Management/managementGroups/{groupId1}"
        ]
      }
    }
    
  4. Ersetzen Sie im URI {scope} durch die ersten assignableScopes der benutzerdefinierten Rolle.

    `Scope` type
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resource group
    providers/Microsoft.Management/managementGroups/{groupId1} Verwaltungsgruppe
  5. Ersetzen Sie {roleDefinitionId} durch den GUID-Bezeichner der benutzerdefinierten Rolle.

  6. Ersetzen Sie im Anforderungstext {roleDefinitionId} mit dem GUID-Bezeichner.

  7. Wenn assignableScopes ein Abonnement oder eine Ressourcengruppe ist, ersetzen Sie die {subscriptionId} - oder {resourceGroup} -Instanz durch Ihre Bezeichner.

  8. Wenn assignableScopes eine Verwaltungsgruppe ist, ersetzen Sie die {GroupID} Instanz durch ihren Verwaltungsgruppenbezeichner. Das Hinzufügen von Verwaltungsgruppen zu assignableScopes befindet sich derzeit in der Vorschauphase.

  9. Fügen Sie in der actions-Eigenschaft die Aktionen hinzu, deren Ausführung die Rolle zulässt.

  10. Fügen Sie in der notActions-Eigenschaft die Aktionen hinzu, die von den zulässigen actions ausgeschlossen sind.

  11. Geben Sie in den Eigenschaften roleName und description einen eindeutigen Rollennamen und eine Beschreibung an. Weitere Informationen zu den Eigenschaften finden Sie unter Benutzerdefinierte Rollen in Azure.

    Es folgt ein Beispiel für einen Anforderungstext:

    {
      "name": "88888888-8888-8888-8888-888888888888",
      "properties": {
        "roleName": "Virtual Machine Operator",
        "description": "Can monitor and restart virtual machines.",
        "type": "CustomRole",
        "permissions": [
          {
            "actions": [
              "Microsoft.Storage/*/read",
              "Microsoft.Network/*/read",
              "Microsoft.Compute/*/read",
              "Microsoft.Compute/virtualMachines/start/action",
              "Microsoft.Compute/virtualMachines/restart/action",
              "Microsoft.Authorization/*/read",
              "Microsoft.ResourceHealth/availabilityStatuses/read",
              "Microsoft.Resources/subscriptions/resourceGroups/read",
              "Microsoft.Insights/alertRules/*",
              "Microsoft.Support/*"
            ],
            "notActions": []
          }
        ],
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000",
          "/providers/Microsoft.Management/managementGroups/marketing-group"
        ]
      }
    }
    

Aktualisieren einer benutzerdefinierten Rolle

Um eine benutzerdefinierte Rolle zu aktualisieren, verwenden Sie die Rollendefinitionen – Erstellen oder Aktualisieren-REST-API. Um diese API aufzurufen, müssen Sie als Benutzer angemeldet sein, dem eine Rolle zugewiesen ist, die über die Microsoft.Authorization/roleDefinitions/write-Berechtigung für alle assignableScopes verfügt. Unter den integrierten Rollen verfügen nur Besitzer und Benutzerzugriffsadministrator über diese Berechtigung.

  1. Verwenden Sie die Rollendefinitionen – Liste- oder Rollendefinitionen – Abrufen-REST-API zum Abrufen von Informationen zu der benutzerdefinierten Rolle. Weitere Informationen finden Sie im oben stehenden Abschnitt Auflisten benutzerdefinierter Rollen.

  2. Beginnen Sie mit der folgenden Anforderung:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2015-07-01
    
  3. Ersetzen Sie im URI {scope} durch die ersten assignableScopes der benutzerdefinierten Rolle.

    `Scope` type
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resource group
    providers/Microsoft.Management/managementGroups/{groupId1} Verwaltungsgruppe
  4. Ersetzen Sie {roleDefinitionId} durch den GUID-Bezeichner der benutzerdefinierten Rolle.

  5. Erstellen Sie basierend auf den Informationen über die benutzerdefinierte Rolle einen Anforderungstext mit folgendem Format:

    {
      "name": "{roleDefinitionId}",
      "properties": {
        "roleName": "",
        "description": "",
        "type": "CustomRole",
        "permissions": [
          {
            "actions": [
    
            ],
            "notActions": [
    
            ]
          }
        ],
        "assignableScopes": [
          "/subscriptions/{subscriptionId1}",
          "/subscriptions/{subscriptionId2}",
          "/subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}",
          "/subscriptions/{subscriptionId2}/resourceGroups/{resourceGroup2}",
          "/providers/Microsoft.Management/managementGroups/{groupId1}"
        ]
      }
    }
    
  6. Aktualisieren Sie den Anforderungstext mit den Änderungen, die Sie an der benutzerdefinierten Rolle vornehmen möchten.

    Im Folgenden sehen Sie ein Beispiel für einen Anforderungstext mit einer neu hinzugefügten Diagnoseeinstellungenaktion:

    {
      "name": "88888888-8888-8888-8888-888888888888",
      "properties": {
        "roleName": "Virtual Machine Operator",
        "description": "Can monitor and restart virtual machines.",
        "type": "CustomRole",
        "permissions": [
          {
            "actions": [
              "Microsoft.Storage/*/read",
              "Microsoft.Network/*/read",
              "Microsoft.Compute/*/read",
              "Microsoft.Compute/virtualMachines/start/action",
              "Microsoft.Compute/virtualMachines/restart/action",
              "Microsoft.Authorization/*/read",
              "Microsoft.ResourceHealth/availabilityStatuses/read",
              "Microsoft.Resources/subscriptions/resourceGroups/read",
              "Microsoft.Insights/alertRules/*",
              "Microsoft.Insights/diagnosticSettings/*",
              "Microsoft.Support/*"
            ],
            "notActions": []
          }
        ],
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000",
          "/providers/Microsoft.Management/managementGroups/marketing-group"
        ]
      }
    }
    

Löschen einer benutzerdefinierten Rolle

Verwenden Sie zum Löschen einer benutzerdefinierten Rolle die Rollendefinitionen – Löschen-REST-API. Um diese API aufzurufen, müssen Sie als Benutzer angemeldet sein, dem eine Rolle zugewiesen ist, die über die Microsoft.Authorization/roleDefinitions/delete-Berechtigung für alle assignableScopes verfügt. Unter den integrierten Rollen verfügen nur Besitzer und Benutzerzugriffsadministrator über diese Berechtigung.

  1. Verwenden Sie die Rollendefinitionen – Liste- oder Rollendefinitionen – Abrufen-REST-API zum Abrufen des GUID-Bezeichners der benutzerdefinierten Rolle. Weitere Informationen finden Sie im oben stehenden Abschnitt Auflisten benutzerdefinierter Rollen.

  2. Beginnen Sie mit der folgenden Anforderung:

    DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2015-07-01
    
  3. Ersetzen Sie innerhalb des URIs {scope} mit dem Bereich, in dem Sie die benutzerdefinierte Rolle löschen möchten.

    `Scope` type
    subscriptions/{subscriptionId1} Subscription
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resource group
    providers/Microsoft.Management/managementGroups/{groupId1} Verwaltungsgruppe
  4. Ersetzen Sie {roleDefinitionId} durch den GUID-Bezeichner der benutzerdefinierten Rolle.

Nächste Schritte