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 .

  1. Börja med följande begäran:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. 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
  3. 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.

  1. Börja med följande begäran:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions?$filter={filter}&api-version=2022-04-01
    
  2. 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
  3. 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.

  1. Använd rolldefinitionerna – lista REST API för att hämta GUID-identifieraren för rollen.

  2. Börja med följande begäran:

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. 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
  4. 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 assignableScopesfö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 .

  1. Granska listan över resursprovideråtgärder som är tillgängliga för att skapa behörigheter för din anpassade roll.

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

  3. 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}"
        ]
      }
    }
    
  4. 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
  5. Ersätt {roleDefinitionId} med GUID-identifieraren för den anpassade rollen.

  6. Ersätt {roleDefinitionId} med GUID-identifieraren i begärandetexten.

  7. Om assignableScopes är en prenumeration eller resursgrupp ersätter du instanserna {subscriptionId} eller {resourceGroup} med dina identifierare.

  8. Om assignableScopes är en hanteringsgrupp ersätter du {groupId}-instansen med din hanteringsgruppsidentifierare.

  9. I egenskapen actions lägger du till de åtgärder som rollen tillåter att utföras.

  10. I egenskapen notActions lägger du till de åtgärder som undantas från den tillåtna actions.

  11. roleName I egenskaperna och description 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 assignableScopesanvändaråtkomst.

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

  2. Börja med följande begäran:

    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  3. 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
  4. Ersätt {roleDefinitionId} med GUID-identifieraren för den anpassade rollen.

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

  1. Ta bort alla rolltilldelningar som använder den anpassade rollen. Mer information finns i Hitta rolltilldelningar för att ta bort en anpassad roll.

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

  3. Börja med följande begäran:

    DELETE https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}?api-version=2022-04-01
    
  4. 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
  5. Ersätt {roleDefinitionId} med GUID-identifieraren för den anpassade rollen.

Nästa steg