Azure CLI gebruiken om een Azure-rol toe te wijzen voor toegang tot blob- en wachtrijgegevens

Azure Active Directory (Azure AD) autoreert toegangsrechten voor beveiligde resources via op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC). Azure Storage definieert een set ingebouwde Azure-rollen die algemene sets machtigingen omvatten die worden gebruikt voor toegang tot blob- of wachtrijgegevens.

Wanneer een Azure-rol wordt toegewezen aan een Azure AD-beveiligingsprincipaal, verleent Azure toegang tot deze resources voor die beveiligingsprincipaal. Toegang kan worden beperkt tot het niveau van het abonnement, de resourcegroep, het opslagaccount of een afzonderlijke container of wachtrij. Een Azure AD-beveiligingsprincipaal kan een gebruiker, een groep, een toepassingsservice-principal of een beheerde identiteit voor Azure-resources zijn.

In dit artikel wordt beschreven hoe u Azure CLI gebruikt om ingebouwde Azure-rollen weer te geven en toe te wijzen aan gebruikers. Zie Azure Command-Line Interface (CLI) voormeer informatie over het gebruik van Azure CLI.

Azure-rollen voor blobs en wachtrijen

Azure bevat de volgende ingebouwde Azure-rollen voor het autoriseren van toegang tot blob- en wachtrijgegevens met behulp van Azure AD en OAuth:

Alleen met rollen die expliciet zijn gedefinieerd voor toegang tot gegevens, kan een beveiligingsprincipal toegang krijgen tot blob- of wachtrijgegevens. Met ingebouwde rollen zoals Eigenaar, Inzender, en Inzender voor opslagaccounts kan een beveiligingsprincipal een opslagaccount te beheren, maar heeft geen toegang tot de blob- of wachtrijgegevens binnen dat account via Azure AD. Als een rol echter Microsoft.Storage/storageAccounts/listKeys/action bevat, heeft een gebruiker aan wie deze rol is toegewezen toegang tot gegevens in het opslagaccount via gedeelde sleutelautorisatie met de toegangssleutels van het account. Zie Use the Azure portal to access blob or queue data (De Azure-portal gebruiken om toegang te krijgen tot blob- of wachtrijgegevens) voor meer informatie.

Voor gedetailleerde informatie over ingebouwde rollen van Azure voor Azure Storage voor zowel de gegevensservices als de beheerservice raadpleegt u de sectie Storage in Ingebouwde Azure-rollen voor Azure RBAC. Zie voor meer informatie over de verschillende soorten rollen die machtigingen bieden in Azure Klassieke abonnementsbeheerdersrollen, Azure-rollen en Azure AD-rollen.

Belangrijk

Het kan tot 30 minuten duren voordat Azure-roltoewijzingen zijn doorgegeven.

Resourcebereik bepalen

Voordat u een Azure RBAC-rol toewijst aan een beveiligingsprincipal, bepaalt u het bereik van toegang dat de beveiligingsprincipal moet hebben. Uit best practices blijkt dat het het beste is om het nauwst mogelijke bereik toe te wijzen. De Azure RBAC-rollen die zijn gedefinieerd voor een groter bereik, worden overgenomen door de onderliggende resources.

In de volgende lijst worden de niveaus beschreven waarop u toegang tot Azure-blob en -wachtrijresources kunt bepalen, beginnend met het kleinste bereik:

  • Een afzonderlijke container. In dit bereik is een roltoewijzing van toepassing op alle blobs in de container, evenals containereigenschappen en metagegevens.
  • Een afzonderlijke wachtrij. In dit bereik is een roltoewijzing van toepassing op berichten in de wachtrij, evenals op wachtrij-eigenschappen en metagegevens.
  • Het opslagaccount. In dit bereik is een roltoewijzing van toepassing op alle containers en de bijbehorende blobs, of op alle wachtrijen en hun berichten.
  • De resourcegroep. In dit bereik is een roltoewijzing van toepassing op alle containers of wachtrijen in alle opslagaccounts in de resourcegroep.
  • Het abonnement. In dit bereik is een roltoewijzing van toepassing op alle containers of wachtrijen in alle opslagaccounts in alle resourcegroepen in het abonnement.
  • Een beheergroep. In dit bereik is een roltoewijzing van toepassing op alle containers of wachtrijen in alle opslagaccounts in alle resourcegroepen in alle abonnementen van de beheergroep.

Raadpleeg Wat is op rollen gebaseerd toegangsbeheer in Azure (Azure RBAC)? voor meer informatie over Azure-roltoewijzingen.

Beschikbare Azure-rollen op een lijst zetten

Gebruik de opdracht az role definition list om beschikbare ingebouwde Azure-rollen weer te geven met Azure CLI:

az role definition list --out table

U ziet de ingebouwde Azure Storage gegevensrollen, samen met andere ingebouwde rollen voor Azure:

Storage Blob Data Contributor             Allows for read, write and delete access to Azure Storage blob containers and data
Storage Blob Data Owner                   Allows for full access to Azure Storage blob containers and data, including assigning POSIX access control.
Storage Blob Data Reader                  Allows for read access to Azure Storage blob containers and data
Storage Queue Data Contributor            Allows for read, write, and delete access to Azure Storage queues and queue messages
Storage Queue Data Message Processor      Allows for peek, receive, and delete access to Azure Storage queue messages
Storage Queue Data Message Sender         Allows for sending of Azure Storage queue messages
Storage Queue Data Reader                 Allows for read access to Azure Storage queues and queue messages

Een Azure-rol toewijzen aan een beveiligingsprincipaal

Als u een Azure-rol wilt toewijzen aan een beveiligingsprincipaal, gebruikt u de opdracht az role assignment create. De indeling van de opdracht kan verschillen op basis van het bereik van de toewijzing. In de volgende voorbeelden ziet u hoe u een rol toewijst aan een gebruiker in verschillende scopes, maar u kunt dezelfde opdracht gebruiken om een rol toe te wijzen aan een beveiligingsprincipaal.

Belangrijk

Wanneer u een Azure Storage account maakt, krijgt u niet automatisch machtigingen voor toegang tot gegevens via Azure AD. U moet uzelf expliciet een Azure RBAC-rol toewijzen voor gegevenstoegang. U kunt deze toewijzen op het niveau van uw abonnement, resourcegroep, opslagaccount, container of wachtrij.

Als het opslagaccount is vergrendeld met een Azure Resource Manager alleen-lezenvergrendeling, voorkomt de vergrendeling de toewijzing van Azure RBAC-rollen die zijn beperkt tot het opslagaccount of aan een gegevenscontainer (blobcontainer of wachtrij).

Containerbereik

Als u een rol wilt toewijzen die is toegewezen aan een container, geeft u een tekenreeks op die het bereik van de container voor de --scope parameter bevat. Het bereik voor een container heeft de volgende vorm:

/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>

In het volgende voorbeeld wordt de rol Bijdrager voor opslagblobgegevens toegewezen aan een gebruiker, binnen het bereik van het niveau van de container. Zorg ervoor dat u de voorbeeldwaarden en de tijdelijke aanduidingen tussen haakjes vervangt door uw eigen waarden:

az role assignment create \
    --role "Storage Blob Data Contributor" \
    --assignee <email> \
    --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>"

Wachtrijbereik

Als u een rol wilt toewijzen die is toegewezen aan een wachtrij, geeft u een tekenreeks op die het bereik van de wachtrij voor de --scope parameter bevat. Het bereik voor een wachtrij heeft de volgende vorm:

/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/queueServices/default/queues/<queue>

In het volgende voorbeeld wordt de rol Inzender voor opslagwachtrijgegevens toegewezen aan een gebruiker, met een bereik dat is beperkt tot het niveau van de wachtrij. Zorg ervoor dat u de voorbeeldwaarden en de tijdelijke aanduidingen tussen haakjes vervangt door uw eigen waarden:

az role assignment create \
    --role "Storage Queue Data Contributor" \
    --assignee <email> \
    --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/queueServices/default/queues/<queue>"

Bereik van opslagaccount

Als u een rol wilt toewijzen die is toegewezen aan het opslagaccount, geeft u het bereik van de opslagaccountresource voor de --scope parameter op. Het bereik voor een opslagaccount heeft de volgende vorm:

/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>

In het volgende voorbeeld ziet u hoe u de rol Lezer van opslagblobgegevens toewijst aan een gebruiker op het niveau van het opslagaccount. Zorg ervoor dat u de voorbeeldwaarden vervangt door uw eigen waarden: \

az role assignment create \
    --role "Storage Blob Data Reader" \
    --assignee <email> \
    --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>"

Bereik van de resourcegroep

Als u een rol wilt toewijzen die is toegewezen aan de resourcegroep, geeft u de naam of id van de resourcegroep voor de --resource-group parameter op. In het volgende voorbeeld wordt de rol Gegevenslezer voor opslagwachtrijen toegewezen aan een gebruiker op het niveau van de resourcegroep. Zorg ervoor dat u de voorbeeldwaarden en tijdelijke aanduidingen tussen vierkante haken vervangt door uw eigen waarden:

az role assignment create \
    --role "Storage Queue Data Reader" \
    --assignee <email> \
    --resource-group <resource-group>

Abonnementsbereik

Als u een rol wilt toewijzen die is toegewezen aan het abonnement, geeft u het bereik op voor het abonnement voor de --scope parameter . Het bereik voor een abonnement heeft de volgende vorm:

/subscriptions/<subscription>

In het volgende voorbeeld ziet u hoe u de rol Lezer voor opslagblobgegevens toewijst aan een gebruiker op het niveau van het opslagaccount. Zorg ervoor dat u de voorbeeldwaarden vervangt door uw eigen waarden:

az role assignment create \
    --role "Storage Blob Data Reader" \
    --assignee <email> \
    --scope "/subscriptions/<subscription>"

Volgende stappen