Aangepaste Azure-rollen maken of bijwerken met behulp van de REST API

Als de ingebouwde rollen van Azure niet voldoen aan de specifieke behoeften van uw organisatie, kunt u uw eigen aangepaste rollen maken. In dit artikel wordt beschreven hoe u aangepaste rollen kunt weergeven, maken, bijwerken of verwijderen met behulp van de REST API.

Vereisten

U moet de volgende versie gebruiken:

  • 2015-07-01 of hoger

Zie API-versies van Azure RBAC REST API's voor meer informatie.

Alle aangepaste roldefinities weergeven

Als u alle aangepaste roldefinities in een tenant wilt weergeven, gebruikt u de roldefinities - List REST API.

  • In het volgende voorbeeld ziet u alle aangepaste roldefinities in een tenant:

    Aanvragen

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
    

    Respons

    {
        "value": [
            {
                "properties": {
                    "roleName": "Billing Reader Plus",
                    "type": "CustomRole",
                    "description": "Read billing data and download invoices",
                    "assignableScopes": [
                        "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
                    ],
                    "permissions": [
                        {
                            "actions": [
                                "Microsoft.Authorization/*/read",
                                "Microsoft.Billing/*/read",
                                "Microsoft.Commerce/*/read",
                                "Microsoft.Consumption/*/read",
                                "Microsoft.Management/managementGroups/read",
                                "Microsoft.CostManagement/*/read",
                                "Microsoft.Billing/invoices/download/action",
                                "Microsoft.CostManagement/exports/*"
                            ],
                            "notActions": [
                                "Microsoft.CostManagement/exports/delete"
                            ],
                            "dataActions": [],
                            "notDataActions": []
                        }
                    ],
                    "createdOn": "2021-05-22T21:57:23.5764138Z",
                    "updatedOn": "2021-05-22T21:57:23.5764138Z",
                    "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
                    "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
                },
                "id": "/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
                "type": "Microsoft.Authorization/roleDefinitions",
                "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
            }
        ]
    }
    

Alle aangepaste roldefinities in een bereik weergeven

Als u aangepaste roldefinities in een bereik wilt weergeven, gebruikt u de roldefinities - Rest API vermelden .

  1. Begin met de volgende aanvraag:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. Vervang {scope} in de URI door het bereik waarvoor u de rollen wilt weergeven.

    Bereik Type
    subscriptions/{subscriptionId1} Abonnement
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resourcegroep
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Beheergroep
  3. Vervang {filter} door het roltype.

    Filteren Beschrijving
    $filter=type+eq+'CustomRole' Filteren op basis van het type CustomRole

    In het volgende voorbeeld ziet u alle aangepaste roldefinities in een abonnement:

    Aanvragen

    GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
    

    Respons

    {
        "value": [
            {
                "properties": {
                    "roleName": "Billing Reader Plus",
                    "type": "CustomRole",
                    "description": "Read billing data and download invoices",
                    "assignableScopes": [
                        "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
                    ],
                    "permissions": [
                        {
                            "actions": [
                                "Microsoft.Authorization/*/read",
                                "Microsoft.Billing/*/read",
                                "Microsoft.Commerce/*/read",
                                "Microsoft.Consumption/*/read",
                                "Microsoft.Management/managementGroups/read",
                                "Microsoft.CostManagement/*/read",
                                "Microsoft.Billing/invoices/download/action",
                                "Microsoft.CostManagement/exports/*"
                            ],
                            "notActions": [
                                "Microsoft.CostManagement/exports/delete"
                            ],
                            "dataActions": [],
                            "notDataActions": []
                        }
                    ],
                    "createdOn": "2021-05-22T21:57:23.5764138Z",
                    "updatedOn": "2021-05-22T21:57:23.5764138Z",
                    "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
                    "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
                },
                "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
                "type": "Microsoft.Authorization/roleDefinitions",
                "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
            }
        ]
    }
    

Een aangepaste roldefinitie op naam weergeven

Als u informatie wilt over een aangepaste roldefinitie op basis van de weergavenaam, gebruikt u de roldefinities - REST API ophalen .

  1. Begin met de volgende aanvraag:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. Vervang {scope} in de URI door het bereik waarvoor u de rollen wilt weergeven.

    Bereik Type
    subscriptions/{subscriptionId1} Abonnement
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resourcegroep
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Beheergroep
  3. Vervang {filter} door de weergavenaam voor de rol.

    Filteren Beschrijving
    $filter=roleName+eq+'{roleDisplayName}' Gebruik de URL-gecodeerde vorm van de exacte weergavenaam van de rol. Bijvoorbeeld: $filter=roleName+eq+'Virtual%20Machine%20Contributor'

    In het volgende voorbeeld ziet u een aangepaste roldefinitie met de naam Billing Reader Plus in een abonnement:

    Aanvragen

    GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName+eq+'Billing Reader Plus'&api-version=2022-04-01
    

    Respons

    {
        "value": [
            {
                "properties": {
                    "roleName": "Billing Reader Plus",
                    "type": "CustomRole",
                    "description": "Read billing data and download invoices",
                    "assignableScopes": [
                        "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
                    ],
                    "permissions": [
                        {
                            "actions": [
                                "Microsoft.Authorization/*/read",
                                "Microsoft.Billing/*/read",
                                "Microsoft.Commerce/*/read",
                                "Microsoft.Consumption/*/read",
                                "Microsoft.Management/managementGroups/read",
                                "Microsoft.CostManagement/*/read",
                                "Microsoft.Billing/invoices/download/action",
                                "Microsoft.CostManagement/exports/*"
                            ],
                            "notActions": [
                                "Microsoft.CostManagement/exports/delete"
                            ],
                            "dataActions": [],
                            "notDataActions": []
                        }
                    ],
                    "createdOn": "2021-05-22T21:57:23.5764138Z",
                    "updatedOn": "2021-05-22T21:57:23.5764138Z",
                    "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
                    "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
                },
                "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
                "type": "Microsoft.Authorization/roleDefinitions",
                "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
            }
        ]
    }
    

Een aangepaste roldefinitie per id weergeven

Als u informatie wilt ophalen over een aangepaste roldefinitie op basis van de unieke id, gebruikt u de roldefinities - REST API ophalen .

  1. Gebruik de roldefinities - List REST API om de GUID-id voor de rol op te halen.

  2. Begin met de volgende aanvraag:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. Vervang {scope} in de URI door het bereik waarvoor u de rollen wilt weergeven.

    Bereik Type
    subscriptions/{subscriptionId1} Abonnement
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resourcegroep
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Beheergroep
  4. Vervang {roleDefinitionId} door de GUID-id van de roldefinitie.

    In het volgende voorbeeld ziet u een aangepaste roldefinitie met de id 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c in een abonnement:

    Aanvragen

    GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c?api-version=2022-04-01
    

    Respons

    {
        "properties": {
            "roleName": "Billing Reader Plus",
            "type": "CustomRole",
            "description": "Read billing data and download invoices",
            "assignableScopes": [
                "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15"
            ],
            "permissions": [
                {
                    "actions": [
                        "Microsoft.Authorization/*/read",
                        "Microsoft.Billing/*/read",
                        "Microsoft.Commerce/*/read",
                        "Microsoft.Consumption/*/read",
                        "Microsoft.Management/managementGroups/read",
                        "Microsoft.CostManagement/*/read",
                        "Microsoft.Billing/invoices/download/action",
                        "Microsoft.CostManagement/exports/*"
                    ],
                    "notActions": [
                        "Microsoft.CostManagement/exports/delete"
                    ],
                    "dataActions": [],
                    "notDataActions": []
                }
            ],
            "createdOn": "2021-05-22T21:57:23.5764138Z",
            "updatedOn": "2021-05-22T21:57:23.5764138Z",
            "createdBy": "68f66d4c-c0eb-4009-819b-e5315d677d70",
            "updatedBy": "68f66d4c-c0eb-4009-819b-e5315d677d70"
        },
        "id": "/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions/17adabda-4bf1-4f4e-8c97-1f0cab6dea1c",
        "type": "Microsoft.Authorization/roleDefinitions",
        "name": "17adabda-4bf1-4f4e-8c97-1f0cab6dea1c"
    }
    

Een aangepaste rol maken

Als u een aangepaste rol wilt maken, gebruikt u de roldefinities - REST API maken of bijwerken . Als u deze API wilt aanroepen, moet u zijn aangemeld met een gebruiker waaraan een rol is toegewezen met de Microsoft.Authorization/roleDefinitions/write machtiging voor alle assignableScopes. Van de ingebouwde rollen omvatten alleen eigenaar en gebruikerstoegang Beheer istrator deze machtiging.

  1. Bekijk de lijst met resourceproviderbewerkingen die beschikbaar zijn om de machtigingen voor uw aangepaste rol te maken.

  2. Gebruik een GUID-hulpprogramma om een unieke id te genereren die wordt gebruikt voor de aangepaste rol-id. De id heeft de volgende indeling: 00000000-0000-0000-0000-000000000000

  3. Begin met de volgende aanvraag en hoofdtekst:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-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. Vervang {scope} in de URI door de eerste assignableScopes van de aangepaste rol.

    Bereik Type
    subscriptions/{subscriptionId1} Abonnement
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resourcegroep
    providers/Microsoft.Management/managementGroups/{groupId1} Beheergroep
  5. Vervang {roleDefinitionId} door de GUID-id van de aangepaste rol.

  6. Vervang {roleDefinitionId} in de aanvraagbody door de GUID-id.

  7. Als assignableScopes dit een abonnement of resourcegroep is, vervangt u de exemplaren van {subscriptionId} of {resourceGroup} door uw id's.

  8. Als assignableScopes dit een beheergroep is, vervangt u het exemplaar van {groupId} door de id van uw beheergroep.

  9. Voeg in de actions eigenschap de acties toe die door de rol kunnen worden uitgevoerd.

  10. Voeg in de notActions eigenschap de acties toe die zijn uitgesloten van de toegestane actions.

  11. Geef in de roleName en description eigenschappen een unieke rolnaam en een beschrijving op. Zie aangepaste Azure-rollen voor meer informatie over de eigenschappen.

    Hieronder ziet u een voorbeeld van een aanvraagbody:

    {
      "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"
        ]
      }
    }
    

Een aangepaste rol bijwerken

Als u een aangepaste rol wilt bijwerken, gebruikt u de roldefinities : REST API maken of bijwerken . Als u deze API wilt aanroepen, moet u zijn aangemeld met een gebruiker waaraan een rol is toegewezen die de Microsoft.Authorization/roleDefinitions/write machtiging heeft voor alle assignableScopes, zoals gebruikerstoegang Beheer istrator.

  1. Gebruik de roldefinities - Lijst of roldefinities - REST API ophalen om informatie over de aangepaste rol op te halen. Zie de eerdere sectie Alle aangepaste roldefinities weergeven voor meer informatie.

  2. Begin met de volgende aanvraag:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. Vervang {scope} in de URI door de eerste assignableScopes van de aangepaste rol.

    Bereik Type
    subscriptions/{subscriptionId1} Abonnement
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resourcegroep
    providers/Microsoft.Management/managementGroups/{groupId1} Beheergroep
  4. Vervang {roleDefinitionId} door de GUID-id van de aangepaste rol.

  5. Maak op basis van de informatie over de aangepaste rol een aanvraagbody met de volgende indeling:

    {
      "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. Werk de hoofdtekst van de aanvraag bij met de wijzigingen die u wilt aanbrengen in de aangepaste rol.

    Hieronder ziet u een voorbeeld van een aanvraagbody met een nieuwe actie voor diagnostische instellingen toegevoegd:

    {
      "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"
        ]
      }
    }
    

Een aangepaste rol verwijderen

Als u een aangepaste rol wilt verwijderen, gebruikt u de roldefinities - REST API verwijderen . Als u deze API wilt aanroepen, moet u zijn aangemeld met een gebruiker waaraan een rol is toegewezen met de Microsoft.Authorization/roleDefinitions/delete machtiging voor alle assignableScopes. Van de ingebouwde rollen omvatten alleen eigenaar en gebruikerstoegang Beheer istrator deze machtiging.

  1. Verwijder roltoewijzingen die gebruikmaken van de aangepaste rol. Zie Roltoewijzingen zoeken om een aangepaste rol te verwijderen voor meer informatie.

  2. Gebruik de roldefinities - Lijst of roldefinities - REST API ophalen om de GUID-id van de aangepaste rol op te halen. Zie de eerdere sectie Alle aangepaste roldefinities weergeven voor meer informatie.

  3. Begin met de volgende aanvraag:

    DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  4. Vervang {scope} in de URI door het bereik dat u de aangepaste rol wilt verwijderen.

    Bereik Type
    subscriptions/{subscriptionId1} Abonnement
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Resourcegroep
    providers/Microsoft.Management/managementGroups/{groupId1} Beheergroep
  5. Vervang {roleDefinitionId} door de GUID-id van de aangepaste rol.

Volgende stappen