Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, aprenderá a usar la CLI de Azure para habilitar la característica de caché de artefactos en Azure Container Registry (ACR) con o sin autenticación.
Además de los requisitos previos que se enumeran aquí, necesita una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Prerrequisitos
- CLI de Azure. Puede usar Azure Cloud Shell o una instalación local de la CLI de Azure para ejecutar los comandos de este artículo. Para usarlo localmente, se requiere la versión 2.46.0 o posterior de la CLI de Azure. Para confirmar la versión de la CLI de Azure, ejecute
az --version. Para la instalación o la actualización, consulte Instalación de la CLI de Azure. - Una instancia de ACR existente. Si aún no tiene una, use nuestra guía de inicio rápido para crear un nuevo registro de contenedor.
- Un almacén de claves existente para crear y almacenar credenciales.
- Permisos para establecer y recuperar secretos de Key Vault.
En este artículo, se usa una instancia de ACR de ejemplo denominada MyRegistry.
Creación de las credenciales
Antes de configurar las credenciales, asegúrese de que puede crear y almacenar secretos en Azure Key Vault y recuperar secretos de Key Vault.
Ejecute
az acr credential set create:az acr credential-set create -r MyRegistry \ -n MyDockerHubCredSet \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecretEjecute
az acr credential set updatepara actualizar el identificador de secreto de Key Vault de nombre de usuario o contraseña en el conjunto de credenciales:az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretnameEjecute az acr credential-set show para mostrar las credenciales:
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
Creación de una regla de caché
A continuación, cree y configure la regla de caché que extrae artefactos del repositorio en la memoria caché.
Para crear una nueva regla de caché, ejecute
az acr cache create:az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSetPara actualizar las credenciales en la regla de caché, ejecute
az acr cache update:az acr cache update -r MyRegistry -n MyRule -c NewCredSetSi necesita quitar las credenciales, ejecute
az acr cache update -r MyRegistry -n MyRule --remove-cred-set.Para mostrar las reglas de caché, ejecute
az acr cache show:az acr cache show -r MyRegistry -n MyRule
Sugerencia
Para crear una regla de caché sin usar credenciales, use el mismo comando sin credenciales especificadas. Por ejemplo: az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Para algunos orígenes, como Docker Hub, se requieren credenciales para crear una regla de caché.
Asignación de permisos a Key Vault con Azure RBAC
Puede usar Azure RBAC para asignar los permisos adecuados a los usuarios para que puedan acceder a Azure Key Vault.
El Microsoft.KeyVault/vaults/secrets/getSecret/action permiso es necesario para acceder a Key Vault. Normalmente, se concede el rol integrado de Usuario de Secretos de Key Vault a Azure, ya que es el rol con privilegios mínimos que incluye esta acción. Como alternativa, puede crear un rol personalizado que incluya ese permiso.
Los pasos que se usan varían en función de si usa la CLI de Azure o Bash.
Obtenga el identificador principal de la identidad del sistema en uso para acceder a Key Vault.
az acr credential-set show --name MyCredentialSet --registry MyRegistryTome nota del ID principal, ya que lo necesitará en el paso 3.
Muestra las propiedades de Key Vault para obtener su identificador de recurso:
az keyvault show --name MyKeyVaultName --resource-group MyResouceGroupNecesitará este valor de identificador de recurso para el paso siguiente.
Asigne el rol de Usuario de secretos de Key Vault a la identidad del sistema del conjunto de credenciales:
az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID
Sugerencia
El uso del identificador de recurso del Key Vault concede acceso a todos los secretos del mismo. Si lo prefiere, solo puede conceder acceso a los secretos de nombre de usuario y contraseña. Para ello, en lugar del comando del paso 2, ejecute los siguientes comandos para recuperar solo los secretos de nombre de usuario y contraseña:
az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName
A continuación, realice el paso 3 dos veces, primero reemplace KeyVaultResourceID por el identificador del secreto de nombre de usuario y, a continuación, por el identificador del secreto de contraseña.
Asignación de permisos a Key Vault con directivas de acceso
Como alternativa, puede usar directivas de acceso para asignar permisos.
Obtenga el identificador principal de la identidad del sistema en uso para acceder a Key Vault.
az acr credential-set show --name CredentialSet --registry MyRegistryTome nota del ID principal, ya que lo necesitará en el paso siguiente.
Ejecute el
az keyvault set-policycomando para asignar acceso a Key Vault antes de extraer la imagen. Por ejemplo, para asignar permisos a las credenciales para acceder al secreto de KeyVault:az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
Extracción de una imagen
Para extraer una imagen de la memoria caché, use el comando docker y proporcione el nombre del servidor de inicio de sesión del Registro, el nombre del repositorio y su etiqueta deseada. Por ejemplo, para extraer una imagen del repositorio hello-world con la etiqueta latest deseada para el servidor myregistry.azurecr.iode inicio de sesión del Registro, ejecute:
docker pull myregistry.azurecr.io/hello-world:latest
Limpieza de recursos
Cuando ya no sea necesario, elimine la regla de caché y las credenciales que creó.
Para eliminar la regla de caché, ejecute
az acr cache delete:az acr cache delete -r MyRegistry -n MyRulePara eliminar las credenciales, ejecute
az acr credential-set delete:az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
Pasos siguientes
- Obtenga información sobre cómo solucionar problemas con el almacenamiento en caché de artefactos.
- Aprenda a habilitar la caché de artefactos mediante Azure Portal.