Egyéni Azure-szerepkörök létrehozása vagy frissítése a REST API használatával

Ha az Azure beépített szerepkörei nem felelnek meg a szervezet adott igényeinek, létrehozhat saját egyéni szerepköröket. Ez a cikk bemutatja, hogyan listázhatja, hozhat létre, frissíthet vagy törölhet egyéni szerepköröket a REST API használatával.

Előfeltételek

A következő verziót kell használnia:

  • 2015-07-01 vagy újabb

További információkért tekintse meg az Azure RBAC REST API-k API-verzióit.

Az összes egyéni szerepkör-definíció listázása

A bérlő összes egyéni szerepkördefiníciójának listázásához használja a Szerepkördefiníciók – REST API listázása lehetőséget.

  • Az alábbi példa az összes egyéni szerepkördefiníciót felsorolja egy bérlőben:

    Kérelem

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

    Válasz

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

Az összes egyéni szerepkördefiníció listázása egy hatókörben

Ha egyéni szerepkördefiníciókat szeretne listázni egy hatókörben, használja a Szerepkördefiníciók – REST API listázása lehetőséget.

  1. Kezdje a következő kéréssel:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. Az URI-on belül cserélje le a(z) {scope} kifejezést arra a hatókörre, amelyhez a szerepköröket listázni szeretné.

    Scope Típus
    subscriptions/{subscriptionId1} Előfizetés
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Erőforráscsoport
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Felügyeleti csoport
  3. Cserélje le a(z) {filter} elemet a szerepkör típusára.

    Filter Leírás
    $filter=type+eq+'CustomRole' Szűrés a CustomRole típus alapján

    Az alábbi példa az előfizetés összes egyéni szerepkördefinícióját felsorolja:

    Kérelem

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

    Válasz

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

Egyéni szerepkördefiníció listázása név szerint

Az egyéni szerepkördefiníciók megjelenítési neve alapján történő lekéréséhez használja a Szerepkördefiníciók – REST API lekérése lehetőséget.

  1. Kezdje a következő kéréssel:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. Az URI-on belül cserélje le a(z) {scope} kifejezést arra a hatókörre, amelyhez a szerepköröket listázni szeretné.

    Scope Típus
    subscriptions/{subscriptionId1} Előfizetés
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Erőforráscsoport
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Felügyeleti csoport
  3. Cserélje le a(z) {filter} elemet a szerepkör megjelenítendő nevére.

    Filter Leírás
    $filter=roleName+eq+'{roleDisplayName}' Használja a szerepkör pontos megjelenítendő nevének URL-címkódolt formáját. Például: $filter=roleName+eq+'Virtual%20Machine%20Contributor'

    Az alábbi példa a Billing Reader Plus nevű egyéni szerepkördefiníciót sorolja fel egy előfizetésben:

    Kérelem

    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
    

    Válasz

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

Egyéni szerepkör-definíció listázása azonosító szerint

Az egyéni szerepkördefiníciók egyedi azonosító alapján történő lekéréséhez használja a Szerepkördefiníciók – REST API lekérése lehetőséget.

  1. Használja a szerepkördefiníciókat – A REST API listázása a szerepkör GUID-azonosítójának lekéréséhez.

  2. Kezdje a következő kéréssel:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. Az URI-on belül cserélje le a(z) {scope} kifejezést arra a hatókörre, amelyhez a szerepköröket listázni szeretné.

    Scope Típus
    subscriptions/{subscriptionId1} Előfizetés
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Erőforráscsoport
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1}/providers/Microsoft.Web/sites/{site1} Resource
    providers/Microsoft.Management/managementGroups/{groupId1} Felügyeleti csoport
  4. Cserélje le a(z) {roleDefinitionId} elemet a szerepkördefiníció GUID-azonosítójára.

    Az alábbi példa egy 17adabda-4bf1-4f4e-8c97-1f0cab6dea1c azonosítójú egyéni szerepkördefiníciót sorol fel egy előfizetésben:

    Kérelem

    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
    

    Válasz

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

Create a custom role

Egyéni szerepkör létrehozásához használja a szerepkördefiníciókat – REST API létrehozása vagy frissítése . Az API meghívásához be kell jelentkeznie egy olyan felhasználóval, aki olyan szerepkörrel rendelkezik, amely rendelkezik az Microsoft.Authorization/roleDefinitions/write összes assignableScopesjogosultsággal. A beépített szerepkörök közül csak a Tulajdonos és a Felhasználói hozzáférés Rendszergazda istrator tartalmazza ezt az engedélyt.

  1. Tekintse át az egyéni szerepkör engedélyeinek létrehozásához elérhető erőforrás-szolgáltatói műveletek listáját.

  2. Guid-eszköz használatával hozzon létre egy egyedi azonosítót, amelyet az egyéni szerepkör-azonosítóhoz fog használni. Az azonosító formátuma: 00000000-0000-0000-0000-000000000000

  3. Kezdje a következő kéréssel és törzstel:

    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. Az URI-on belül cserélje le a(z) {scope} elemet az egyéni szerepkör első assignableScopes elemére.

    Scope Típus
    subscriptions/{subscriptionId1} Előfizetés
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Erőforráscsoport
    providers/Microsoft.Management/managementGroups/{groupId1} Felügyeleti csoport
  5. Cserélje le a(z) {roleDefinitionId} elemet az egyéni szerepkör GUID-azonosítójára.

  6. A kérelem törzsében cserélje le a(z) {roleDefinitionId} kifejezést a GUID-azonosítóra.

  7. Ha assignableScopes előfizetés vagy erőforráscsoport, cserélje le a (z) {subscriptionId} vagy {resourceGroup} példányokat az azonosítókra.

  8. Ha assignableScopes felügyeleti csoport, cserélje le a {groupId} példányt a felügyeleti csoport azonosítójával.

  9. A tulajdonságban actions adja hozzá azokat a műveleteket, amelyeket a szerepkör lehetővé tesz.

  10. A tulajdonságban notActions adja hozzá az engedélyezett actionsműveletből kizárt műveleteket.

  11. roleName A tulajdonságok között description adjon meg egy egyedi szerepkörnevet és egy leírást. A tulajdonságokról további információt az Azure-beli egyéni szerepkörökben talál.

    Az alábbiakban egy példa egy kérelemtörzsre:

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

Egyéni szerepkörök frissítése

Egyéni szerepkör frissítéséhez használja a szerepkördefiníciókat – REST API létrehozása vagy frissítése . Az API meghívásához be kell jelentkeznie egy olyan felhasználóval, aki olyan szerepkörrel rendelkezik, amely rendelkezik az Microsoft.Authorization/roleDefinitions/write összes assignableScopes, például a Felhasználói hozzáférés Rendszergazda istrator engedélyével.

  1. A szerepkördefiníciók – Lista vagy szerepkördefiníciók – A REST API lekérése az egyéni szerepkörre vonatkozó információk lekéréséhez. További információkért lásd a korábbi Lista az összes egyéni szerepkördefiníciót című szakaszt.

  2. Kezdje a következő kéréssel:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. Az URI-on belül cserélje le a(z) {scope} elemet az egyéni szerepkör első assignableScopes elemére.

    Scope Típus
    subscriptions/{subscriptionId1} Előfizetés
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Erőforráscsoport
    providers/Microsoft.Management/managementGroups/{groupId1} Felügyeleti csoport
  4. Cserélje le a(z) {roleDefinitionId} elemet az egyéni szerepkör GUID-azonosítójára.

  5. Az egyéni szerepkörre vonatkozó információk alapján hozzon létre egy kérelemtörzset a következő formátumban:

    {
      "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. Frissítse a kérelem törzsét az egyéni szerepkörben végrehajtani kívánt módosításokkal.

    Az alábbiakban egy új diagnosztikai beállítási művelettel rendelkező kérelemtörzset mutatunk be:

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

Egyéni szerepkörök törlése

Egyéni szerepkör törléséhez használja a Szerepkördefiníciók – REST API törlése parancsot. Az API meghívásához be kell jelentkeznie egy olyan felhasználóval, aki olyan szerepkörrel rendelkezik, amely rendelkezik az Microsoft.Authorization/roleDefinitions/delete összes assignableScopesjogosultsággal. A beépített szerepkörök közül csak a Tulajdonos és a Felhasználói hozzáférés Rendszergazda istrator tartalmazza ezt az engedélyt.

  1. Távolítsa el az egyéni szerepkört használó szerepkör-hozzárendeléseket. További információ: Szerepkör-hozzárendelések keresése egyéni szerepkör törléséhez.

  2. A szerepkördefiníciók – Lista vagy szerepkördefiníciók – REST API lekérése az egyéni szerepkör GUID-azonosítójának lekéréséhez. További információkért lásd a korábbi Lista az összes egyéni szerepkördefiníciót című szakaszt.

  3. Kezdje a következő kéréssel:

    DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  4. Az URI-on belül cserélje le a(z) {scope} kifejezést arra a hatókörre, amelyet törölni szeretne az egyéni szerepkörből.

    Scope Típus
    subscriptions/{subscriptionId1} Előfizetés
    subscriptions/{subscriptionId1}/resourceGroups/{resourceGroup1} Erőforráscsoport
    providers/Microsoft.Management/managementGroups/{groupId1} Felügyeleti csoport
  5. Cserélje le a(z) {roleDefinitionId} elemet az egyéni szerepkör GUID-azonosítójára.

További lépések