Distintas formas de autorizar el acceso a datos en blobs con la CLI de AzureChoose how to authorize access to blob data with Azure CLI

Azure Storage proporciona extensiones para la CLI de Azure que permiten especificar el modo de autorizar las operaciones en los datos de blobs.Azure Storage provides extensions for Azure CLI that enable you to specify how you want to authorize operations on blob data. Puede autorizar las operaciones de datos de las siguientes maneras:You can authorize data operations in the following ways:

  • Con una entidad de seguridad de Azure Active Directory (Azure AD).With an Azure Active Directory (Azure AD) security principal. Microsoft recomienda usar las credenciales de Azure AD para mayor seguridad y facilidad de uso.Microsoft recommends using Azure AD credentials for superior security and ease of use.
  • Con la clave de acceso de la cuenta o un token de firma de acceso compartido (SAS).With the account access key or a shared access signature (SAS) token.

Cómo se autorizan las operaciones de datosSpecify how data operations are authorized

Los comandos de la CLI de Azure para leer y escribir datos de blobs incluyen el parámetro --auth-mode opcional.Azure CLI commands for reading and writing blob data include the optional --auth-mode parameter. Especifique ese parámetro para indicar cómo se va a autorizar una operación de datos:Specify this parameter to indicate how a data operation is to be authorized:

  • Establezca el parámetro --auth-mode en login para iniciar sesión con una entidad de seguridad de Azure AD (recomendado).Set the --auth-mode parameter to login to sign in using an Azure AD security principal (recommended).
  • Establezca el parámetro --auth-mode en el valor key heredado para intentar recuperar la clave de acceso de la cuenta que se va a usar para la autorización.Set the --auth-mode parameter to the legacy key value to attempt to retrieve the account access key to use for authorization. Si omite el parámetro --auth-mode, la CLI de Azure también intentará recuperar la clave de acceso.If you omit the --auth-mode parameter, then the Azure CLI also attempts to retrieve the access key.

Para usar el parámetro --auth-mode, asegúrese de que ha instalado la CLI de Azure, versión 2.0.46 o posterior.To use the --auth-mode parameter, make sure that you have installed Azure CLI version 2.0.46 or later. Ejecute az --version para comprobar la versión instalada.Run az --version to check your installed version.

Nota

Cuando una cuenta de almacenamiento está bloqueada con un bloqueo ReadOnly de Azure Resource Manager, no se permite la operación Crear lista de claves para esa cuenta de almacenamiento.When a storage account is locked with an Azure Resource Manager ReadOnly lock, the List Keys operation is not permitted for that storage account. Crear lista de claves es una operación POST y todas las operaciones POST se impiden cuando se configura un bloqueo ReadOnly para la cuenta.List Keys is a POST operation, and all POST operations are prevented when a ReadOnly lock is configured for the account. Por esta razón, cuando la cuenta se bloquea con un bloqueo ReadOnly, los usuarios que aún no disponen de las claves de cuenta deben usar credenciales de Azure AD para tener acceso a los datos de blob.For this reason, when the account is locked with a ReadOnly lock, users users who do not already possess the account keys must use Azure AD credentials to access blob data.

Importante

Si omite el parámetro --auth-mode o lo establece en key, la CLI de Azure intentará usar la clave de acceso de la cuenta para la autorización.If you omit the --auth-mode parameter or set it to key, then the Azure CLI attempts to use the account access key for authorization. En este caso, Microsoft recomienda que proporcione la clave de acceso en el comando o en la variable de entorno AZURE_STORAGE_KEY.In this case, Microsoft recommends that you provide the access key either on the command or in the AZURE_STORAGE_KEY environment variable. Para obtener más información sobre las variables de entorno, vea la sección titulada Establecimiento de variables de entorno para parámetros de autorización.For more information about environment variables, see the section titled Set environment variables for authorization parameters.

Si no proporciona la clave de acceso, la CLI de Azure intentará llamar al proveedor de recursos de Azure Storage para recuperarla con cada operación.If you do not provide the access key, then the Azure CLI attempts to call the Azure Storage resource provider to retrieve it for each operation. La realización de numerosas operaciones de datos que requieren una llamada al proveedor de recursos puede generar una limitación.Performing many data operations that require a call to the resource provider may result in throttling. Para obtener más información sobre los límites del proveedor de recursos, consulte Destinos de escalabilidad y rendimiento para el proveedor de recursos de Azure Storage.For more information about resource provider limits, see Scalability and performance targets for the Azure Storage resource provider.

Autorización con credenciales de Azure ADAuthorize with Azure AD credentials

Al iniciar sesión en la CLI de Azure con credenciales de Azure AD, se devuelve un token de acceso OAuth 2.0.When you sign in to Azure CLI with Azure AD credentials, an OAuth 2.0 access token is returned. La CLI de Azure usa automáticamente ese token para autorizar las operaciones de datos posteriores en Blob Storage o Queue Storage.That token is automatically used by Azure CLI to authorize subsequent data operations against Blob or Queue storage. Para las operaciones admitidas, ya no necesita pasar una clave de cuenta o token SAS con el comando.For supported operations, you no longer need to pass an account key or SAS token with the command.

Puede asignar permisos en los datos de blob a una entidad de seguridad de Azure AD mediante el control de acceso basado en roles de Azure (Azure RBAC).You can assign permissions to blob data to an Azure AD security principal via Azure role-based access control (Azure RBAC). Para más información sobre los roles de Azure en Azure Storage, consulte cómo administrar los derechos de acceso a los datos de Azure Storage mediante Azure RBAC.For more information about Azure roles in Azure Storage, see Manage access rights to Azure Storage data with Azure RBAC.

Permisos para llamar a operaciones de datosPermissions for calling data operations

Las extensiones de Azure Storage se admiten para las operaciones en datos de blob.The Azure Storage extensions are supported for operations on blob data. Las operaciones a las que podrá llamar dependerán de los permisos que se concedan a la entidad de seguridad de Azure AD con la que inicie sesión en la CLI de Azure.Which operations you may call depends on the permissions granted to the Azure AD security principal with which you sign in to Azure CLI. Los permisos para contenedores de Azure Storage se asignan mediante Azure RBAC.Permissions to Azure Storage containers are assigned via Azure RBAC. Por ejemplo, si se le asigna el rol Lector de datos de Storage Blob, puede ejecutar comandos de scripting que lean datos de un contenedor.For example, if you are assigned the Storage Blob Data Reader role, then you can run scripting commands that read data from a container. Si se le asigna el rol Colaborador de datos de Storage Blob, podrá ejecutar comandos de scripting que lean, escriban o eliminen un contenedor, o los datos que contiene.If you are assigned the Storage Blob Data Contributor role, then you can run scripting commands that read, write, or delete a container or the data it contains.

Para más información sobre los permisos requeridos para cada operación de Azure Storage en un contenedor, consulte la sección Llamadas a operaciones de almacenamiento con tokens de OAuth.For details about the permissions required for each Azure Storage operation on a container, see Call storage operations with OAuth tokens.

Ejemplo: Autorización de una operación para crear un contenedor con credenciales de Azure ADExample: Authorize an operation to create a container with Azure AD credentials

En el ejemplo siguiente se muestra cómo crear un contenedor a partir de la CLI de Azure con las credenciales de Azure AD.The following example shows how to create a container from Azure CLI using your Azure AD credentials. Para crear el contenedor, debe iniciar sesión en la CLI de Azure. Necesitará un grupo de recursos y una cuenta de almacenamiento.To create the container, you'll need to log in to the Azure CLI, and you'll need a resource group and a storage account. Para obtener información sobre cómo crear esos recursos, consulte Inicio rápido: Creación, descarga y enumeración de blobs mediante la CLI de Azure.To learn how to create these resources, see Quickstart: Create, download, and list blobs with Azure CLI.

  1. Antes de crear el contenedor, asígnese a sí mismo el rol Colaborador de datos de Storage Blob.Before you create the container, assign the Storage Blob Data Contributor role to yourself. Aunque sea el propietario de la cuenta, necesita permisos explícitos para realizar operaciones de datos en la cuenta de almacenamiento.Even though you are the account owner, you need explicit permissions to perform data operations against the storage account. Para más información sobre la asignación de roles de Azure, consulte Uso de Azure Portal para asignar un rol de Azure para el acceso a datos de blobs y colas.For more information about assigning Azure roles, see Use the Azure portal to assign an Azure role for access to blob and queue data.

    Importante

    La propagación de las asignaciones de roles de Azure pueden tardar unos minutos.Azure role assignments may take a few minutes to propagate.

  2. Llame al comando az storage container create con el parámetro --auth-mode establecido en login para crear el contenedor con sus credenciales de Azure AD.Call the az storage container create command with the --auth-mode parameter set to login to create the container using your Azure AD credentials. No olvide reemplazar los valores del marcador de posición entre corchetes angulares por sus propios valores:Remember to replace placeholder values in angle brackets with your own values:

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Autorización con la clave de acceso de la cuentaAuthorize with the account access key

Si posee la clave de cuenta, puede llamar a cualquier operación de datos Azure Storage.If you possess the account key, you can call any Azure Storage data operation. En general, usar la clave de cuenta es menos seguro.In general, using the account key is less secure. Si la clave de cuenta se ha puesto en riesgo, es posible que también estén en peligro todos los datos de dicha cuenta.If the account key is compromised, all data in your account may be compromised.

En el ejemplo siguiente se muestra cómo crear un contenedor con la clave de acceso de la cuenta.The following example shows how to create a container using the account access key. Especifique la clave de cuenta y proporcione el parámetro --auth-mode con el valor key:Specify the account key, and provide the --auth-mode parameter with the key value:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

Importante

Cuando una cuenta de almacenamiento se bloquea con un bloqueo ReadOnly de Azure Resource Manager, no se permite la operación Enumerar claves para esa cuenta de almacenamiento.When a storage account is locked with an Azure Resource Manager ReadOnly lock, the List Keys operation is not permitted for that storage account. Enumerar claves es una operación POST y todas las operaciones POST se evitan cuando se configura un bloqueo ReadOnly para la cuenta.List Keys is a POST operation, and all POST operations are prevented when a ReadOnly lock is configured for the account. Por esta razón, cuando la cuenta se bloquea con un bloqueo ReadOnly, los usuarios deben tener acceso a los datos con credenciales de Azure AD.For this reason, when the account is locked with a ReadOnly lock, users must access data with Azure AD credentials.

Autorización con un token de SASAuthorize with a SAS token

Si posee un token de SAS, puede llamar a las operaciones de datos permitidas por la firma de acceso compartido.If you possess a SAS token, you can call data operations that are permitted by the SAS. En el ejemplo siguiente se muestra cómo crear un contenedor con un token de SAS:The following example shows how to create a container using a SAS token:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Establecimiento de variables de entorno para parámetros de autorizaciónSet environment variables for authorization parameters

Puede especificar parámetros de autorización en variables de entorno para evitar incluirlos en cada llamada a una operación de datos de Azure Storage.You can specify authorization parameters in environment variables to avoid including them on every call to an Azure Storage data operation. En la tabla siguiente se describen las variables de entorno disponibles.The following table describes the available environment variables.

Variable de entornoEnvironment variable DescripciónDescription
AZURE_STORAGE_ACCOUNTAZURE_STORAGE_ACCOUNT El nombre de la cuenta de almacenamiento.The storage account name. Esta variable se debe usar junto con la clave de cuenta de almacenamiento o un token de SAS.This variable should be used in conjunction with either the storage account key or a SAS token. Si ninguno de ellos está presente, la CLI de Azure intentará recuperar la clave de acceso de la cuenta de almacenamiento con la cuenta de Azure AD autenticada.If neither are present, the Azure CLI attempts to retrieve the storage account access key by using the authenticated Azure AD account. Si se ejecutan un gran número de comandos al mismo tiempo, se puede alcanzar la limitación del proveedor de recursos de Azure Storage.If a large number of commands are executed at one time, the Azure Storage resource provider throttling limit may be reached. Para obtener más información sobre los límites del proveedor de recursos, consulte Destinos de escalabilidad y rendimiento para el proveedor de recursos de Azure Storage.For more information about resource provider limits, see Scalability and performance targets for the Azure Storage resource provider.
AZURE_STORAGE_KEYAZURE_STORAGE_KEY La clave de la cuenta de almacenamiento.The storage account key. Esta variable debe usarse junto con el nombre de la cuenta de almacenamiento.This variable must be used in conjunction with the storage account name.
AZURE_STORAGE_CONNECTION_STRINGAZURE_STORAGE_CONNECTION_STRING Una cadena de conexión que incluye la clave de cuenta de almacenamiento o un token de SAS.A connection string that includes the storage account key or a SAS token. Esta variable debe usarse junto con el nombre de la cuenta de almacenamiento.This variable must be used in conjunction with the storage account name.
AZURE_STORAGE_SAS_TOKENAZURE_STORAGE_SAS_TOKEN Un token de firma de acceso compartido (SAS).A shared access signature (SAS) token. Esta variable debe usarse junto con el nombre de la cuenta de almacenamiento.This variable must be used in conjunction with the storage account name.
AZURE_STORAGE_AUTH_MODEAZURE_STORAGE_AUTH_MODE El modo de autorización con el que se ejecuta el comando.The authorization mode with which to run the command. Los valores permitidos son login (recomendado) o key.Permitted values are login (recommended) or key. Si especifica login, la CLI de Azure utilizará sus credenciales de Azure AD para autorizar la operación de datos.If you specify login, the Azure CLI uses your Azure AD credentials to authorize the data operation. Si especifica el modo key heredado, la CLI de Azure intentará consultar la clave de acceso de la cuenta y autorizar el comando con la clave.If you specify the legacy key mode, the Azure CLI attempts to query for the account access key and to authorize the command with the key.

Pasos siguientesNext steps