Amazon ECR Docker Credential Helper est un assistant d'informations d'identification pour le démon Docker qui facilite l'utilisation d'Amazon Elastic Container Registry.
Conditions préalables
Installation
Amazon Linux 2023 (AL2023)
Amazon Linux 2 (AL2)
MacOS
Debian Buster (et versions futures)
Ubuntu 19.04 Disco Dingo et plus récent
Arch Linux
Linux alpin
Fenêtres
De la source
Configuration
Docker
Informations d'identification AWS
Aide aux informations d'identification Amazon ECR Docker
Usage
Dépannage
Divulgations de sécurité
Licence
Vous devez avoir au moins Docker 1.11 installé sur votre système.
Vous devez également disposer des informations d'identification AWS. Consultez la section Informations d'identification AWS pour plus de détails sur la façon d'utiliser différentes informations d'identification AWS.
Vous pouvez installer Amazon ECR Credential Helper à partir des référentiels Amazon Linux 2023.
$ sudo dnf install -y amazon-ecr-credential-helper
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Vous pouvez installer Amazon ECR Credential Helper à partir du docker
ou des extras ecs
.
$ sudo amazon-linux-extras active docker $ sudo miam installez amazon-ecr-credential-helper
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Une formule Homebrew maintenue par la communauté est disponible dans le robinet principal.
$ Brew install docker-credential-helper-ecr
Sur macOS, une autre méthode d'installation maintenue par la communauté consiste à utiliser MacPorts.
$ sudo port install docker-credential-helper-ecr
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Vous pouvez installer Amazon ECR Credential Helper à partir des archives Debian Buster. Ce paquet sera également inclus dans les futures versions de Debian.
$ sudo mise à jour appropriée $ sudo apt installer amazon-ecr-credential-helper
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Vous pouvez installer Amazon ECR Credential Helper à partir des archives Ubuntu 19.04 Disco Dingo (et plus récentes).
$ sudo mise à jour appropriée $ sudo apt installer amazon-ecr-credential-helper
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Un package maintenu par la communauté est disponible dans le référentiel d'utilisateurs Arch.
$ git clone https://aur.archlinux.org/amazon-ecr-credential-helper.git $ cd amazon-ecr-credential-helper $ makepkg -si
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Un package maintenu par la communauté est disponible dans le référentiel d'aports Alpine Linux.
$ apk ajouter docker-credential-ecr-login
Note
Le badge affiche uniquement Edge, vérifiez le référentiel pour les versions stables ou ajoutez --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Les exécutables Windows sont disponibles via les versions GitHub.
Note
La prise en charge de Windows ARM est considérée comme expérimentale.
Voir #795
Pour créer et installer Amazon ECR Docker Credential Helper, nous vous suggérons d'installer Go 1.19 ou version ultérieure, git
et make
installé sur votre système.
Si vous venez d'installer Go, assurez-vous de l'avoir également ajouté à votre PATH ou à vos variables d'environnement (Windows). Par exemple:
$ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin
Ou sous Windows :
setx GOPATH %USERPROFILE%go <your existing PATH definitions>;%USERPROFILE%gobin
Si vous n'avez pas défini le PATH, la commande ci-dessous échouera silencieusement et l'exécution docker-credential-ecr-login
affichera : command not found
Vous pouvez l'installer via l'outil de ligne de commande go
.
Pour installer, exécutez :
go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@latest
Avertissement
Avis de non-responsabilité : le Dockerfile de ce référentiel est utilisé pour tester la compilation croisée des binaires d'assistance aux informations d'identification Amazon ECR dans GitHub Actions CI et comme utilitaire de développement pour la création locale à partir de la source. Il s'agit d'une implémentation de référence et non d'une sécurité renforcée pour la création et l'exécution de conteneurs de production.
Si vous disposez déjà d'un environnement Docker, clonez simplement ce référentiel n'importe où et exécutez make build-in-docker
. Cette commande crée le binaire avec Go dans le conteneur Docker et le génère dans le répertoire local.
Avec la variable d'environnement TARGET_GOOS
, vous pouvez également compiler le binaire de manière croisée.
Une fois que vous avez installé l'assistant d'identification, consultez la section Configuration pour obtenir des instructions sur la façon de configurer Docker pour qu'il fonctionne avec l'assistant.
Il n'est pas nécessaire d'utiliser docker login
ou docker logout
.
Placez le binaire docker-credential-ecr-login
sur votre PATH
et définissez le contenu de votre fichier ~/.docker/config.json
comme suit :
{ "credsStore": "ecr-login"}
Cela configure le démon Docker pour utiliser l'assistant d'informations d'identification pour tous les registres Amazon ECR.
L'assistant d'identification Docker Amazon ECR peut être utilisé avec vos jetons d'authentification de connexion Docker existants :
{ "credsStore": "ecr-login", "auths": { "https://index.docker.io/v1/": { "auth": [docker.io-auth-token] }, "registry.gitlab.com": { "auth": [gitlab-auth-token] }, } }
Avec Docker 1.13.0 ou version ultérieure, vous pouvez configurer Docker pour utiliser différents assistants d'identification pour différents registres ECR. Pour utiliser cet assistant d'informations d'identification pour un registre ECR spécifique, créez une section credHelpers
avec l'URI de votre registre ECR :
{ "credHelpers": { "public.ecr.aws": "ecr-login", "<aws_account_id>.dkr.ecr.<region>.amazonaws.com": "ecr-login" } }
Ceci est utile si vous utilisez docker
pour opérer sur des registres qui utilisent des informations d'authentification différentes.
L'assistant d'identification Amazon ECR Docker vous permet d'utiliser les informations d'identification AWS stockées à différents emplacements. Les standards incluent :
Le fichier d'informations d'identification partagé ( ~/.aws/credentials
)
Les variables d'environnement AWS_ACCESS_KEY_ID
et AWS_SECRET_ACCESS_KEY
Un rôle IAM pour une tâche Amazon ECS
Un rôle IAM pour Amazon EC2
Pour utiliser les informations d'identification associées à un profil nommé différent dans le fichier d'informations d'identification partagé ( ~/.aws/credentials
), vous pouvez définir la variable d'environnement AWS_PROFILE
.
Amazon ECR Docker Credential Helper lit et prend en charge certaines options de configuration spécifiées dans le fichier de configuration partagé AWS ( ~/.aws/config
). Pour désactiver ces options, vous devez définir la variable d'environnement AWS_SDK_LOAD_CONFIG
sur false
. Les options prises en charge incluent :
Rôles assumés spécifiés avec role_arn
et source_profile
Processus d'identification externes spécifiés avec credential_process
Identités Web telles que les rôles IAM pour les comptes de service dans Kubernetes ( Remarque : les utilisateurs de Kubernetes utilisant des conteneurs avec un utilisateur non root peuvent rencontrer des problèmes d'autorisation décrits dans ce bogue et devront peut-être utiliser une solution de contournement en ajustant le securityContext
de Kubernetes. )
Amazon ECR Docker Credential Helper utilise les mêmes informations d'identification que l'AWS CLI et les kits SDK AWS. Pour plus d'informations sur la configuration des informations d'identification AWS, consultez Fichiers de configuration et d'informations d'identification dans le Guide de l'utilisateur de l'interface de ligne de commande AWS .
Les informations d'identification doivent avoir une stratégie appliquée qui autorise l'accès à Amazon ECR.
Variable d'environnement | Exemple de valeur | Description |
---|---|---|
AWS_ECR_DISABLE_CACHE | vrai | Désactive le cache d'authentification de fichier local s'il est défini sur une valeur non vide |
AWS_ECR_CACHE_DIR | ~/.ecr | Spécifie l'emplacement du répertoire du cache d'authentification de fichier local |
AWS_ECR_IGNORE_CREDS_STORAGE | vrai | Ignorez les appels à la connexion ou à la déconnexion du docker et faites comme si ils avaient réussi |
docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker push 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
docker pull public.ecr.aws/amazonlinux/amazonlinux:latest
Si vous avez configuré des profils supplémentaires à utiliser avec l'AWS CLI, vous pouvez utiliser ces profils en spécifiant la variable d'environnement AWS_PROFILE
lors de l'appel docker
. Par exemple:
AWS_PROFILE=myprofile docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository:my-tag
Il n'est pas nécessaire d'utiliser docker login
ou docker logout
.
Si vous vous êtes déjà authentifié auprès d'un référentiel ECR en utilisant manuellement la commande docker login
, Docker peut avoir stocké un jeton d'authentification qui a depuis expiré. Docker continuera à tenter d'utiliser ce jeton d'authentification mis en cache au lieu d'utiliser l'assistant d'identification. Vous devez explicitement supprimer le jeton expiré précédemment mis en cache à l'aide de docker logout 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-repository
. Après cela, Docker commencera à utiliser l'assistant d'identification ECR pour récupérer de nouvelles informations d'identification, et vous n'aurez plus besoin d'utiliser docker login
ou docker logout
.
Les journaux d'Amazon ECR Docker Credential Helper sont stockés dans ~/.ecr/log
.
Pour plus d'informations sur Amazon ECR, consultez le Guide de l'utilisateur Amazon Elastic Container Registry.
Les fonctionnalités marquées comme expérimentales sont éventuellement mises à la disposition des utilisateurs pour les tester et fournir des commentaires.
Si vous testez des fonctionnalités expérimentales, vous pouvez donner votre avis via le problème de suivi de la fonctionnalité concernant :
Votre expérience avec la fonctionnalité
Problèmes ou problèmes
Améliorations suggérées
Les fonctionnalités expérimentales sont incomplètes dans la conception et la mise en œuvre. Des modifications rétrocompatibles peuvent être introduites à tout moment ou la prise en charge complètement supprimée. Par conséquent, les fonctionnalités expérimentales ne sont pas recommandées pour une utilisation dans des environnements de production.
Si vous pensez avoir découvert un problème de sécurité potentiel, veuillez ne pas le publier dans les problèmes. Au lieu de cela, veuillez suivre les instructions ici ou envoyer un e-mail directement à la sécurité AWS.
Amazon ECR Docker Credential Helper est sous licence Apache 2.0.