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 .
Begin met de volgende aanvraag:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
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 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 .
Begin met de volgende aanvraag:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
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 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 .
Gebruik de roldefinities - List REST API om de GUID-id voor de rol op te halen.
Begin met de volgende aanvraag:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
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 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.
Bekijk de lijst met resourceproviderbewerkingen die beschikbaar zijn om de machtigingen voor uw aangepaste rol te maken.
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
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}" ] } }
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 Vervang {roleDefinitionId} door de GUID-id van de aangepaste rol.
Vervang {roleDefinitionId} in de aanvraagbody door de GUID-id.
Als
assignableScopes
dit een abonnement of resourcegroep is, vervangt u de exemplaren van {subscriptionId} of {resourceGroup} door uw id's.Als
assignableScopes
dit een beheergroep is, vervangt u het exemplaar van {groupId} door de id van uw beheergroep.Voeg in de
actions
eigenschap de acties toe die door de rol kunnen worden uitgevoerd.Voeg in de
notActions
eigenschap de acties toe die zijn uitgesloten van de toegestaneactions
.Geef in de
roleName
endescription
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.
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.
Begin met de volgende aanvraag:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
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 Vervang {roleDefinitionId} door de GUID-id van de aangepaste rol.
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}" ] } }
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.
Verwijder roltoewijzingen die gebruikmaken van de aangepaste rol. Zie Roltoewijzingen zoeken om een aangepaste rol te verwijderen voor meer informatie.
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.
Begin met de volgende aanvraag:
DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
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 Vervang {roleDefinitionId} door de GUID-id van de aangepaste rol.