[AWS CLI] Wechseln Sie die Rollen, um ein Docker-Image in einem anderen Konto abzurufen

Hintergrund

Ich wollte AWS verwenden, um ein Docker-Image in der ECR eines anderen Kontos abzurufen Wir haben die Ergebnisse verschiedener Untersuchungen zum Rollenwechsel mithilfe der AWS CLI zusammengefasst.

Voraussetzungen

1. Konto A hat das gewünschte Docker-Image
2. Ziehen Sie das in Konto B vorhandene Docker-Image von Konto A bis EC2

Arbeitsablauf

1. Erstellen Sie eine Rolle, die in Konto B aus dem IAM von Konto A verwendet werden kann

1-1. Auswahl der vertrauenswürdigen Entität

image.png

1-2. Fügen Sie Richtlinien zur Zugriffsbeschränkung hinzu

Gewähren Sie Folgendes ・ AmazonEC2ContainerRegistryFullAccess ・ AmazonEC2FullAccess -AmazonEC2RoleforSSM (wird verwendet, um mit Session Manager eine Verbindung zu EC2 herzustellen)

1-3. Erstellen einer Rolle

・ Sie müssen den Tag-Namen nicht eingeben

2. Bereiten Sie sich darauf vor, die Rollen in Konto B tatsächlich zu wechseln

2-1 Melden Sie sich mit Konto B an und legen Sie die EC2-IAM-Rolle fest

Öffnen Sie die an EC2 angehängte IAM-Rolle und klicken Sie auf der Registerkarte Vertrauensbeziehung auf die Schaltfläche zum Bearbeiten der Vertrauensstellung image.png

Fügen Sie die ARN der erstellten Rolle in den blauen Rahmen ein

2-2 Melden Sie sich bei EC2 an und richten Sie awscli ein

Melden Sie sich bei EC2 an (verwenden Sie diesmal den Sitzungsmanager). Wechseln Sie nach dem Anmelden zu Administratorrechten (su).

2-2-1. Registrieren Sie das Profil nach dem Umschalten
[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

Hier wird der Name nach dem Wechsel als dev definiert Öffnen Sie nach dem Einstellen die Konfigurationsdatei direkt

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

Fügen Sie "role_arn" und "source_profile" hinzu image.png

2-2-2. Registrieren Sie die Authentifizierungsinformationen
[root@ip-10-10-10-131 ~]# vi .aws/credentials

Erstellen Sie eine neue Anmeldeinformationsdatei

[default]
aws_access_key_id = xxxxxxxx
aws_secret_access_key = xxxxxx

Registrieren Sie den Zugriffsschlüssel und den geheimen Zugriffsschlüssel des Benutzers, der ihn in Konto B verwenden kann

3. Probieren Sie es aus

3-1. Wenn Sie nicht die Rolle wechseln

Melden Sie sich bei ECR (Amazon Elastic Container Registry) an.

[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

Repository abrufen

[root@ip-10-10-10-185 ~]docker pull 'Repository-URI'
Error response from daemon: Get 'Repository-URI' no basic auth credentials

Es wird ein Fehler im Zusammenhang mit der Authentifizierung wie

3-2. Wenn die Rolle gewechselt wird

Melden Sie sich bei ECR (Amazon Elastic Container Registry) an.

[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

Repository abrufen

[root@ip-10-10-10-185 ~]docker pull 'Repository-URI'
wird heruntergeladen..
・
・
・
・
Digest: sha256:0xx
Status: Downloaded newer image for 'Repository-URI'

Bestätigung des aufgenommenen Bildes

[root@ip-10-10-10-185 ~]# docker images
REPOSITORY     TAG                 IMAGE ID            CREATED             SIZE
Repository-Name aktuell xxxxxxxxxxxx vor 13 Monaten 5.37GB

Schließlich

Dieses Mal habe ich mich auf das Erfassen von Docker-Bildern spezialisiert, aber da der Rollenwechsel auch zum Erfassen von Dokumenten von CodeCommit usw. verwendet werden kann. Zur Erinnerung habe ich das Verfahren zum Umschalten von aws cli zusammengefasst.

Referenz

Einfaches Wechseln des AWS CLI-Profils

Wechseln Sie die Rollen in der AWS CLI (https://nasrinjp1.hatenablog.com/entry/2018/04/06/215737)

Recommended Posts

[AWS CLI] Wechseln Sie die Rollen, um ein Docker-Image in einem anderen Konto abzurufen
Migrieren Sie das Docker-Image auf einen anderen Server
Eine Lösung für Docker-Fehler, bei denen Anfänger häufig stecken bleiben
So migrieren Sie eine in einer lokalen Docker-Umgebung erstellte Webanwendung nach AWS
So erhalten Sie einen Heapdump aus einem Docker-Container
Bereitstellen von einem lokalen Docker-Image auf Heroku
So starten Sie einen anderen Befehl in einem Ruby-Programm
[Rails 6] So legen Sie ein Hintergrundbild in Rails [CSS] fest
Mit Podman im Docker möchte jeder miteinander auskommen und Docker mit einem gemeinsam genutzten Computer verwenden
So gelangen Sie in einen Container, der auf AWS Fargate ausgeführt wird
Registrieren Sie Ihr eigenes Docker-Image in ECR mithilfe der AWS CLI
[Persönliche Notizen] So verschieben Sie ein Docker-Image in GitHub-Pakete
Einführung von AWS CLI in CentOS 7
Installieren Sie das Garn im Docker-Image
Verwenden Sie Jenkins, um in Docker zu erstellen und dann ein Docker-Image zu erstellen.
So bringen Sie JDK 11 bequem in den Mac