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.

  1. 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
    
  2. 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
  3. 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.

  1. 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
    
  2. 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
  3. 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.

  1. Pomocí definic rolí – Výpis rozhraní REST API získejte identifikátor GUID pro roli.

  2. 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
    
  3. 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
  4. 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.

  1. Projděte si seznam operací poskytovatele prostředků, které jsou k dispozici k vytvoření oprávnění pro vaši vlastní roli.

  2. 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

  3. 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}"
        ]
      }
    }
    
  4. 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
  5. Nahraďte {roleDefinitionId} identifikátorem GUID vlastní role.

  6. V textu požadavku nahraďte {roleDefinitionId} identifikátorem GUID.

  7. Pokud assignableScopes se jedná o předplatné nebo skupinu prostředků, nahraďte instance {subscriptionId} nebo {resourceGroup} vašimi identifikátory.

  8. Pokud assignableScopes je skupina pro správu, nahraďte instanci {groupId} identifikátorem skupiny pro správu.

  9. actions Do vlastnosti přidejte akce, které role umožňuje provést.

  10. notActions Do vlastnosti přidejte akce, které jsou vyloučeny z povolené actions.

  11. Do vlastností roleName zadejte description 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.

  1. 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í.

  2. 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
    
  3. 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
  4. Nahraďte {roleDefinitionId} identifikátorem GUID vlastní role.

  5. 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}"
        ]
      }
    }
    
  6. 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.

  1. 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.

  2. 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í.

  3. 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
    
  4. 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
  5. Nahraďte {roleDefinitionId} identifikátorem GUID vlastní role.

Další kroky