Inzicht in het bereik voor Azure RBAC

Bereik is de set resources waarop toegang van toepassing is. 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 het echt nodig heeft. Door het bereik te beperken, beperkt u welke resources risico lopen als de beveiligingsprincipaal ooit wordt aangetast.

Bereikniveaus

In Azure kunt u een bereik opgeven op vier niveaus: beheergroep, abonnement, resourcegroep en resource. Bereiken zijn gestructureerd in een bovenliggende/onderliggende relatie. Elk hiërarchieniveau maakt het bereik specifieker. U kunt rollen toewijzen aan elk van deze bereikniveaus. Het niveau dat u selecteert, bepaalt hoe breed de rol wordt toegepast. Lagere niveaus nemen rolmachtigingen over van hogere niveaus.

Scope for a role assignment

Beheergroepen zijn een niveau van bereik 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.

Management group and subscription hierarchy

Bereikindeling

Als u rollen toewijst met behulp van de opdrachtregel, moet u het bereik opgeven. Voor opdrachtregelprogramma's is het bereik een mogelijk lange tekenreeks die het exacte bereik van de roltoewijzing aangeeft. In de Azure Portal wordt dit bereik meestal vermeld als de resource-id.

Het bereik bestaat uit een reeks id's gescheiden door het slashteken (/). U kunt deze tekenreeks zien 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).
  • {resourcesGroupName} is de naam van de resourcegroep die deze bevat.
  • {providerName}is de naam van de resourceprovider die de resource verwerkt en {resourceSubType*} identificeert vervolgens {resourceType} verdere niveaus binnen die resourceprovider.
  • {resourceName} is het laatste deel van de tekenreeks die een specifieke resource identificeert.

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
            /{managmentGroupName}

Bereikvoorbeelden

Bereik 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
Resource /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

Het bereik voor een resource bepalen

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 weten. 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 de Azure Portal en bekijk de eigenschappen. De resource moet de resource-id vermelden waar u het bereik kunt bepalen. Hier volgen bijvoorbeeld de resource-id's voor een opslagaccount.

    Resource IDs for a storage account in Azure portal

  • Een andere manier is om de 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 de uitvoer wordt het bereik weergegeven als een eigenschap.

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

Bereik- en ARM-sjablonen

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 onderliggend element) van een andere resource. Een roltoewijzing op abonnementsbereik is bijvoorbeeld een uitbreidingsresource van het abonnement. 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 een Arm-sjabloon (Azure Resource Manager-sjabloon), hoeft u doorgaans niet het bereik op te geven. De reden hiervoor is dat het bereikveld altijd de id is van de resource die u uitbreidt. Het bereik kan worden bepaald op basis van de id van de roltoewijzing zelf. In de volgende tabel ziet u voorbeelden van een roltoewijzings-id en het bijbehorende bereik:

Id van roltoewijzing Bereik
/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 die mogelijkheden van andere resources uitbreiden voor een volledige lijst met extensieresourcetypen.

Volgende stappen