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 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. Bereiken zijn gestructureerd in een bovenliggende/onderliggende relatie. Elk niveau van de hiërarchie 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 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.

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 Azure Portal wordt dit bereik meestal vermeld als de resource-id.

Het bereik bestaat uit een reeks id's, gescheiden door het slash-teken (/). 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 de resourcegroep bevat.
  • {providerName}is de naam van de resourceprovider die de resource verwerkt en {resourceSubType*} identificeert {resourceType} 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
            /{managmentGroupName}

Bereikvoorbeelden

Bereik Opmerking
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
Bron /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 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 that shows 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 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 in het 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 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 op basis van de id van de roltoewijzing zelf. In de volgende tabel ziet u voorbeelden van een roltoewijzings-id en het bijbehorende bereik:

Roltoewijzings-id 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 voor een volledige lijst met extensieresourcetypen waarmee de mogelijkheden van andere resources worden uitgebreid.

Volgende stappen