Skapa eller uppdatera anpassade Azure-roller med hjälp av REST-API:et
Om de inbyggda Azure-rollerna inte uppfyller organisationens specifika behov kan du skapa egna anpassade roller. I den här artikeln beskrivs hur du listar, skapar, uppdaterar eller tar bort anpassade roller med hjälp av REST-API:et.
Förutsättningar
Du måste använda följande version:
2015-07-01
eller senare
Mer information finns i API-versioner av Azure RBAC REST API:er.
Visa en lista över alla anpassade rolldefinitioner
Om du vill visa en lista över alla anpassade rolldefinitioner i en klientorganisation använder du REST API för rolldefinitioner – lista .
I följande exempel visas alla anpassade rolldefinitioner i en klientorganisation:
Begär
GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
Svar
{ "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" } ] }
Visa en lista över alla anpassade rolldefinitioner i ett omfång
Om du vill visa en lista över anpassade rolldefinitioner i ett omfång använder du REST API för rolldefinitioner – lista .
Börja med följande begäran:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
I URI:n ersätter du {scope} med det omfång som du vill lista rollerna för.
Omfattning Typ subscriptions/{subscriptionId1}
Prenumeration subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Resursgrupp subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Resurs providers/Microsoft.Management/managementGroups/{groupId1}
Hanteringsgrupp Ersätt {filter} med rolltypen.
Filter beskrivning $filter=type+eq+'CustomRole'
Filtrera baserat på CustomRole-typen I följande exempel visas alla anpassade rolldefinitioner i en prenumeration:
Begär
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
Svar
{ "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" } ] }
Lista en anpassad rolldefinition efter namn
Om du vill få information om en anpassad rolldefinition med dess visningsnamn använder du Rolldefinitioner – Hämta REST API.
Börja med följande begäran:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
I URI:n ersätter du {scope} med det omfång som du vill lista rollerna för.
Omfattning Typ subscriptions/{subscriptionId1}
Prenumeration subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Resursgrupp subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Resurs providers/Microsoft.Management/managementGroups/{groupId1}
Hanteringsgrupp Ersätt {filter} med visningsnamnet för rollen.
Filter beskrivning $filter=roleName+eq+'{roleDisplayName}'
Använd den URL-kodade formen för det exakta visningsnamnet för rollen. Till exempel $filter=roleName+eq+'Virtual%20Machine%20Contributor'
I följande exempel visas en anpassad rolldefinition med namnet Billing Reader Plus i en prenumeration:
Begär
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
Svar
{ "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" } ] }
Visa en lista över en anpassad rolldefinition efter ID
Om du vill få information om en anpassad rolldefinition med dess unika identifierare använder du Rolldefinitioner – Hämta REST API.
Använd rolldefinitionerna – lista REST API för att hämta GUID-identifieraren för rollen.
Börja med följande begäran:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
I URI:n ersätter du {scope} med det omfång som du vill lista rollerna för.
Omfattning Typ subscriptions/{subscriptionId1}
Prenumeration subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Resursgrupp subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Resurs providers/Microsoft.Management/managementGroups/{groupId1}
Hanteringsgrupp Ersätt {roleDefinitionId} med GUID-identifieraren för rolldefinitionen.
I följande exempel visas en anpassad rolldefinition med identifieraren 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c i en prenumeration:
Begär
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
Svar
{ "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" }
Skapa en anpassad roll
Om du vill skapa en anpassad roll använder du ROLLdefinitioner – Skapa eller uppdatera REST API. Om du vill anropa det här API:et måste du vara inloggad med en användare som har tilldelats en roll som har behörigheten Microsoft.Authorization/roleDefinitions/write
assignableScopes
för alla . Av de inbyggda rollerna är det bara ägare och administratör för användaråtkomst som har den här behörigheten .
Granska listan över resursprovideråtgärder som är tillgängliga för att skapa behörigheter för din anpassade roll.
Använd ett GUID-verktyg för att generera en unik identifierare som ska användas för den anpassade rollidentifieraren. Identifieraren har formatet:
00000000-0000-0000-0000-000000000000
Börja med följande begäran och brödtext:
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}" ] } }
I URI:n ersätter du {scope} med den första
assignableScopes
av den anpassade rollen.Omfattning Typ subscriptions/{subscriptionId1}
Prenumeration subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Resursgrupp providers/Microsoft.Management/managementGroups/{groupId1}
Hanteringsgrupp Ersätt {roleDefinitionId} med GUID-identifieraren för den anpassade rollen.
Ersätt {roleDefinitionId} med GUID-identifieraren i begärandetexten.
Om
assignableScopes
är en prenumeration eller resursgrupp ersätter du instanserna {subscriptionId} eller {resourceGroup} med dina identifierare.Om
assignableScopes
är en hanteringsgrupp ersätter du {groupId}-instansen med din hanteringsgruppsidentifierare.I egenskapen
actions
lägger du till de åtgärder som rollen tillåter att utföras.I egenskapen
notActions
lägger du till de åtgärder som undantas från den tillåtnaactions
.roleName
I egenskaperna ochdescription
anger du ett unikt rollnamn och en beskrivning. Mer information om egenskaperna finns i Anpassade Azure-roller.Följande visar ett exempel på en begärandetext:
{ "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" ] } }
Uppdatera en anpassad roll
Om du vill uppdatera en anpassad roll använder du ROLLdefinitioner – Skapa eller uppdatera REST API. Om du vill anropa det här API:et måste du vara inloggad med en användare som har tilldelats en roll som har behörigheten Microsoft.Authorization/roleDefinitions/write
för alla , till exempel administratör för assignableScopes
användaråtkomst.
Använd rolldefinitioner – lista eller rolldefinitioner – Hämta REST API för att hämta information om den anpassade rollen. Mer information finns i avsnittet Lista alla anpassade rolldefinitioner tidigare.
Börja med följande begäran:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
I URI:n ersätter du {scope} med den första
assignableScopes
av den anpassade rollen.Omfattning Typ subscriptions/{subscriptionId1}
Prenumeration subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Resursgrupp providers/Microsoft.Management/managementGroups/{groupId1}
Hanteringsgrupp Ersätt {roleDefinitionId} med GUID-identifieraren för den anpassade rollen.
Baserat på informationen om den anpassade rollen skapar du en begärandetext med följande 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}" ] } }
Uppdatera begärandetexten med de ändringar som du vill göra i den anpassade rollen.
Följande visar ett exempel på en begärandetext med en ny åtgärd för diagnostikinställningar som lagts till:
{ "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" ] } }
Ta bort en anpassad roll
Om du vill ta bort en anpassad roll använder du rolldefinitionerna – Ta bort REST API. Om du vill anropa det här API:et måste du vara inloggad med en användare som har tilldelats en roll som har behörigheten Microsoft.Authorization/roleDefinitions/delete
assignableScopes
för alla . Av de inbyggda rollerna är det bara ägare och administratör för användaråtkomst som har den här behörigheten .
Ta bort alla rolltilldelningar som använder den anpassade rollen. Mer information finns i Hitta rolltilldelningar för att ta bort en anpassad roll.
Använd rolldefinitioner – lista eller rolldefinitioner – Hämta REST API för att hämta GUID-identifieraren för den anpassade rollen. Mer information finns i avsnittet Lista alla anpassade rolldefinitioner tidigare.
Börja med följande begäran:
DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
I URI:n ersätter du {scope} med det omfång som du vill ta bort den anpassade rollen.
Omfattning Typ subscriptions/{subscriptionId1}
Prenumeration subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Resursgrupp providers/Microsoft.Management/managementGroups/{groupId1}
Hanteringsgrupp Ersätt {roleDefinitionId} med GUID-identifieraren för den anpassade rollen.