Compartir a través de


Autorización del acceso de AzCopy mediante una identidad administrada

Las identidades administradas proporcionan una manera segura y cómoda de autorizar las operaciones de AzCopy sin almacenar credenciales ni administrar tokens de SAS. Este método de autenticación es especialmente útil para scripts automatizados, canalizaciones de CI/CD y aplicaciones que se ejecutan en Azure Virtual Machines u otros servicios de Azure.

En este artículo se muestra cómo configurar AzCopy para usar identidades administradas asignadas por el sistema o asignadas por el usuario. Puede autorizar el acceso a través de variables de entorno, el comando de inicio de sesión de AzCopy o aprovechando las sesiones existentes de la CLI de Azure o Azure PowerShell.

Para obtener más información sobre otras formas de autorizar el acceso a AzCopy, consulte Autorización de AzCopy.

Comprobación de asignaciones de roles

Asegúrese de que la identidad administrada tiene el rol de Azure necesario para las operaciones previstas:

Para obtener instrucciones de asignación de roles, consulte Asignación de un rol de Azure para el acceso a datos de blobs (Blob Storage) o Elija cómo autorizar el acceso a los datos de archivos en Azure Portal (Azure Files).

Nota:

Las asignaciones de roles pueden tardar hasta cinco minutos en propagarse.

Si va a transferir blobs en una cuenta que tiene un espacio de nombres jerárquico, no es necesario asignar ninguna de estas funciones a su entidad de seguridad si la añade a la lista de control de acceso (ACL) del contenedor o directorio de destino. En la ACL, la entidad de seguridad necesita permiso de escritura en el directorio de destino y permiso de ejecución en el contenedor y cada directorio primario. Para más información, consulte Modelo de control de acceso de Azure Data Lake Storage.

Autorización mediante variables de entorno

Para autorizar el acceso, establezca variables de entorno en memoria. A continuación, ejecute cualquier comando de AzCopy. AzCopy recupera el token de autenticación necesario para completar la operación. Una vez finalizada la operación, el token desaparece de la memoria.

AzCopy recupera el token de OAuth mediante las credenciales que proporcione. Como alternativa, AzCopy puede usar el token de OAuth de una CLI de Azure activa o de una sesión de Azure PowerShell.

Esta opción es excelente si planea usar AzCopy dentro de un script que se ejecuta sin interacción del usuario y el script se ejecuta desde una máquina virtual (VM) de Azure. Al usar esta opción, no es necesario almacenar ninguna credencial en la máquina virtual.

Puede iniciar sesión en su cuenta mediante una identidad administrada en todo el sistema que habilite en la máquina virtual o mediante el identificador de cliente, el identificador de objeto o el identificador de recurso de una identidad administrada asignada por el usuario que asigne a la máquina virtual.

Para obtener más información sobre cómo habilitar una identidad administrada que abarque todo el sistema o crear una identidad administrada asignada por el usuario, consulte Configurar identidades administradas para recursos de Azure en una VM mediante Azure Portal.

Autorización mediante el uso de una identidad administrada que abarque todo el sistema

En primer lugar, asegúrese de habilitar una identidad administrada en toda el sistema en la máquina virtual. Para obtener más información, consulte Identidad administrada asignada por el sistema.

Escriba el siguiente comando y presione ENTRAR.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

A continuación, ejecute cualquier comando azcopy. Por ejemplo: azcopy list https://contoso.blob.core.windows.net.

Autorización mediante el uso de una identidad administrada asignada por el usuario

En primer lugar, asegúrese de habilitar una identidad administrada asignada por el usuario en la máquina virtual. Para más información, consulte Identidad administrada asignada por el usuario.

Escriba el siguiente comando y presione ENTRAR.

export AZCOPY_AUTO_LOGIN_TYPE=MSI

A continuación, establezca variables de entorno para el identificador de cliente, el identificador de objeto o el identificador de recurso de la identidad administrada asignada por el usuario.

Uso de un identificador de cliente

Para autorizar mediante un identificador de cliente, escriba el siguiente comando y presione ENTRAR.

export AZCOPY_MSI_CLIENT_ID=<client-id>

Reemplace el marcador de posición <client-id> por el identificador de cliente de la identidad administrada asignada por el usuario.

Para encontrar el identificador de cliente en Azure Portal, consulte las propiedades de la identidad administrada. La siguiente captura de pantalla muestra la ubicación de la propiedad id. de cliente.

Captura de pantalla que muestra la ubicación del identificador de cliente.

Uso de un identificador de objeto

Para autorizar mediante un identificador de objeto, escriba el siguiente comando y presione ENTRAR.

export AZCOPY_MSI_OBJECT_ID=<object-id>

Reemplace el marcador de posición <object-id> por el identificador de objeto de la identidad administrada asignada por el usuario.

Para encontrar el identificador de objeto en Azure Portal, consulte las propiedades de la identidad administrada. En la siguiente captura de pantalla se muestra la ubicación del identificador de objeto (también conocido como ID principal).

Captura de pantalla que muestra la ubicación del identificador de objeto.

Uso de un identificador de recurso

Para autorizar mediante un identificador de recurso, escriba el siguiente comando y presione ENTRAR.

export AZCOPY_MSI_RESOURCE_STRING=<resource-id>

Reemplace el marcador de posición <resource-id> por el identificador de recurso de la identidad administrada asignada por el usuario.

Para encontrar el identificador de recurso en Azure Portal, consulte las propiedades de la identidad administrada. En la captura de pantalla siguiente se muestra la ubicación de la propiedad de identificador de recurso.

Captura de pantalla que muestra la ubicación del identificador de recurso.

Autorización mediante el comando de inicio de sesión de autenticación de AzCopy

En lugar de usar variables en memoria, autorice el acceso mediante el azcopy login comando .

El comando de inicio de sesión de azcopy recupera un token de OAuth y, a continuación, coloca ese token en un almacén secreto del sistema. Si el sistema operativo no tiene un almacén de secretos como un anillo de claves de Linux, el comando de autenticación de inicio de sesión azcopy no funciona porque no hay ningún lugar para colocar el token.

Autorización con una identidad administrada en todo el sistema

En primer lugar, asegúrese de habilitar una identidad administrada en toda el sistema en la máquina virtual. Para obtener más información, consulte Identidad administrada asignada por el sistema.

A continuación, en la consola de comandos, escriba el comando siguiente y presione la tecla ENTRAR.

azcopy login --identity

Autorización con una identidad administrada asignada por el usuario

En primer lugar, asegúrese de habilitar una identidad administrada asignada por el usuario en la máquina virtual. Para más información, consulte Identidad administrada asignada por el usuario. A continuación, inicie sesión con el identificador de cliente, el identificador de objeto o el identificador de recurso de la identidad administrada asignada por el usuario.

Inicio de sesión mediante un identificador de cliente

Escriba el siguiente comando y presione ENTRAR.

azcopy login --identity --identity-client-id "<client-id>"

Reemplace el marcador de posición <client-id> por el identificador de cliente de la identidad administrada asignada por el usuario.

Para encontrar el identificador de cliente en Azure Portal, consulte las propiedades de la identidad administrada. La siguiente captura de pantalla muestra la ubicación de la propiedad id. de cliente.

Captura de pantalla que muestra la ubicación del identificador de cliente

Inicio de sesión mediante un identificador de objeto

Escriba el siguiente comando y presione ENTRAR.

azcopy login --identity --identity-object-id "<object-id>"

Reemplace el marcador de posición <object-id> por el identificador de objeto de la identidad administrada asignada por el usuario.

Para encontrar el identificador de objeto en Azure Portal, consulte las propiedades de la identidad administrada. En la siguiente captura de pantalla se muestra la ubicación del identificador de objeto (también conocido como ID principal).

Captura de pantalla que muestra la ubicación del identificador de objeto

Iniciar sesión con un ID de recurso

Escriba el siguiente comando y presione ENTRAR.

azcopy login --identity --identity-resource-id "<resource-id>"

Reemplace el marcador de posición <resource-id> por el identificador de recurso de la identidad administrada asignada por el usuario.

Para encontrar el identificador de recurso en Azure Portal, consulte las propiedades de la identidad administrada. En la captura de pantalla siguiente se muestra la ubicación de la propiedad de identificador de recurso.

Captura de pantalla que muestra la ubicación del identificador de recurso

Autorización con la CLI de Azure

Al iniciar sesión con la CLI de Azure, la CLI de Azure obtiene un token de OAuth que AzCopy usa para autorizar las operaciones.

Para permitir que AzCopy use ese token, escriba el siguiente comando y presione la tecla ENTRAR .

export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
export AZCOPY_TENANT_ID=<tenant-id>

Para más información sobre cómo iniciar sesión mediante la CLI de Azure, consulte Inicio de sesión en Azure con una identidad administrada mediante la CLI de Azure.

Autorización con Azure PowerShell

Si inicia sesión con Azure PowerShell, Azure PowerShell obtiene un token de OAuth que AzCopy puede usar para autorizar las operaciones.

Para permitir que AzCopy use ese token, escriba el siguiente comando y presione la tecla ENTRAR .

$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
$Env:AZCOPY_TENANT_ID="<tenant-id>"

Para más información sobre cómo iniciar sesión con Azure PowerShell, consulte Inicio de sesión con una identidad administrada.

Pasos siguientes

  • Para más información sobre AzCopy, consulte Introducción a AzCopy.

  • Si tiene preguntas, encuentra problemas o tiene comentarios generales, envíelos en GitHub.