Vytvoření nebo aktualizace vlastních rolí Azure pomocí rozhraní REST API
Pokud předdefinované role Azure nevyhovují konkrétním potřebám vaší organizace, můžete vytvořit vlastní role. Tento článek popisuje, jak vypsat, vytvořit, aktualizovat nebo odstranit vlastní role pomocí rozhraní REST API.
Požadavky
Musíte použít následující verzi:
2015-07-01
nebo novější
Další informace najdete v tématu Verze rozhraní API azure RBAC REST API.
Výpis všech definic vlastních rolí
Pokud chcete zobrazit seznam všech vlastních definic rolí v tenantovi, použijte definice rolí – výpis rozhraní REST API.
Následující příklad uvádí všechny definice vlastních rolí v tenantovi:
Požádat
GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
Odpověď respondenta
{ "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" } ] }
Výpis všech definic vlastních rolí v oboru
Pokud chcete vypsat vlastní definice rolí v oboru, použijte definice rolí – výpis rozhraní REST API.
Začněte následujícím požadavkem:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete zobrazit seznam rolí.
Obor Typ subscriptions/{subscriptionId1}
Předplatné subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Skupina prostředků subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Resource providers/Microsoft.Management/managementGroups/{groupId1}
Skupina pro správu Nahraďte {filter} typem role.
Filtr Popis $filter=type+eq+'CustomRole'
Filtrování na základě typu CustomRole Následující příklad uvádí všechny definice vlastních rolí v předplatném:
Požádat
GET https://management.azure.com/subscriptions/473a4f86-11e3-48cb-9358-e13c220a2f15/providers/Microsoft.Authorization/roleDefinitions?$filter=type+eq+'CustomRole'&api-version=2022-04-01
Odpověď respondenta
{ "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" } ] }
Výpis vlastní definice role podle názvu
Pokud chcete získat informace o vlastní definici role podle jejího zobrazovaného názvu, použijte definice rolí – Získání rozhraní REST API.
Začněte následujícím požadavkem:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete zobrazit seznam rolí.
Obor Typ subscriptions/{subscriptionId1}
Předplatné subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Skupina prostředků subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Resource providers/Microsoft.Management/managementGroups/{groupId1}
Skupina pro správu Položku {filter} nahraďte zobrazovaným názvem role.
Filtr Popis $filter=roleName+eq+'{roleDisplayName}'
Použijte zakódovanou adresu URL přesného zobrazovaného názvu role. Například: $filter=roleName+eq+'Virtual%20Machine%20Contributor'
Následující příklad uvádí vlastní definici role s názvem Čtenář fakturace Plus v předplatném:
Požádat
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
Odpověď respondenta
{ "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" } ] }
Výpis vlastní definice role podle ID
Pokud chcete získat informace o vlastní definici role jedinečným identifikátorem, použijte definice rolí – Získání rozhraní REST API.
Pomocí definic rolí – Výpis rozhraní REST API získejte identifikátor GUID pro roli.
Začněte následujícím požadavkem:
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
V rámci identifikátoru URI nahraďte {scope} oborem, pro který chcete zobrazit seznam rolí.
Obor Typ subscriptions/{subscriptionId1}
Předplatné subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Skupina prostředků subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1}
Resource providers/Microsoft.Management/managementGroups/{groupId1}
Skupina pro správu Nahraďte {roleDefinitionId} identifikátorem GUID definice role.
Následující příklad uvádí definici vlastní role s identifikátorem 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c v předplatném:
Požádat
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
Odpověď respondenta
{ "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" }
Vytvoření vlastní role
Pokud chcete vytvořit vlastní roli, použijte definice rolí – Vytvoření nebo aktualizace rozhraní REST API. Chcete-li volat toto rozhraní API, musíte být přihlášeni pomocí uživatele, který má přiřazenou roli, která má Microsoft.Authorization/roleDefinitions/write
oprávnění pro všechny .assignableScopes
Předdefinované role zahrnují toto oprávnění pouze vlastník a uživatelský přístup Správa istrator.
Projděte si seznam operací poskytovatele prostředků, které jsou k dispozici k vytvoření oprávnění pro vaši vlastní roli.
Pomocí nástroje GUID vygenerujte jedinečný identifikátor, který se použije pro vlastní identifikátor role. Identifikátor má formát:
00000000-0000-0000-0000-000000000000
Začněte následujícím požadavkem a textem:
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}" ] } }
V rámci identifikátoru URI nahraďte {scope} první
assignableScopes
z vlastní role.Obor Typ subscriptions/{subscriptionId1}
Předplatné subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Skupina prostředků providers/Microsoft.Management/managementGroups/{groupId1}
Skupina pro správu Nahraďte {roleDefinitionId} identifikátorem GUID vlastní role.
V textu požadavku nahraďte {roleDefinitionId} identifikátorem GUID.
Pokud
assignableScopes
se jedná o předplatné nebo skupinu prostředků, nahraďte instance {subscriptionId} nebo {resourceGroup} vašimi identifikátory.Pokud
assignableScopes
je skupina pro správu, nahraďte instanci {groupId} identifikátorem skupiny pro správu.actions
Do vlastnosti přidejte akce, které role umožňuje provést.notActions
Do vlastnosti přidejte akce, které jsou vyloučeny z povolenéactions
.Do vlastností
roleName
zadejtedescription
jedinečný název role a popis. Další informace o vlastnostech najdete v tématu Vlastní role Azure.Následuje příklad textu požadavku:
{ "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" ] } }
Aktualizace vlastní role
Pokud chcete aktualizovat vlastní roli, použijte definice rolí – Vytvoření nebo aktualizace rozhraní REST API. Pokud chcete volat toto rozhraní API, musíte být přihlášení pomocí uživatele, který má přiřazenou roli, která má Microsoft.Authorization/roleDefinitions/write
oprávnění ke všem uživatelůmassignableScopes
, jako je uživatelský přístup Správa istrator.
K získání informací o vlastní roli použijte definice rolí – Výpis nebo definice rolí – Získejte rozhraní REST API. Další informace najdete v předchozí části Seznam všech definic vlastních rolí.
Začněte následujícím požadavkem:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
V rámci identifikátoru URI nahraďte {scope} první
assignableScopes
z vlastní role.Obor Typ subscriptions/{subscriptionId1}
Předplatné subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Skupina prostředků providers/Microsoft.Management/managementGroups/{groupId1}
Skupina pro správu Nahraďte {roleDefinitionId} identifikátorem GUID vlastní role.
Na základě informací o vlastní roli vytvořte text požadavku s následujícím formátem:
{ "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}" ] } }
Aktualizujte text požadavku změnami, které chcete provést ve vlastní roli.
Následuje příklad textu požadavku s přidanou novou akcí nastavení diagnostiky:
{ "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" ] } }
Odstranění vlastní role
Pokud chcete odstranit vlastní roli, použijte definice rolí – Odstranění rozhraní REST API. Chcete-li volat toto rozhraní API, musíte být přihlášeni pomocí uživatele, který má přiřazenou roli, která má Microsoft.Authorization/roleDefinitions/delete
oprávnění pro všechny .assignableScopes
Předdefinované role zahrnují toto oprávnění pouze vlastník a uživatelský přístup Správa istrator.
Odeberte všechna přiřazení rolí, která používají vlastní roli. Další informace najdete v tématu Vyhledání přiřazení rolí k odstranění vlastní role.
K získání identifikátoru GUID vlastní role použijte definice rolí – Výpis nebo definice rolí – Získání rozhraní REST API. Další informace najdete v předchozí části Seznam všech definic vlastních rolí.
Začněte následujícím požadavkem:
DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
V rámci identifikátoru URI nahraďte {scope} oborem, který chcete odstranit vlastní roli.
Obor Typ subscriptions/{subscriptionId1}
Předplatné subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}
Skupina prostředků providers/Microsoft.Management/managementGroups/{groupId1}
Skupina pro správu Nahraďte {roleDefinitionId} identifikátorem GUID vlastní role.