[AWS CLI] Changer de rôle pour obtenir une image Docker dans un autre compte

Contexte

Je voulais utiliser AWS pour obtenir une image Docker dans l'ECR d'un autre compte Nous avons résumé les résultats de diverses enquêtes sur le changement de rôle à l'aide de l'AWS CLI.

Conditions préalables

1. Le compte A a l'image Docker souhaitée
2. PULL l'image Docker du compte A vers EC2 existant dans le compte B

Flux de travail

1. Créez un rôle pouvant être utilisé dans le compte B depuis IAM du compte A

1-1. Sélection d'une entité de confiance

image.png

1-2. Joindre la politique de restriction d'accès

Accordez ce qui suit ・ AmazonEC2ContainerRegistryFullAccess ・ AmazonEC2FullAccess -AmazonEC2RoleforSSM (utilisé pour se connecter à EC2 avec Session Manager)

1-3. Création d'un rouleau

・ Vous n'êtes pas obligé de saisir le nom du tag -Le nom du rôle est-il bon pour être facile à comprendre, comme switch-role? -Après création, copiez l'ARN du rôle créé image.png

2. Préparez-vous à changer de rôle dans le compte B

2-1. Connectez-vous avec le compte B et définissez le rôle IAM EC2

Ouvrez le rôle IAM associé à EC2 et appuyez sur le bouton de modification de la relation d'approbation dans l'onglet Relation d'approbation image.png

Collez l'ARN du rouleau créé dans le cadre bleu

2-2. Connectez-vous à EC2 et configurez awscli

Connectez-vous à EC2 (utilisez le gestionnaire de session cette fois) Une fois connecté, passez aux privilèges d'administrateur (su)

2-2-1. Enregistrer le profil après la commutation
[root@ip-10-10-10-131 ~]# aws configure --profile dev
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: ap-northeast-1
Default output format [None]: json

Ici, le nom après la commutation est défini comme dev Après le réglage, ouvrez le fichier de configuration directement

[root@ip-10-10-10-131 ~]# vi .aws/config

Ajouter "role_arn" et "source_profile" image.png

2-2-2. Enregistrer les informations d'authentification
[root@ip-10-10-10-131 ~]# vi .aws/credentials

Créer un nouveau fichier d'informations d'identification

[default]
aws_access_key_id = xxxxxxxx
aws_secret_access_key = xxxxxx

Enregistrer la clé d'accès et la clé d'accès secrète de l'utilisateur qui peut l'utiliser dans le compte B

3. Essayez-le

3-1. Lorsque vous ne changez pas de rôle

Connectez-vous à ECR (Amazon Elastic Container Registry)

[root@ip-10-10-10-185 ~]aws ecr get-login --region ap-northeast-1 --no-include-email > dlogin.sh
[root@ip-10-10-10-185 ~]chmod +x dlogin.sh
[root@ip-10-10-10-185 ~]./dlogin.sh

Obtenir le référentiel

[root@ip-10-10-10-185 ~]docker pull 'URI du référentiel'
Error response from daemon: Get 'URI du référentiel' no basic auth credentials

Cela devient une erreur liée à l'authentification comme

3-2. Lorsque le rôle est changé

Connectez-vous à ECR (Amazon Elastic Container Registry)

[root@ip-10-10-10-185 ~]aws ecr get-login --region ap-northeast-1 --no-include-email --profile dev > dlogin_dev.sh
[root@ip-10-10-10-185 ~]chmod +x dlogin_dev.sh
[root@ip-10-10-10-185 ~]./dlogin_dev.sh

Obtenir le référentiel

[root@ip-10-10-10-185 ~]docker pull 'URI du référentiel'
Téléchargement..
・
・
・
・
Digest: sha256:0xx
Status: Downloaded newer image for 'URI du référentiel'

Confirmation de l'image acquise

[root@ip-10-10-10-185 ~]# docker images
REPOSITORY     TAG                 IMAGE ID            CREATED             SIZE
Nom du référentiel dernier xxxxxxxxxxxx il y a 13 mois 5.37GB

finalement

Cette fois, je me suis spécialisé dans l'acquisition d'images Docker, mais comme le changement de rôle peut également être utilisé pour acquérir des documents à partir de CodeCommit, etc. Pour rappel, j'ai résumé la marche à suivre pour changer aws cli.

référence

Changement facile du profil AWS CLI

Travaillez en changeant de rôle dans l'AWS CLI (https://nasrinjp1.hatenablog.com/entry/2018/04/06/215737)

Recommended Posts

[AWS CLI] Changer de rôle pour obtenir une image Docker dans un autre compte
Migrer l'image Docker vers un autre serveur
Une solution aux erreurs Docker dans lesquelles les débutants ont tendance à rester coincés
Comment migrer une application Web créée dans un environnement Docker local vers AWS
Comment obtenir un heapdump à partir d'un conteneur Docker
Comment déployer à partir d'une image Docker locale vers Heroku
Comment lancer une autre commande dans un programme Ruby
[Rails 6] Comment définir une image d'arrière-plan dans Rails [CSS]
Avec podman dans docker, tout le monde veut s'entendre et utiliser docker avec un ordinateur partagé
Comment accéder à un conteneur s'exécutant sur AWS Fargate
Enregistrez votre propre image Docker dans ECR à l'aide de l'AWS CLI
[Notes personnelles] Comment pousser une image Docker vers des packages GitHub
Présentation de l'AWS CLI à CentOS 7
Installer du fil dans l'image du docker
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
Comment installer confortablement JDK 11 dans votre Mac