Extracción de imágenes de Azure Container Apps con identidad administrada
Puede extraer imágenes de repositorios privados de Microsoft Azure Container Registry mediante identidades administradas para la autenticación para evitar el uso de credenciales administrativas. Puede usar una identidad administrada asignada por el usuario o asignada por el sistema para autenticarse con Azure Container Registry.
Con una identidad administrada asignada por el sistema, Azure Container Apps crea y administra la identidad. La identidad está asociada a la aplicación de contenedor y se elimina si se elimina la aplicación. Con una identidad administrada asignada por el usuario, se crea y administra la identidad fuera de Azure Container Apps. Se puede asignar a varios recursos de Azure, incluido Azure Container Apps.
Container Apps comprueba si hay una nueva versión de la imagen cada vez que se inicia un contenedor. En la terminología de Docker o Kubernetes, Container Apps establece la directiva de extracción de imágenes de cada contenedor en always
.
En este artículo se describe cómo usar Azure Portal para configurar la aplicación contenedora con el fin de usar identidades administradas asignadas por el usuario y asignadas por el sistema para extraer imágenes de repositorios privados de Azure Container Registry.
Identidad administrada asignada por el usuario
En los pasos siguientes se describe el proceso para configurar la aplicación contenedora con el fin de usar una identidad administrada asignada por el usuario para extraer imágenes de repositorios privados de Azure Container Registry.
- Cree una aplicación contenedora con una imagen pública.
- Agregue la identidad administrada asignada por el usuario a la aplicación contenedora.
- Cree una revisión de la aplicación de contenedor con una imagen privada y la identidad administrada asignada por el usuario.
Requisitos previos
Una cuenta de Azure con una suscripción activa.
- Si no tiene ninguna, puede crear una gratis.
Una instancia privada de Azure Container Registry que contiene una imagen que desea extraer.
Azure Container Registry debe permitir los tokens de audiencia de ARM para la autenticación con el fin de usar la identidad administrada a fin de extraer imágenes. Use el siguiente comando para comprobar si se permite que los tokens de ARM accedan a ACR:
az acr config authentication-as-arm show -r <REGISTRY>
Si no se permiten tokens de ARM, puede permitirlos con el siguiente comando:
az acr config authentication-as-arm update -r <REGISTRY> --status enabled
Cree una identidad administrada asignada por el usuario. Para más información, vaya a Creación de una identidad administrada asignada por el usuario.
Crear una aplicación de contenedor
Siga estos pasos para crear una aplicación contenedora con la imagen de inicio rápido predeterminada.
Vaya a la página Principal del portal.
Busque Aplicaciones de contenedor en la barra de búsqueda superior.
Busque Aplicaciones de contenedor en los resultados de la búsqueda.
Seleccione el botón Crear.
En la pestaña Aspectos básicos, realice las acciones siguientes.
Configuración Acción Suscripción Seleccione su suscripción a Azure. Grupo de recursos Seleccione un grupo de recursos existente o cree uno nuevo. Nombre de la aplicación de contenedor Escriba un nombre para la aplicación contenedora. Ubicación Seleccione una ubicación. Creación del entorno de la aplicación contenedora Cree un nuevo entorno o seleccione uno existente. Seleccione el botón Revisar y crear en la parte inferior de la página Crear entorno de aplicación de contenedor.
Seleccione el botón Crear en la parte inferior de la página Crear aplicación contenedora.
Deje que transcurran unos minutos para que la implementación finalice. Una vez finalizada la implementación, seleccione Ir al recurso.
Incorporación de la identidad administrada asignada por el usuario
- Seleccione Identidad en el menú izquierdo.
- Seleccione la pestaña Usuario asignado.
- Seleccione el botón Agregar identidad administrada asignada por el usuario.
- Seleccione su suscripción.
- Seleccione la identidad que creó.
- Seleccione Agregar.
Creación de una revisión de la aplicación contenedora
Cree una revisión de la aplicación contenedora con una imagen privada y la identidad administrada asignada por el sistema.
Seleccione Administración de revisiones en el menú izquierdo.
Seleccione Crear nueva revisión.
Seleccione la imagen contenedora en la tabla Imagen de contenedor.
Escriba la información en el cuadro de diálogo Editar un contenedor.
Campo Action Nombre Escriba un nombre para el contenedor. Fuente de la imagen Seleccione Azure Container Registry. Autenticación Seleccione Identidad administrada. Identidad Seleccione la identidad que creó en el menú desplegable. Registro Seleccione el registro que desea usar en el menú desplegable. Imagen Escriba el nombre de la imagen que desea usar. Etiqueta de imagen Escriba el nombre y la etiqueta de la imagen que desea extraer. Nota:
Si las credenciales administrativas no están habilitadas en el registro de Azure Container Registry, aparecerá un mensaje de advertencia y tendrá que escribir manualmente el nombre de la imagen y la información de etiquetas.
Seleccione Guardar.
Seleccione Crear en la página Crear e implementar nueva revisión.
Se creará e implementará una nueva revisión. El portal intentará agregar automáticamente el rol acrpull
a la identidad administrada asignada por el usuario. Si el rol no se agrega, puede agregarlo manualmente.
Para confirmar que el rol se agregó, compruebe la identidad en el panel Identidad de la página de la aplicación contenedora.
- Seleccione Identidad en el menú izquierdo.
- Seleccione la pestaña Usuario asignado.
- Seleccione la identidad administrada asignada por el usuario.
- Seleccione Asignaciones de roles de Azure en el menú de la página de recursos de identidad administrada.
- Compruebe que el rol
acrpull
está asignado a la identidad administrada asignada por el usuario.
Creación de una aplicación de contenedor con una imagen privada
Si no quiere empezar creando una aplicación de contenedor con una imagen pública, también puede hacer lo siguiente.
- Cree una identidad administrada asignada por el usuario.
- Agregue el rol
acrpull
a la identidad administrada asignada por el usuario. - Cree una aplicación de contenedor con una imagen privada y la identidad administrada asignada por el usuario.
Este método es típico en escenarios de infraestructura como código (IaC).
Limpieza de recursos
Si no va a seguir usando esta aplicación, puede eliminar la instancia de Azure Container Apps y todos los servicios asociados quitando el grupo de recursos.
Advertencia
Al eliminar el grupo de recursos, se eliminarán todos los recursos del grupo. Si tiene otros recursos en el grupo, también se eliminarán. Si desea mantener los recursos, puede eliminar la instancia y el entorno de la aplicación contenedora.
- Seleccione el grupo de recursos en la sección Información general.
- Seleccione el botón Eliminar grupo de recursos en la parte superior de la página del grupo de recursos Información general.
- Escriba el nombre del grupo de recursos en el cuadro de diálogo de confirmación.
- Seleccione Eliminar.
El proceso para eliminar el grupo de recursos puede tardar unos minutos en completarse.
Identidad administrada asignada por el sistema
El método para configurar una identidad administrada asignada por el sistema en Azure Portal es el mismo que el de la configuración de una identidad administrada asignada por el usuario. La única diferencia es que no es necesario crear una identidad administrada asignada por el usuario. En su lugar, la identidad administrada asignada por el sistema se crea al crear la aplicación contenedora.
El método para configurar una identidad administrada asignada por el sistema en Azure Portal es:
- Cree una aplicación contenedora con una imagen pública.
- Cree una revisión de la aplicación contenedora con una imagen privada y la identidad administrada asignada por el sistema.
Requisitos previos
- Una cuenta de Azure con una suscripción activa.
- Si no tiene ninguna, puede crear una gratis.
- Una instancia privada de Azure Container Registry que contiene una imagen que desea extraer. Consulte Creación de una instancia privada de Azure Container Registry.
Crear una aplicación de contenedor
Siga estos pasos para crear una aplicación contenedora con la imagen de inicio rápido predeterminada.
Vaya a la página Principal del portal.
Busque Aplicaciones de contenedor en la barra de búsqueda superior.
Busque Aplicaciones de contenedor en los resultados de la búsqueda.
Seleccione el botón Crear.
En la pestaña Aspectos básicos, realice las acciones siguientes.
Configuración Acción Suscripción Seleccione su suscripción a Azure. Grupo de recursos Seleccione un grupo de recursos existente o cree uno nuevo. Nombre de la aplicación de contenedor Escriba un nombre para la aplicación contenedora. Ubicación Seleccione una ubicación. Creación del entorno de la aplicación contenedora Cree un nuevo entorno o seleccione uno existente. Seleccione el botón Revisar y crear en la parte inferior de la página Crear entorno de aplicación de contenedor.
Seleccione el botón Crear en la parte inferior de la página Crear entorno de aplicación de contenedor.
Deje que transcurran unos minutos para que la implementación finalice. Una vez finalizada la implementación, seleccione Ir al recurso.
Edición e implementación de una revisión
Edite el contenedor para usar la imagen de la instancia privada de Azure Container Registry y configure la autenticación para usar la identidad asignada por el sistema.
Seleccione Contenedores en el menú lateral de la izquierda.
Seleccione Editar e implementar.
Seleccione el contenedor simple-hello-world-container en la lista.
Configuración Acción Nombre Escriba el nombre de la aplicación contenedora. Fuente de la imagen Seleccione Azure Container Registry. Autenticación Seleccione Identidad administrada. Identidad Seleccione Asignado por el sistema. Registro Escriba el nombre del registro. Imagen Escriba el nombre de la imagen. Etiqueta de imagen Escriba la etiqueta. Nota:
Si las credenciales administrativas no están habilitadas en el registro de Azure Container Registry, aparecerá un mensaje de advertencia y tendrá que escribir manualmente el nombre de la imagen y la información de etiquetas.
Seleccione Guardar en la parte inferior de la página.
Seleccione Crear en la parte inferior de la página Crear e implementar una nueva revisión.
Después de unos minutos, seleccione Actualizar en la página Administración de revisiones para ver la nueva revisión.
Se creará e implementará una nueva revisión. El portal intentará agregar automáticamente el rol acrpull
a la identidad administrada asignada por el sistema. Si el rol no se agrega, puede agregarlo manualmente.
Para confirmar que el rol se agregó, compruebe la identidad en el panel Identidad de la página de la aplicación contenedora.
- Seleccione Identidad en el menú izquierdo.
- Vaya a la pestaña Asignado por el sistema.
- Seleccione Asignaciones de roles de Azure.
- Compruebe que el rol
acrpull
está asignado a la identidad administrada asignada por el sistema.
Limpieza de recursos
Si no va a seguir usando esta aplicación, puede eliminar la instancia de Azure Container Apps y todos los servicios asociados quitando el grupo de recursos.
Advertencia
Al eliminar el grupo de recursos, se eliminarán todos los recursos del grupo. Si tiene otros recursos en el grupo, también se eliminarán. Si desea mantener los recursos, puede eliminar la instancia y el entorno de la aplicación contenedora.
- Seleccione el grupo de recursos en la sección Información general.
- Seleccione el botón Eliminar grupo de recursos en la parte superior de la página del grupo de recursos Información general.
- Escriba el nombre del grupo de recursos en el cuadro de diálogo de confirmación.
- Seleccione Eliminar.
El proceso para eliminar el grupo de recursos puede tardar unos minutos en completarse.
En este artículo se describe cómo configurar la aplicación contenedora para usar identidades administradas para extraer imágenes de un repositorio de Azure Container Registry privado mediante la CLI de Azure y Azure PowerShell.
Requisitos previos
Requisito previo | Descripción |
---|---|
Cuenta de Azure | Una cuenta de Azure con una suscripción activa. Si no tiene ninguna, puede crear una gratis. |
CLI de Azure | Si usa la CLI de Azure, instale la CLI de Azure en la máquina local. |
Azure PowerShell | Si usa PowerShell, instale Azure PowerShell en la máquina local. Asegúrese de que la versión más reciente del módulo Az.App esté instalada; para ello, ejecute el comando Install-Module -Name Az.App . |
Azure Container Registry | Una instancia privada de Azure Container Registry que contiene una imagen que desea extraer. Inicio rápido: Creación de un registro de contenedor privado mediante la CLI de Azure o Inicio rápido: Creación de un registro de contenedor privado mediante Azure PowerShell |
Configuración
Primero, inicie sesión en Azure desde la CLI o PowerShell. Ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.
az login
Instale la extensión Azure Container Apps para la CLI.
az extension add --name containerapp --upgrade
Ahora que está instalada la extensión o el módulo actual, registre el espacio de nombres Microsoft.App
y el proveedor Microsoft.OperationalInsights
si no los ha registrado antes.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
A continuación, establezca las siguientes variables de entorno. Reemplace los <MARCADORES DE POSICIÓN> por sus propios valores.
RESOURCE_GROUP="<YOUR_RESOURCE_GROUP_NAME>"
LOCATION="<YOUR_LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<YOUR_ENVIRONMENT_NAME>"
REGISTRY_NAME="<YOUR_REGISTRY_NAME>"
CONTAINERAPP_NAME="<YOUR_CONTAINERAPP_NAME>"
IMAGE_NAME="<YOUR_IMAGE_NAME>"
Si ya tiene un grupo de recursos, omita este paso. De lo contrario, cree un grupo de recursos.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Crear un entorno de aplicación contenedora
Si el entorno no existe, ejecute el comando siguiente:
Para crear el entorno, ejecute el comando siguiente:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Continúe con la sección siguiente para configurar la identidad administrada asignada por el usuario o vaya a la sección Identidad administrada asignada por el sistema.
Identidad administrada asignada por el usuario
Siga este procedimiento para configurar la identidad administrada asignada por el usuario:
- Cree una identidad administrada asignada por el usuario.
- Si usa PowerShell, asigne un rol
acrpull
para el registro a la identidad administrada. La CLI de Azure realiza automáticamente esta asignación. - Cree una aplicación contenedora con la imagen del registro privado que se autentique con la identidad administrada asignada por el usuario.
Crear una identidad administrada asignada por el usuario
Cree una identidad administrada asignada por el usuario. Reemplace los <MARCADORES DE POSICIÓN> por el nombre de la identidad administrada.
IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP
Obtenga el identificador de recurso de la identidad.
IDENTITY_ID=`az identity show \
--name $IDENTITY \
--resource-group $RESOURCE_GROUP \
--query id`
Crear una aplicación de contenedor
Cree la aplicación contenedora con la imagen del registro privado autenticado con la identidad.
Copie el id. de recurso de la identidad para pegarlo en los marcadores de posición <IDENTITY_ID> en el comando siguiente. Si la etiqueta de imagen no es latest
, reemplace "latest" por la etiqueta.
echo $IDENTITY_ID
az containerapp create \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT \
--user-assigned <IDENTITY_ID> \
--registry-identity <IDENTITY_ID> \
--registry-server "$REGISTRY_NAME.azurecr.io" \
--image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"
Limpiar
Precaución
El comando siguiente elimina el grupo de recursos especificado y todos los recursos que contiene. Si los recursos que están fuera del ámbito de este inicio rápido existen en el grupo de recursos especificado, también se eliminarán.
az group delete --name $RESOURCE_GROUP
Identidad administrada asignada por el sistema
Para configurar una identidad asignada por el sistema, deberá:
- Cree una aplicación contenedora con una imagen pública.
- Asignar una identidad administrada asignada por el sistema a la aplicación contenedora.
- Actualizar la aplicación contenedora con la imagen privada.
Crear una aplicación de contenedor
Cree un contenedor con una imagen pública.
az containerapp create \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
Actualización de la aplicación contenedora
Actualice la aplicación contenedora con la imagen del registro de contenedor privado y agregue una identidad asignada por el sistema para autenticar la extracción de Azure Container Registry. También puede incluir otras opciones de configuración necesarias para la aplicación contenedora, como la entrada, la escala y la configuración de Dapr.
Establezca el servidor del registro y active la identidad administrada asignada por el sistema en la aplicación contenedora.
az containerapp registry set \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--identity system \
--server "$REGISTRY_NAME.azurecr.io"
az containerapp update \
--name $CONTAINERAPP_NAME \
--resource-group $RESOURCE_GROUP \
--image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"
Limpiar
Precaución
El comando siguiente elimina el grupo de recursos especificado y todos los recursos que contiene. Si los recursos que están fuera del ámbito de este inicio rápido existen en el grupo de recursos especificado, también se eliminarán.
az group delete --name $RESOURCE_GROUP