Delen via


Begrijp het bereik voor Azure RBAC

Scope is the set of resources that access applies to. Wanneer u een rol toewijst, is het belangrijk om inzicht te krijgen in het bereik, zodat u een beveiligingsprincipaal alleen de toegang kunt verlenen die deze echt nodig heeft. Door het bereik te beperken, beperkt u de resources die risico lopen als de beveiligingsprincipaal ooit wordt aangetast.

Bereikniveaus

In Azure kunt u een bereik opgeven op vier niveaus: beheergroep, abonnement, resourcegroep en resource. Scopes are structured in a parent-child relationship. Elk niveau van de hiërarchie maakt het bereik specifieker. U kunt rollen toewijzen op elk van deze bereikniveaus. Het niveau dat u selecteert, bepaalt hoe breed de rol wordt toegepast. Lagere niveaus nemen rolmachtigingen over van hogere niveaus.

Diagram of scope for a role assignment.

Beheergroepen zijn een bereikniveau boven abonnementen, maar beheergroepen ondersteunen complexere hiërarchieën. In het volgende diagram ziet u een voorbeeld van een hiërarchie van beheergroepen en abonnementen die u kunt definiëren. Zie Wat zijn Azure-beheergroepen? voor meer informatie over beheergroepen.

Diagram of management group and subscription hierarchy.

Omvangsindeling

Als u rollen toewijst met behulp van de opdrachtregel, moet u het bereik opgeven. For command-line tools, scope is a potentially long string that identifies the exact scope of the role assignment. In Azure Portal wordt dit bereik meestal vermeld als de resource-id.

The scope consists of a series of identifiers separated by the slash (/) character. U kunt deze tekenreeks beschouwen als het uitdrukken van de volgende hiërarchie, waarbij tekst zonder tijdelijke aanduidingen ({}) vaste id's zijn:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} is de id van het abonnement dat moet worden gebruikt (een GUID).
  • {resourceGroupName} is de naam van de resourcegroep die het bevat.
  • {providerName}is de naam van de resourceprovider die de resource verwerkt en {resourceType} identificeert {resourceSubType*} vervolgens verdere niveaus binnen die resourceprovider.
  • {resourceName} is het laatste deel van de tekenreeks waarmee een specifieke resource wordt geïdentificeerd.

Beheergroepen zijn een niveau boven abonnementen en hebben het breedste (minst specifieke) bereik. Roltoewijzingen op dit niveau zijn van toepassing op abonnementen binnen de beheergroep. Het bereik voor een beheergroep heeft de volgende indeling:

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

Voorbeelden van toepassingsbereik

Omvang Voorbeeld
Beheergroep /providers/Microsoft.Management/managementGroups/marketing-group
Abonnement /subscriptions/00000000-0000-0000-0000-000000000000
Resourcegroep /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
Hulpbron /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

How to determine the scope for a resource

Het is vrij eenvoudig om het bereik voor een beheergroep, abonnement of resourcegroep te bepalen. U hoeft alleen de naam en de abonnements-id te kennen. Het bepalen van het bereik voor een resource kost echter iets meer werk. Hier volgen een aantal manieren waarop u het bereik voor een resource kunt bepalen.

  • Open de resource in Azure Portal en bekijk vervolgens de eigenschappen. De resource moet de resource-id vermelden waar u het bereik kunt bepalen. Dit zijn bijvoorbeeld de resource-id's voor een opslagaccount.

    Screenshot of resource IDs for a storage account in Azure portal.

  • Een andere manier is om Azure Portal te gebruiken om tijdelijk een rol toe te wijzen aan het resourcebereik en vervolgens Azure PowerShell of Azure CLI te gebruiken om de roltoewijzing weer te geven. In the output, the scope will be listed as a property.

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

Scope and ARM templates

Een roltoewijzing is een speciaal type in Azure Resource Manager, een extensieresource genoemd. Een extensieresource is een resource die wordt toegevoegd aan de mogelijkheden van een andere resource. Ze bestaan altijd als een extensie (zoals een kind) van een andere resource. For example, a role assignment at subscription scope is an extension resource of the subscription. De naam van een roltoewijzing is altijd de naam van de resource die u uitbreidt plus /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. Wanneer u rollen toewijst met behulp van azure Resource Manager-sjabloon (ARM-sjabloon), hoeft u doorgaans niet het bereik op te geven. De reden hiervoor is dat het bereikveld uiteindelijk altijd de id is van de resource die u uitbreidt. Het bereik kan worden bepaald vanuit de id van de roltoewijzing zelf. In de volgende tabel ziet u voorbeelden van een roltoewijzings-id en het bijbehorende bereik:

Roltoewijzings-id Omvang
/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

Zie Azure-rollen toewijzen met behulp van Azure Resource Manager-sjablonen voor meer informatie over bereik- en ARM-sjablonen. Zie Resourcetypen voor een volledige lijst met extensieresourcetypen waarmee de mogelijkheden van andere resources worden uitgebreid.

Volgende stappen