Förstå omfånget för Azure RBAC

Omfång är den uppsättning resurser som åtkomsten gäller för. När du tilldelar en roll är det viktigt att förstå omfånget så att du kan ge ett säkerhetsobjekt bara den åtkomst som den verkligen behöver. Genom att begränsa omfånget begränsar du vilka resurser som är i riskzonen om säkerhetsobjektet någonsin komprometteras.

Omfångsnivåer

I Azure kan du ange ett omfång på fyra nivåer: hanteringsgrupp, prenumeration, resursgrupp och resurs. Omfång är strukturerade i en överordnad/underordnad relation. Varje hierarkinivå gör omfånget mer specifikt. Du kan tilldela roller på någon av dessa omfångsnivåer. Den nivå du väljer avgör hur mycket rollen tillämpas. Lägre nivåer ärver rollbehörigheter från högre nivåer.

Scope for a role assignment

Hanteringsgrupper är en omfattningsnivå över prenumerationer, men hanteringsgrupper stöder mer komplexa hierarkier. Följande diagram visar ett exempel på en hierarki med hanteringsgrupper och prenumerationer som du kan definiera. Mer information om hanteringsgrupper finns i Vad är Azure-hanteringsgrupper?.

Management group and subscription hierarchy

Omfångsformat

Om du tilldelar roller med hjälp av kommandoraden måste du ange omfånget. För kommandoradsverktyg är omfånget en potentiellt lång sträng som identifierar det exakta omfånget för rolltilldelningen. I Azure-portalen visas det här omfånget vanligtvis som resurs-ID.

Omfånget består av en serie identifierare avgränsade med snedstrecket (/). Du kan se den här strängen som att den uttrycker följande hierarki, där text utan platshållare ({}) är fasta identifierare:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} är ID:t för prenumerationen som ska användas (ett GUID).
  • {resourceGroupName} är namnet på den resursgrupp som innehåller.
  • {providerName}är namnet på resursprovidern som hanterar resursen och sedan {resourceType} identifiera {resourceSubType*} ytterligare nivåer inom den resursprovidern.
  • {resourceName} är den sista delen av strängen som identifierar en specifik resurs.

Hanteringsgrupper är en nivå över prenumerationer och har det bredaste (minst specifika) omfånget. Rolltilldelningar på den här nivån gäller för prenumerationer i hanteringsgruppen. Omfånget för en hanteringsgrupp har följande format:

/providers
    /Microsoft.Management
        /managementGroups
            /{managmentGroupName}

Omfångsexempel

Omfattning Exempel
Hanteringsgrupp /providers/Microsoft.Management/managementGroups/marketing-group
Prenumeration /subscriptions/00000000-0000-0000-0000-000000000000
Resursgrupp /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
Resurs /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork12345

Så här fastställer du omfånget för en resurs

Det är ganska enkelt att fastställa omfånget för en hanteringsgrupp, prenumeration eller resursgrupp. Du behöver bara känna till namnet och prenumerations-ID:t. Att fastställa omfånget för en resurs kräver dock lite mer arbete. Här följer några olika sätt att fastställa omfånget för en resurs.

  • Öppna resursen i Azure-portalen och titta sedan på egenskaperna. Resursen bör ange resurs-ID:t där du kan fastställa omfånget. Här är till exempel resurs-ID:t för ett lagringskonto.

    Screenshot that shows resource IDs for a storage account in Azure portal.

  • Ett annat sätt är att använda Azure-portalen för att tillfälligt tilldela en roll i resursomfånget och sedan använda Azure PowerShell eller Azure CLI för att lista rolltilldelningen. I utdata visas omfånget som en egenskap.

    RoleAssignmentId   : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/pro
                         viders/Microsoft.Authorization/roleAssignments/<roleAssignmentId>
    Scope              : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
    DisplayName        : User
    SignInName         : user@contoso.com
    RoleDefinitionName : Storage Blob Data Reader
    RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
    ObjectId           : <principalId>
    ObjectType         : User
    CanDelegate        : False
    Description        :
    ConditionVersion   :
    Condition          :
    
    {
        "canDelegate": null,
        "condition": null,
        "conditionVersion": null,
        "description": null,
        "id": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
        "name": "{roleAssignmentId}",
        "principalId": "{principalId}",
        "principalName": "user@contoso.com",
        "principalType": "User",
        "resourceGroup": "test-rg",
        "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
        "roleDefinitionName": "Storage Blob Data Reader",
        "scope": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01",
        "type": "Microsoft.Authorization/roleAssignments"
      }
    

Omfångs- och ARM-mallar

En rolltilldelning är en särskild typ i Azure Resource Manager som kallas för en tilläggsresurs. En tilläggsresurs är en resurs som lägger till en annan resurss funktioner. De finns alltid som ett tillägg (som ett underordnat) för en annan resurs. En rolltilldelning i prenumerationsomfånget är till exempel en tilläggsresurs för prenumerationen. Namnet på en rolltilldelning är alltid namnet på den resurs som du utökar plus /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. När du tilldelar roller med hjälp av Azure Resource Manager-mallen (ARM-mall) behöver du vanligtvis inte ange omfånget. Anledningen är att omfångsfältet alltid blir ID för den resurs som du utökar. Omfånget kan fastställas från ID:t för själva rolltilldelningen. I följande tabell visas exempel på ett rolltilldelnings-ID och motsvarande omfång:

Rolltilldelnings-ID Omfattning
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg

Mer information om omfång och ARM-mallar finns i Tilldela Azure-roller med hjälp av Azure Resource Manager-mallar. En fullständig lista över resurstyper för tillägg finns i Resurstyper som utökar funktioner för andra resurser.

Nästa steg