Compartir a través de


Autenticación con Azure Container Registry

Puede autenticarse con un registro de contenedor de Azure de varias maneras. Revise estas opciones para determinar qué funciona mejor para el escenario de uso del registro de contenedor.

Para la mayoría de los escenarios, autentíquese mediante uno de los siguientes métodos basados en identificadores de Microsoft Entra:

  • Inicio de sesión individual : autenticación directamente en un registro
  • Entidad de servicio: use una entidad de servicio de Microsoft Entra para la autenticación desasistida o "sin periféricos" realizada por aplicaciones y orquestadores de contenedores.

Opciones de autenticación

En la tabla siguiente se enumeran los métodos de autenticación disponibles y los escenarios típicos, con vínculos a más detalles.

Sugerencia

Para la autenticación desde Azure Kubernetes Service (AKS) u otro clúster de Kubernetes, consulte Escenarios para autenticarse con Azure Container Registry desde Kubernetes.

Método Cómo autenticarse Escenarios Control de acceso basado en rol (RBAC) de Microsoft Entra Limitaciones
Identidad individual de Microsoft Entra  az acr login en la CLI de Azure

Connect-AzContainerRegistry en Azure PowerShell
Inserción/extracción interactiva por parte de los desarrolladores y evaluadores El token de Microsoft Entra debe renovarse cada 3 horas.
Entidad de servicio de Microsoft Entra  docker login

az acr login en la CLI de Azure

Connect-AzContainerRegistry en Azure PowerShell

Configuración de inicio de sesión del registro en API o herramientas
Inserción desatendida desde la canalización de CI/CD

Extracción desatendida a Azure o a servicios externos
La expiración predeterminada de la contraseña de SP es de 1 año
Identidad administrada de Microsoft Entra para recursos de Azure  docker login

az acr login en la CLI de Azure

Connect-AzContainerRegistry en Azure PowerShell
Inserción desatendida desde la canalización de CI/CD de Azure

Extracción desatendida a servicios de Azure

Para obtener una lista de casos de asignación de roles de identidad administrada, consulte Permisos y asignaciones de roles de ACR Entra.
Solo se puede usar desde servicios de Azure seleccionados que admiten identidades administradas para recursos de Azure.
Usuario administrador  docker login  Inserción/extracción interactiva por parte de un desarrollador o evaluador

Implementación del portal de la imagen desde el registro a Azure App Service o Azure Container Instances
No, siempre acceso de extracción e inserción Alto nivel de acceso. Cuenta única por registro; no se recomienda para varios usuarios
Permisos de repositorio basados en tokens no pertenecientes a Microsoft Entra  docker login

az acr login en la CLI de Azure

Connect-AzContainerRegistry en Azure PowerShell
Inserción/extracción interactiva al repositorio por parte de un desarrollador o evaluador

Incorporación de cambios desatendida del repositorio mediante un sistema individual o dispositivo externo
Los permisos de repositorio basados en tokens no admiten asignaciones de roles RBAC de Microsoft Entra.

Para los permisos de repositorio basados en Microsoft Entra, consulte en su lugar Permisos de repositorio de control de acceso basado en atributos (ABAC) de Azure en Azure Container Registry.
Actualmente no está integrado con el identificador de Entra de Microsoft

Autenticación con Microsoft Entra ID

Al trabajar directamente con el registro, como extraer imágenes e insertar imágenes de una estación de trabajo de desarrollo en un registro que creó, autentíquese mediante la identidad de Azure individual.

Inicie sesión en la CLI de Azure mediante az login y ejecute el comando az acr login :

az login
az acr login --name <acrName>

Al iniciar sesión mediante az acr login, la CLI usa el token creado cuando ejecutaste az login para autenticar de manera transparente la sesión con tu registro. Para completar el flujo de autenticación, la CLI y el demonio de Docker deben estar instalados y ejecutarse en el entorno. az acr login usa el cliente de Docker para establecer un token de Microsoft Entra en el archivo docker.config. Después de iniciar sesión de esta manera, las credenciales se almacenan en caché y los comandos posteriores docker de la sesión no requieren un nombre de usuario ni una contraseña.

Sugerencia

Use también az acr login para autenticar una identidad individual cuando quiera insertar o extraer artefactos que no sean imágenes de Docker en el registro, como artefactos OCI.

Para el acceso al Registro, el token que az acr login usa es válido durante 3 horas, por lo que siempre inicia sesión en el registro antes de ejecutar un docker comando. Si el token expira, actualízalo mediante el az acr login comando de nuevo para volver a autenticarse.

El uso az acr login con identidades de Azure permite el control de acceso basado en rol (RBAC) de Azure. En algunos escenarios, es posible que quiera iniciar sesión en un registro con su propia identidad individual en microsoft Entra ID o configurar otros usuarios de Azure con roles específicos. Para escenarios entre servicios, o para un grupo de trabajo o un flujo de trabajo de desarrollo en el que no desea administrar el acceso individual, también puede iniciar sesión mediante una identidad administrada para los recursos de Azure.

Usar az acr login sin el servicio Docker

En algunos casos, debe autenticarse mediante az acr login cuando el daemon de Docker no se está ejecutando en su entorno. Por ejemplo, puede que necesite ejecutar az acr login en un script en Azure Cloud Shell, que proporciona la CLI de Docker, pero no ejecuta el demonio de Docker.

En este escenario, ejecute az acr login con el parámetro --expose-token. Esta opción devuelve un token de acceso en lugar de iniciar sesión a través de la CLI de Docker.

az acr login --name <acrName> --expose-token

La salida muestra el token de acceso, abreviado aquí:

{
  "accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
  "loginServer": "myregistry.azurecr.io"
}

Para la autenticación del Registro, almacene la credencial de token en una ubicación segura y siga los procedimientos recomendados para administrar las credenciales de inicio de sesión de Docker . Por ejemplo, almacene el valor del token en una variable de entorno:

TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)

A continuación, ejecute docker loginy pase 00000000-0000-0000-0000-000000000000 como nombre de usuario y use el token de acceso como contraseña:

docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN

Del mismo modo, puede usar el token que ha devuelto az acr login mediante el comando helm registry login para autenticarse con el registro:

echo $TOKEN | helm registry login myregistry.azurecr.io \
            --username 00000000-0000-0000-0000-000000000000 \
            --password-stdin

Entidad de servicio

Si asigna una entidad de servicio en el Registro, la aplicación o el servicio pueden usarla para la autenticación desatendida. Las entidades de servicio habilitan el control de acceso basado en rol (RBAC) de Azure en un registro. Puede asignar varias entidades de servicio a un registro, por lo que puede usar distintos roles admitidos para aplicaciones específicas.

Para más información, consulte Autenticación de Azure Container Registry con entidades de servicio.

Cuenta de administrador

Cada registro de contenedor incluye una cuenta de usuario administrador, que está deshabilitada de forma predeterminada. Puede habilitar el usuario administrador y administrar sus credenciales en Azure Portal, mediante la CLI de Azure, Azure PowerShell o con otras herramientas de Azure. La cuenta de administrador tiene permisos completos para el Registro, por lo que debe habilitarla solo cuando sea necesario.

La cuenta de administrador se necesita actualmente en algunos escenarios para implementar una imagen de un registro de contenedor en determinados servicios de Azure. Por ejemplo, la cuenta de administrador es necesaria cuando se usa Azure Portal para implementar una imagen de contenedor desde un registro directamente en Azure Container Instances o Azure Container Apps.

Importante

La cuenta de administrador está diseñada para que un solo usuario acceda al registro, principalmente con fines de prueba. No comparta las credenciales de la cuenta de administrador entre varios usuarios. Todos los usuarios que se autentican con la cuenta de administrador aparecen como un único usuario con acceso de inserción y extracción en el registro. Al cambiar o deshabilitar esta cuenta se deshabilita el acceso de registro para todos los usuarios que utilizan sus credenciales. Use la identidad individual para los usuarios y las entidades de servicio para los escenarios sin periféricos.

La cuenta de administrador tiene dos contraseñas, ambas que puede volver a generar. La regeneración de contraseñas para cuentas de administrador tarda aproximadamente 60 segundos en replicarse y estar disponibles. Dado que la cuenta tiene dos contraseñas, puede mantener la conexión con el Registro mediante una contraseña mientras vuelve a generar la otra. Si habilita la cuenta de administrador, puede pasar el nombre de usuario y cualquier contraseña al docker login comando cuando se le solicite la autenticación básica en el registro. Para conocer los procedimientos recomendados para administrar las credenciales de autenticación, consulte la referencia del comando docker login .

Para habilitar el usuario administrador para un registro existente, use el --admin-enabled parámetro del comando az acr update en la CLI de Azure:

az acr update -n <acrName> --admin-enabled true

También puede habilitar el usuario administrador para tu registro en el portal de Azure. En el menú del servicio, en Configuración, seleccione Claves de acceso. A continuación, active la casilla Usuario administrador para habilitar la cuenta. Se muestra el nombre de usuario del administrador, junto con las dos contraseñas, que puede mostrar o regenerar según sea necesario.

Inicio de sesión mediante una herramienta de contenedor alternativa en lugar de Docker

En algunos escenarios, debe usar herramientas de contenedor alternativas como podman en lugar de Docker.

La herramienta de contenedor predeterminada se establece en docker para comandos az acr login. Si no establece la herramienta de contenedor predeterminada y falta el docker comando en su entorno, verá un error. Para cambiar la herramienta de contenedor predeterminada que usa el az acr login comando, establezca la variable DOCKER_COMMANDde entorno . Por ejemplo:

DOCKER_COMMAND=podman \
az acr login --name <acrName>

Pasos siguientes