Autorización del acceso a blobs y colas con Azure Active DirectoryAuthorize access to blobs and queues using Azure Active Directory

Azure Storage admite el uso de Azure Active Directory (AD) para autorizar solicitudes a Blob Storage y Queue Storage.Azure Storage supports using Azure Active Directory (Azure AD) to authorize requests to Blob and Queue storage. Con Azure AD, puede usar el control de acceso basado en rol de Azure (Azure RBAC) para conceder permisos a una entidad de seguridad, que puede ser un usuario, un grupo o una entidad de servicio de aplicación.With Azure AD, you can use Azure role-based access control (Azure RBAC) to grant permissions to a security principal, which may be a user, group, or application service principal. Azure AD autentica la entidad de seguridad para devolver un token de OAuth 2.0.The security principal is authenticated by Azure AD to return an OAuth 2.0 token. A continuación, el token se puede usar para autorizar una solicitud en Blob Storage o Queue Storage.The token can then be used to authorize a request against Blob or Queue storage.

La autorización de solicitudes en Azure Storage con Azure AD proporciona seguridad superior y facilidad de uso sobre la autorización de clave compartida.Authorizing requests against Azure Storage with Azure AD provides superior security and ease of use over Shared Key authorization. Microsoft recomienda usar la autorización de Azure AD con sus aplicaciones de blob y cola cuando sea posible para minimizar posibles vulnerabilidades de seguridad inherentes a la clave compartida.Microsoft recommends using Azure AD authorization with your blob and queue applications when possible to minimize potential security vulnerabilities inherent in Shared Key.

La autorización con credenciales de Azure AD está disponible para todas las cuentas de propósito general y de Blob Storage en todas las regiones públicas y nubes nacionales.Authorization with Azure AD is available for all general-purpose and Blob storage accounts in all public regions and national clouds. Solo las cuentas de almacenamiento creadas con el modelo de implementación de Azure Resource Manager admiten la autorización de Azure AD.Only storage accounts created with the Azure Resource Manager deployment model support Azure AD authorization.

Blob Storage admite de forma adicional la creación de firmas de acceso compartido (SAS) firmadas con credenciales de Azure AD.Blob storage additionally supports creating shared access signatures (SAS) that are signed with Azure AD credentials. Para más información, consulte Concesión de acceso limitado a datos con firmas de acceso compartido.For more information, see Grant limited access to data with shared access signatures.

Azure Files admite la autorización con AD (versión preliminar) o Azure AD DS (disponibilidad general) a través de SMB solo para máquinas virtuales unidas a dominios.Azure Files supports authorization with AD (preview) or Azure AD DS (GA) over SMB for domain-joined VMs only. Para aprender a usar AD (versión preliminar) o Azure AD DS (disponibilidad general) sobre SMB para Azure Files, consulte Introducción a la compatibilidad de la autenticación basada en la identidad de Azure Files con el acceso SMB.To learn about using AD (preview) or Azure AD DS (GA) over SMB for Azure Files, see Overview of Azure Files identity-based authentication support for SMB access.

La autorización con Azure AD no es compatible con Azure Table Storage.Authorization with Azure AD is not supported for Azure Table storage. Use la clave compartida para autorizar solicitudes al almacenamiento de tablas.Use Shared Key to authorize requests to Table storage.

Información general sobre Azure AD para blobs y colasOverview of Azure AD for blobs and queues

Cuando una entidad de seguridad (un usuario, un grupo o una aplicación) intenta acceder a un recurso de blob o cola, la solicitud debe autorizarse, a menos que sea un blob disponible para acceso anónimo.When a security principal (a user, group, or application) attempts to access a blob or queue resource, the request must be authorized, unless it is a blob available for anonymous access. Con Azure AD, el acceso a un recurso es un proceso de dos pasos.With Azure AD, access to a resource is a two-step process. En primer lugar, se autentica la identidad de la entidad de seguridad y se devuelve un token de OAuth 2.0.First, the security principal's identity is authenticated and an OAuth 2.0 token is returned. Luego el token se pasa como parte de una solicitud a Blob Service o Queue Service y el servicio lo usa para autorizar el acceso al recurso especificado.Next, the token is passed as part of a request to the Blob or Queue service and used by the service to authorize access to the specified resource.

El paso de autenticación exige que una aplicación solicite un token de acceso de OAuth 2.0 en tiempo de ejecución.The authentication step requires that an application request an OAuth 2.0 access token at runtime. Si una aplicación se está ejecutando desde una entidad de Azure como una máquina virtual de Azure, un conjunto de escalado de máquinas virtuales o una aplicación de Azure Functions, puede usar una identidad administrada para el acceso a blobs o colas.If an application is running from within an Azure entity such as an Azure VM, a virtual machine scale set, or an Azure Functions app, it can use a managed identity to access blobs or queues. Para más información sobre cómo autorizar solicitudes realizadas por una identidad administrada a Azure Blob Service o Queue service, vea Autorización del acceso a blobs y colas con Azure Active Directory e identidades administradas para los recursos de Azure.To learn how to authorize requests made by a managed identity to the Azure Blob or Queue service, see Authorize access to blobs and queues with Azure Active Directory and managed identities for Azure Resources.

El paso de autorización exige que se asignen uno o varios roles de Azure a la entidad de seguridad.The authorization step requires that one or more Azure roles be assigned to the security principal. Azure Storage proporciona roles de Azure que abarcan conjuntos comunes de permisos para datos de blobs y colas.Azure Storage provides Azure roles that encompass common sets of permissions for blob and queue data. Los roles que se asignan a una entidad de seguridad determinan los permisos que tiene esa entidad de seguridad.The roles that are assigned to a security principal determine the permissions that the principal will have. Para más información sobre la asignación de roles de Azure en Azure Storage, vea Administración de los derechos de acceso a los datos de almacenamiento con Azure RBAC.To learn more about assigning Azure roles for Azure Storage, see Manage access rights to storage data with Azure RBAC.

Las aplicaciones nativas y las aplicaciones web que realizan solicitudes a Azure Blob Service o Queue service también se pueden autorizar con Azure AD.Native applications and web applications that make requests to the Azure Blob or Queue service can also authorize access with Azure AD. Para información sobre cómo solicitar un token de acceso y usarlo para autorizar solicitudes de datos de blobs o colas, vea Autenticar con Azure Active Directory desde una aplicación para el acceso a los blobs y colas.To learn how to request an access token and use it to authorize requests for blob or queue data, see Authorize access to Azure Storage with Azure AD from an Azure Storage application.

Asignación de roles de Azure para derechos de accesoAssign Azure roles for access rights

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 y de las colas.Azure Storage defines a set of Azure built-in roles that encompass common sets of permissions used to access blob and queue data. También puede definir roles personalizados para el acceso a datos de blobs y colas.You can also define custom roles for access to blob and queue data.

Cuando un rol de Azure se asigna a una entidad de seguridad de Azure AD, Azure concede a esa entidad de seguridad acceso a esos recursos.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.

Roles integrados de Azure para blobs y colasAzure built-in 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 the 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.

Para obtener información sobre cómo asignar un rol integrado de Azure a una entidad de seguridad, vea alguno de los siguientes artículos:To learn how to assign an Azure built-in role to a security principal, see one of the following articles:

Para más información acerca de cómo se definen los roles integrados para Azure Storage, consulte Descripción de definiciones de roles.For more information about how built-in roles are defined for Azure Storage, see Understand role definitions. Para más información acerca de la creación de roles personalizados de Azure, consulte Roles personalizados de Azure.For information about creating Azure custom roles, see Azure custom roles.

Permisos de acceso para operaciones de datosAccess permissions for data operations

Para obtener detalles sobre los permisos necesarios para llamar a operaciones concretas de Blob Service o Queue Service, vea Permisos para llamar a operaciones de datos de blobs y colas.For details on the permissions required to call specific Blob or Queue service operations, see Permissions for calling blob and queue data operations.

Ámbito de recursosResource scope

Antes de asignar un rol de Azure a una entidad de seguridad, determine el ámbito de acceso que debería tener la entidad de seguridad.Before you assign an Azure 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.

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)?.

Acceso a datos con una cuenta de Azure ADAccess data with an Azure AD account

El acceso a los datos de blobs o colas a través de Azure Portal, PowerShell o la CLI de Azure se puede autorizar mediante la cuenta de Azure AD del usuario o las claves de acceso de cuenta (autorización de clave compartida).Access to blob or queue data via the Azure portal, PowerShell, or Azure CLI can be authorized either by using the user's Azure AD account or by using the account access keys (Shared Key authorization).

Acceso a datos desde Azure PortalData access from the Azure portal

Azure Portal puede usar la cuenta de Azure AD o las claves de acceso de cuenta para acceder a datos de blobs y colas en una cuenta de Azure Storage.The Azure portal can use either your Azure AD account or the account access keys to access blob and queue data in an Azure storage account. El esquema de autorización que use Azure Portal depende de los roles de Azure que tenga asignados.Which authorization scheme the Azure portal uses depends on the Azure roles that are assigned to you.

Si intenta acceder a datos de blobs o colas, Azure Portal primero comprueba si tiene asignado un rol de Azure con Microsoft.Storage/storageAccounts/listkeys/action.When you attempt to access blob or queue data, the Azure portal first checks whether you have been assigned an Azure role with Microsoft.Storage/storageAccounts/listkeys/action. Si tiene un rol asignado con esta acción, Azure Portal usa la clave de cuenta para acceder a los datos de blobs y colas mediante autorización de clave compartida.If you have been assigned a role with this action, then the Azure portal uses the account key for accessing blob and queue data via Shared Key authorization. Si no tiene un rol asignado con esta acción, Azure Portal intenta acceder a los datos mediante la cuenta de Azure AD.If you have not been assigned a role with this action, then the Azure portal attempts to access data using your Azure AD account.

Para acceder a datos de blobs o colas desde Azure Portal con la cuenta de Azure AD, necesita permisos para acceder a datos de blobs y colas y, además, permisos para examinar los recursos de la cuenta de almacenamiento en Azure Portal.To access blob or queue data from the Azure portal using your Azure AD account, you need permissions to access blob and queue data, and you also need permissions to navigate through the storage account resources in the Azure portal. Los roles integrados que proporciona Azure Storage conceden acceso a recursos de blobs y colas, pero no conceden permisos a los recursos de la cuenta de almacenamiento.The built-in roles provided by Azure Storage grant access to blob and queue resources, but they don't grant permissions to storage account resources. Por este motivo, el acceso al portal también requiere la asignación de un rol de Azure Resource Manager, como el rol Lector, con ámbito limitado al nivel de la cuenta de almacenamiento o superior.For this reason, access to the portal also requires the assignment of an Azure Resource Manager role such as the Reader role, scoped to the level of the storage account or higher. El rol Lector concede los permisos más restringidos, pero otro rol de Azure Resource Manager que conceda acceso a los recursos de administración de la cuenta de almacenamiento también es aceptable.The Reader role grants the most restricted permissions, but another Azure Resource Manager role that grants access to storage account management resources is also acceptable. Para obtener más información sobre cómo asignar permisos a los usuarios para el acceso a los datos de Azure Portal con una cuenta de Azure AD, vea Uso de Azure Portal para asignar un rol de Azure para el acceso a datos de blobs y colas.To learn more about how to assign permissions to users for data access in the Azure portal with an Azure AD account, see Use the Azure portal to assign an Azure role for access to blob and queue data.

Azure Portal indica qué esquema de autorización se está usando al examinar un contenedor o una cola.The Azure portal indicates which authorization scheme is in use when you navigate to a container or queue. Para obtener más información sobre el acceso a datos en el portal, consulte Selección del método de autorización de acceso a los datos de blob en Azure Portal y Selección del método de autorización de acceso a los datos de cola en Azure Portal.For more information about data access in the portal, see Choose how to authorize access to blob data in the Azure portal and Choose how to authorize access to queue data in the Azure portal.

Acceso a datos desde PowerShell o la CLI de AzureData access from PowerShell or Azure CLI

PowerShell y la CLI de Azure admiten el inicio de sesión con credenciales de Azure AD.Azure CLI and PowerShell support signing in with Azure AD credentials. Después de iniciar sesión, la sesión se ejecuta con esas credenciales.After you sign in, your session runs under those credentials. Para obtener más información, vea Ejecución de comandos de la CLI de Azure o PowerShell con credenciales de Azure AD para acceder a datos de blob o cola.To learn more, see Run Azure CLI or PowerShell commands with Azure AD credentials to access blob or queue data.

Pasos siguientesNext steps