Uso de la CLI de Azure para asignar un rol de Azure para obtener acceso a datos de blobs y colasUse Azure CLI to assign an Azure role for access to blob and queue data

Azure Active Directory (Azure AD) autoriza derechos de acceso a recursos protegidos mediante el control de acceso basado en rol de Azure (RBAC de Azure).Azure Active Directory (Azure AD) authorizes access rights to secured resources through Azure role-based access control (Azure RBAC). Azure Storage define un conjunto de roles integrados de Azure que engloban los conjuntos comunes de permisos que se usan para acceder a los datos de los blobs o de las colas.Azure Storage defines a set of Azure built-in roles that encompass common sets of permissions used to access blob or queue data.

Cuando un rol de Azure se asigna a una entidad de seguridad de Azure AD, Azure concede acceso a esos recursos a esa entidad de seguridad.When an Azure role is assigned to an Azure AD security principal, Azure grants access to those resources for that security principal. El acceso se puede limitar al nivel de la suscripción, el grupo de recursos, la cuenta de almacenamiento o un contenedor individual o una cola.Access can be scoped to the level of the subscription, the resource group, the storage account, or an individual container or queue. Una entidad de seguridad de Azure AD puede ser un usuario, un grupo, una entidad de servicio de aplicación o una identidad de servicio administrada para recursos de Azure.An Azure AD security principal may be a user, a group, an application service principal, or a managed identity for Azure resources.

En este artículo se describe cómo usar la CLI de Azure para enumerar los roles integrados de Azure y asignarlos a los usuarios.This article describes how to use Azure CLI to list Azure built-in roles and assign them to users. Para obtener más información sobre cómo usar la CLI de Azure, vea Interfaz de la línea de comandos (CLI) de Azure.For more information about using Azure CLI, see Azure Command-Line Interface (CLI).

Roles de Azure para blobs y colasAzure roles for blobs and queues

Azure proporciona los siguientes roles integrados para autorizar el acceso a datos de blob y cola con Azure AD y OAuth:Azure provides the following Azure built-in roles for authorizing access to blob and queue data using Azure AD and OAuth:

Solo los roles definidos explícitamente para el acceso a datos permiten a una entidad de seguridad acceder a los datos de blobs o colas.Only roles explicitly defined for data access permit a security principal to access blob or queue data. Los roles integrados, como Propietario, Colaborador y Colaborador de la cuenta de almacenamiento, permiten que una entidad de seguridad administre una cuenta de almacenamiento, pero no proporcionan acceso a los datos de blobs o colas dentro de esa cuenta a través de Azure AD.Built-in roles such as Owner, Contributor, and Storage Account Contributor permit a security principal to manage a storage account, but do not provide access to the blob or queue data within that account via Azure AD. Sin embargo, si un rol incluye Microsoft.Storage/storageAccounts/listKeys/action, el usuario al que se haya asignado ese rol podrá acceder a los datos de la cuenta de almacenamiento mediante la autorización de clave compartida con las claves de acceso de la cuenta.However, if a role includes Microsoft.Storage/storageAccounts/listKeys/action, then a user to whom that role is assigned can access data in the storage account via Shared Key authorization with the account access keys. Para más información, consulte Usar Azure Portal para tener acceso a datos de blob o de cola.For more information, see Use the Azure portal to access blob or queue data.

Para obtener información detallada sobre los roles integrados de Azure para Azure Storage para los servicios de datos y el servicio de administración, consulte la sección Almacenamiento en Roles integrados de Azure para RBAC de Azure.For detailed information about Azure built-in roles for Azure Storage for both the data services and the management service, see the Storage section in Azure built-in roles for Azure RBAC. Además, para obtener información sobre los diferentes tipos de roles que proporcionan permisos en Azure, consulte Roles de administrador de suscripciones clásico, roles de Azure y roles de Azure AD.Additionally, for information about the different types of roles that provide permissions in Azure, see Classic subscription administrator roles, Azure roles, and Azure AD roles.

Importante

Las asignaciones de roles de Azure pueden tardar hasta 30 minutos en propagarse.Azure role assignments may take up to 30 minutes to propagate.

Determinar el ámbito de recursosDetermine resource scope

Antes de asignar un rol de Azure RBAC a una entidad de seguridad, determine el ámbito de acceso que debería tener la entidad de seguridad.Before you assign an Azure RBAC role to a security principal, determine the scope of access that the security principal should have. Los procedimientos recomendados dictan que siempre es mejor conceder únicamente el ámbito más restringido posible.Best practices dictate that it's always best to grant only the narrowest possible scope. Los roles de Azure RBAC definidos en un ámbito más amplio los heredan los recursos que están debajo de ellos.Azure RBAC roles defined at a broader scope are inherited by the resources beneath them.

En la lista siguiente se describen los niveles en los que puede definir el ámbito de acceso a recursos de blob y cola de Azure, empezando por el ámbito más restringido:The following list describes the levels at which you can scope access to Azure blob and queue resources, starting with the narrowest scope:

  • Un contenedor individual.An individual container. En este ámbito, se aplica una asignación de roles a todos los blobs del contenedor, así como las propiedades y los metadatos del contenedor.At this scope, a role assignment applies to all of the blobs in the container, as well as container properties and metadata.
  • Una cola individual.An individual queue. En este ámbito, se aplica una asignación de roles a los mensajes de la cola, así como las propiedades y los metadatos de la cola.At this scope, a role assignment applies to messages in the queue, as well as queue properties and metadata.
  • La cuenta de almacenamiento.The storage account. En este ámbito, se aplica una asignación de roles a todos los contenedores y sus blobs, o bien a todas las colas y sus mensajes.At this scope, a role assignment applies to all containers and their blobs, or to all queues and their messages.
  • El grupo de recursos.The resource group. En este ámbito, se aplica una asignación de roles a todos los contenedores o colas de todas las cuentas de almacenamiento del grupo de recursos.At this scope, a role assignment applies to all of the containers or queues in all of the storage accounts in the resource group.
  • La suscripción.The subscription. En este ámbito, se aplica una asignación de roles a todos los contenedores o las colas de todas las cuentas de almacenamiento de todos los grupos de recursos de la suscripción.At this scope, a role assignment applies to all of the containers or queues in all of the storage accounts in all of the resource groups in the subscription.
  • Un grupo de administración.A management group. En este ámbito, se aplica una asignación de roles a todos los contenedores o colas de todas las cuentas de almacenamiento de todos los grupos de recursos de todas las suscripciones del grupo de administración.At this scope, a role assignment applies to all of the containers or queues in all of the storage accounts in all of the resource groups in all of the subscriptions in the management group.

Para más información sobre las asignaciones de roles de Azure y su ámbito, consulte ¿Qué es el control de acceso basado en rol de Azure (Azure RBAC)?For more information about Azure role assignments and scope, see What is Azure role-based access control (Azure RBAC)?.

Lista de roles de Azure disponiblesList available Azure roles

Para enumerar los roles integrados de Azure con la CLI de Azure, use el comando az role definition list:To list available Azure built-in roles with Azure CLI, use the az role definition list command:

az role definition list --out table

Aparecerá una lista con los roles de datos de Azure Storage integrados, así como otros roles integrados de Azure:You'll see the built-in Azure Storage data roles listed, together with other built-in roles for 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

Asignación de un rol de Azure a una entidad de seguridadAssign an Azure role to a security principal

Para asignar un rol de Azure a una entidad de seguridad, use el comando az role assignment create.To assign an Azure role to a security principal, use the az role assignment create command. El formato del comando puede variar en función del ámbito de la asignación.The format of the command can differ based on the scope of the assignment. Los ejemplos siguientes muestran cómo asignar un rol a un usuario en varios ámbitos, pero puede usar el mismo comando para asignar un rol a cualquier entidad de seguridad.The following examples show how to assign a role to a user at various scopes, but you can use the same command to assign a role to any security principal.

Importante

Al crear una cuenta de Azure Storage, no se le asignan automáticamente permisos para tener acceso a datos a través de Azure AD.When you create an Azure Storage account, you are not automatically assigned permissions to access data via Azure AD. Tiene que asignarse a sí mismo de forma explícita un rol RBAC de Azure para el acceso a datos.You must explicitly assign yourself an Azure RBAC role for data access. Puede asignarlo al nivel de su suscripción, grupo de recursos, cuenta de almacenamiento o un contenedor o cola.You can assign it at the level of your subscription, resource group, storage account, or container or queue.

Si la cuenta de almacenamiento se bloquea con un bloqueo de solo lectura de Azure Resource Manager, el bloqueo evita la asignación de roles de RBAC de Azure que tienen como ámbito la cuenta de almacenamiento o un contenedor de datos (contenedor de blobs o cola).If the storage account is locked with an Azure Resource Manager read-only lock, then the lock prevents the assignment of Azure RBAC roles that are scoped to the storage account or to a data container (blob container or queue).

Ámbito de contenedorContainer scope

Para asignar un rol cuyo ámbito es un contenedor, especifique una cadena que contenga el ámbito del contenedor en el parámetro --scope.To assign a role scoped to a container, specify a string containing the scope of the container for the --scope parameter. El ámbito de un contenedor tiene este formato:The scope for a container is in the form:

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

En el siguiente ejemplo se asigna el rol Colaborador de datos de Storage Blob a un usuario y el ámbito se establece en un nivel de contenedor.The following example assigns the Storage Blob Data Contributor role to a user, scoped to the level of the container. Asegúrese de reemplazar los valores de ejemplo y los valores de marcador de posición entre corchetes angulares por los suyos propios:Make sure to replace the sample values and the placeholder values in brackets with your own values:

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

Ámbito de colaQueue scope

Para asignar un rol cuyo ámbito es una cola, especifique una cadena que contenga el ámbito de la cola en el parámetro --scope.To assign a role scoped to a queue, specify a string containing the scope of the queue for the --scope parameter. El ámbito de una cola tiene este formato:The scope for a queue is in the form:

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

En el siguiente ejemplo se asigna el rol Colaborador de datos de Storage Queue a un usuario y el ámbito se establece en un nivel de cola.The following example assigns the Storage Queue Data Contributor role to a user, scoped to the level of the queue. Asegúrese de reemplazar los valores de ejemplo y los valores de marcador de posición entre corchetes angulares por los suyos propios:Make sure to replace the sample values and the placeholder values in brackets with your own values:

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

Ámbito de cuenta de almacenamientoStorage account scope

Para asignar un rol cuyo ámbito es la cuenta de almacenamiento, especifique el ámbito del recurso de la cuenta de almacenamiento en el parámetro --scope.To assign a role scoped to the storage account, specify the scope of the storage account resource for the --scope parameter. El ámbito de una cuenta de almacenamiento tiene este formato:The scope for a storage account is in the form:

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

En el siguiente ejemplo se muestra cómo asignar el rol Lector de datos de Storage Blob a un usuario en el nivel de la cuenta de almacenamiento.The following example shows how to assign the Storage Blob Data Reader role to a user at the level of the storage account. Asegúrese de reemplazar los valores de ejemplo por sus propios valores: Make sure to replace the sample values with your own values: \

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

Ámbito de grupo de recursosResource group scope

Para asignar un rol cuyo ámbito es el grupo de recursos, especifique el identificador o el nombre del grupo de recursos en el parámetro --resource-group.To assign a role scoped to the resource group, specify the resource group name or ID for the --resource-group parameter. En el siguiente ejemplo se asigna el rol Lector de datos de la cola de Storage Blob a un usuario en el nivel del grupo de recursos.The following example assigns the Storage Queue Data Reader role to a user at the level of the resource group. Asegúrese de reemplazar los valores de ejemplo y los valores de marcador de posición entre corchetes angulares por los suyos propios:Make sure to replace the sample values and placeholder values in brackets with your own values:

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

Ámbito de suscripciónSubscription scope

Para asignar un rol cuyo ámbito es la suscripción, especifique el ámbito de la suscripción en el parámetro --scope.To assign a role scoped to the subscription, specify the scope for the subscription for the --scope parameter. El ámbito de una suscripción tiene este formato:The scope for a subscription is in the form:

/subscriptions/<subscription>

En el siguiente ejemplo se muestra cómo asignar el rol Lector de datos de Storage Blob a un usuario en el nivel de la cuenta de almacenamiento.The following example shows how to assign the Storage Blob Data Reader role to a user at the level of the storage account. Asegúrese de reemplazar los valores de ejemplo por sus propios valores:Make sure to replace the sample values with your own values:

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

Pasos siguientesNext steps