Global outage event
If you're experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Wie erlaube ich einem sekundären Konto, Bilder in meine Amazon-ECR-Bild-Repositorys mithilfe von Push oder mithilfe von Pull zu übertragen?
Ich möchte einem sekundären AWS-Konto erlauben, Bilder an meine Amazon Elastic Container Registry (Amazon ECR)-Bild-Repositorys mithilfe von Push oder mithilfe von Pull zu übertragen.
Kurzbeschreibung
Damit ein sekundäres Konto Bilder aus dem Amazon ECR-Repository mithilfe von Push oder mithilfe von Pull übertragen kann, erstelle eine Registrierungs- oder Repository-Richtlinie in deinem Hauptkonto. Um Zugriff auf alle Repositorys in der AWS-Region oder auf mehrere verschiedene Repositorys zu gewähren, konfiguriere eine Richtlinie auf Registrierungsebene. Um den Zugriff auf nur ein Repository zu gewähren oder den Zugriff für verschiedene Identitäten innerhalb eines einzelnen Repositorys einzuschränken, konfiguriere eine Richtlinie auf Repository-Ebene. Konfiguriere die Richtlinie so, dass bestimmte API-Aufrufe vom sekundären Konto aus zulässig sind.
Generiere dann vom sekundären Konto aus ein Docker-Authentifizierungstoken, um Bilder aus dem Repository des primären Kontos mithilfe von Push oder mithilfe von Pull zu übertragen.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Berechtigungen auf Registrierungsebene konfigurieren
Voraussetzung: Deine Amazon-ECR-Registrierung muss eine V2-Richtlinie verwenden. Wenn du eine V1-Richtlinie verwendest, wechsle zu V2. Weitere Informationen zur V2-Richtlinie findest du unter Amazon ECR erweitert die Registrierungsrichtlinie auf alle ECR-Aktionen.
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECR-Konsole für das primäre Konto.
- Wähle im Navigationsbereich unter Privates Registry die Option Features & Settings (Funktionen und Einstellungen) aus.
- Wähle Berechtigungen aus.
- Wähle JSON bearbeiten.
- Gib die Richtlinie in den Editor ein. Beispielrichtlinie, die es dem sekundären Konto ermöglicht, Bilder über alle Repositorys in der Region hinweg mithilfe von Push oder mithilfe von Pull zu übertragen:
Hinweis: Ersetze account-id durch die sekundäre Konto-ID. Gib unter Aktion die Aktionen ein, die das Konto im Repository ausführen kann. Um den Zugriff auf eine bestimmte Rolle zu ermöglichen, gib den Amazon-Ressourcennamen (ARN) der Rolle für den Prinzipal an, z. B. AWS: arn:aws:iam::account-id:role/ecsInstanceRole. Bevor du die Registrierungsrichtlinie speicherst, stelle sicher, dass die von dir eingegebene Rolle im sekundären Konto vorhanden ist. Wenn die Rolle nicht vorhanden ist, erhältst du die Fehlermeldung „invalid registry policy provided“.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ], "Resource": "*" } ] } - Wähle Speichern aus.
Berechtigungen auf Repository-Ebene konfigurieren
Führe die folgenden Schritte aus:
- Öffne die Amazon-ECR-Konsole für das primäre Konto.
- Wähle im Navigationsbereich unter Privates Registry die Option Repositorys aus.
- Wähle das Repository aus, das du ändern möchtest.
- Wähle im Navigationsbereich die Option Berechtigungen aus.
- Wähle Richtlinien-JSON bearbeiten.
- Gib im Richtlinien-Editor deine Richtlinienanweisung ein.
Beispiel für eine Repository-Richtlinie, die es einem Konto ermöglicht, Bilder mithilfe von Push oder mithilfe von Pull zu übertragen:
Hinweis: Ersetze account-id durch die sekundäre Konto-ID. Gib unter Aktion die Aktionen ein, die das Konto im Repository ausführen kann. Um den Zugriff auf eine bestimmte Rolle zu ermöglichen, gib den Amazon-Ressourcennamen (ARN) der Rolle für den Prinzipal an, z. B. AWS: arn:aws:iam::account-id:role/ecsInstanceRole. Bevor du die Registrierungsrichtlinie speicherst, stelle sicher, dass die von dir eingegebene Rolle im sekundären Konto vorhanden ist. Wenn die Rolle nicht vorhanden ist, erhältst du die Fehlermeldung „invalid registry policy provided“.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ] } ] } - Wähle Speichern aus.
- Wenn du Amazon ECS verwendest, um den Container im sekundären Konto auszuführen, lege das Bild fest, das du mit Amazon ECS verwenden möchtest. Das Amazon-ECR-Repository des Hauptkontos hostet das Bild.
Hinweis: Stelle sicher, dass die von AmazonEC2ContainerRegistryPowerUser verwaltete Richtlinie die Amazon-ECR-Berechtigungen für das sekundäre Konto beinhaltet. Du musst über diese Berechtigungen verfügen, um die Übertragung mithilfe von Pull oder mithilfe von Push von deinem Hauptkonto aus durchführen zu können.
Ein temporäres Docker-Authentifizierungstoken generieren
Hinweis: Das Konto, das das Token erhält, muss über die erforderlichen API-Berechtigungen für AWS Identify and Access Management (IAM) verfügen, um das Repository zu ändern. Beispiele findest du unter Von AWS verwaltete Richtlinien für Amazon ECR. Um Probleme mit Docker zu beheben, aktiviere den Debug-Modus auf dem Docker-Daemon.
Führe die folgenden Schritte aus:
-
Um ein Docker-Authentifizierungstoken für ein Konto zu generieren, das Bilder außerhalb von Amazon ECS mithilfe von Push und Pull überträgt, führe den folgenden AWS-CLI-Befehl get-login-password aus:
aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.REGION-ID.amazonaws.com-oder-
Führe den folgenden Befehl von AWS-Tools für Windows PowerShell aus:(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.regionID.amazonaws.comHinweis: Ersetze AWS-ACCOUNT-ID durch deine primäre Konto-ID und REGION-ID durch deine Region. Das temporäre Authentifizierungstoken ist 12 Stunden gültig.
Beispielausgabe:aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-south-1.amazonaws.com WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded or Login Succeeded -
Führe den folgenden Befehl aus, um ein Testbild mithilfe von Pull oder mithilfe von Push vom oder zum primären Konto zu übertragen:
docker pull ACCOUNT-ID.dkr.ecr.REGION.amazonaws.com/REPOSITORY-NAME:TAG-NAMEHinweis: Ersetze ACCOUNT-ID durch deine primäre Konto-ID, REGION durch deine Region, REPOSITORY-NAME durch deinen Repository-Namen und TAG-NAME durch den Tag-Namen für dein Bild.
-
Führe den folgenden Befehl aus, um zu überprüfen, ob du das Bild erfolgreich heruntergeladen hast:
docker images | grep IMAGE-NAMEHinweis: Ersetze IMAGE-NAME durch den Namen deines Bildes.
- Themen
- Containers
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren