Partager via


Activer le cache d’artefacts dans azure Container Registry avec Azure CLI

Dans cet article, vous allez apprendre à utiliser Azure CLI pour activer la fonctionnalité de cache d’artefacts dans votre Azure Container Registry (ACR) avec ou sans authentification.

En plus des conditions préalables répertoriées ici, vous avez besoin d’un compte Azure avec un abonnement actif. Créez un compte gratuitement.

Conditions préalables

Dans cet article, nous utilisons un exemple d’instance ACR nommée MyRegistry.

Créer les informations d’identification

Avant de configurer les informations d’identification, vérifiez que vous êtes en mesure de créer et de stocker des secrets dans Azure Key Vault et de récupérer des secrets à partir du coffre de clés.

  1. Exécutez 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/passwordsecret
    
  2. Exécutez az acr credential set update pour mettre à jour l’ID de secret Key Vault concernant le nom d’utilisateur ou le mot de passe dans le jeu d’informations d’identification :

    az acr credential-set update -r MyRegistry -n MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Exécutez az acr credential-set show pour afficher les informations d’identification :

    az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
    

Créer une règle de cache

Ensuite, créez et configurez la règle de cache qui extrait les artefacts du référentiel dans votre cache.

  1. Pour créer une règle de cache, exécutez az acr cache create:

    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyDockerHubCredSet
    
  2. Pour mettre à jour les informations d’identification sur la règle de cache, exécutez az acr cache update:

    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    

    Si vous devez supprimer les informations d’identification, exécutez az acr cache update -r MyRegistry -n MyRule --remove-cred-set.

  3. Pour afficher les règles de cache, exécutez az acr cache show:

     az acr cache show -r MyRegistry -n MyRule
    

Conseil / Astuce

Pour créer une règle de cache sans utiliser d’informations d’identification, utilisez la même commande sans informations d’identification spécifiées. Par exemple : az acr cache create --registry Myregistry --name MyRule --source-repo MySourceRepository --target-repo MyTargetRepository. Pour certaines sources, telles que Docker Hub, les informations d’identification sont requises pour créer une règle de cache.

Attribuer des autorisations à Key Vault avec Azure RBAC

Vous pouvez utiliser Azure RBAC pour attribuer les autorisations appropriées aux utilisateurs afin qu’ils puissent accéder à Azure Key Vault.

L’autorisation Microsoft.KeyVault/vaults/secrets/getSecret/action est requise pour accéder au coffre de clés. Le rôle intégré Azure Key Vault Secrets User est généralement accordé, car il s'agit du rôle le moins privilégié qui inclut cette action. Vous pouvez également créer un rôle personnalisé qui inclut cette autorisation.

Les étapes utilisées varient selon que vous utilisez Azure CLI ou Bash.

  1. Obtenez l’ID principal de l’identité système en cours d’utilisation pour accéder à Key Vault :

    az acr credential-set show --name MyCredentialSet --registry MyRegistry 
    

    Notez la valeur de l'ID principal, puisque vous en aurez besoin à l'étape 3.

  2. Affichez les propriétés du coffre de clés pour obtenir son ID de ressource :

    az keyvault show --name MyKeyVaultName --resource-group MyResouceGroup
    

    Vous aurez besoin de cette valeur d’ID de ressource pour l’étape suivante.

  3. Attribuez le rôle Utilisateur des secrets Key Vault à l’identité système du jeu d’informations d’identification :

    az role assignment create --role "Key Vault Secrets User" --assignee CredentialSetPrincipalID --scope KeyVaultResourceID 
    
    

Conseil / Astuce

L’utilisation de l’ID de ressource du coffre de clés accorde l’accès à tous les secrets du coffre de clés. Si vous préférez, vous pouvez accorder l’accès uniquement aux secrets de nom d’utilisateur et de mot de passe. Pour ce faire, au lieu de la commande de l’étape 2, exécutez les commandes suivantes pour récupérer uniquement les secrets de nom d’utilisateur et de mot de passe :

az keyvault secret show --vault-name MyKeyVaultName --name MyUsernameSecretName
az keyvault secret show --vault-name MyKeyVaultName --name MyPasswordSecretName

Ensuite, effectuez l’étape 3 deux fois, en remplaçant KeyVaultResourceID d’abord par l’ID du secret de nom d’utilisateur, puis par l’ID du secret de mot de passe.

Attribuer des autorisations à Key Vault avec des stratégies d’accès

Vous pouvez également utiliser des stratégies d’accès pour attribuer des autorisations.

  1. Obtenez l’ID principal de l’identité système en cours d’utilisation pour accéder à Key Vault :

    az acr credential-set show --name CredentialSet --registry MyRegistry
    

    Notez la valeur de l’ID du principal, car vous en aurez besoin à l’étape suivante.

  2. Exécutez la az keyvault set-policy commande pour affecter l’accès au coffre de clés avant d’extraire l’image. Par exemple, pour attribuer des autorisations pour les informations d’identification pour accéder au secret KeyVault :

    az keyvault set-policy --name MyKeyVault --object-id MyCredentialSetPrincipalID --secret-permissions get
    

Extraire votre image

Pour extraire une image de votre cache, utilisez la commande Docker et fournissez le nom du serveur de connexion au Registre, le nom du référentiel et sa balise souhaitée. Par exemple, pour extraire une image du référentiel hello-world avec une balise latest souhaitée pour le serveur myregistry.azurecr.iode connexion au Registre, exécutez :

 docker pull myregistry.azurecr.io/hello-world:latest

Nettoyer les ressources

Quand vous n’en avez plus besoin, supprimez la règle de cache et les informations d’identification que vous avez créées.

  1. Pour supprimer la règle de cache, exécutez az acr cache delete:

    az acr cache delete -r MyRegistry -n MyRule
    
  2. Pour supprimer les informations d’identification, exécutez az acr credential-set delete:

    az acr credential-set delete -r MyRegistry -n MyDockerHubCredSet
    

Étapes suivantes