Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Authentifizierung bei privaten Registern in Amazon ECR
Sie können die SDKs AWS Management Console, das oder die AWS SDKs verwenden AWS CLI, um private Repositorys zu erstellen und zu verwalten. Sie können mit diesen Methoden auch einige Aktionen für Images (z. B. auflisten oder löschen) ausführen. Diese Clients verwenden AWS Standardauthentifizierungsmethoden. Auch wenn Sie die Amazon ECR-API verwenden können, um Images zu pushen und zu ziehen, werden Sie wahrscheinlich eher die Docker-CLI oder eine sprachspezifische Docker-Bibliothek verwenden.
Die Docker-CLI unterstützt keine nativen IAM-Authentifizierungsmethoden. Es müssen zusätzliche Schritte unternommen werden, damit Amazon ECR die Push- und Pull-Anforderungen von Docker authentifizieren und autorisieren kann.
Die in den folgenden Abschnitten beschriebenen Authentifizierungsmethoden der Registrierung sind verfügbar.
Verwendung des Amazon ECR Credential Helper
Amazon ECR stellt einen Docker Credential Helper zur Verfügung, der das Speichern und Verwenden von Docker Credentials beim Push- und Pull-Images an Amazon ECR erleichtert. Informationen zu Installations- und Konfigurationsschritten finden Sie unter Amazon ECR Docker Credential Helper
Anmerkung
Der ECR Docker Credential Helper unterstützt derzeit keine Multi-Faktor-Authentifizierung (MFA).
Verwendung eines Autorisierungs-Tokens
Der Berechtigungsbereich eines Berechtigungstokens entspricht dem des IAM-Principals, der zum Abrufen des Authentifizierungstokens verwendet wird. Ein Authentifizierungstoken wird für den Zugriff auf jede Amazon ECR-Registrierung verwendet, auf die Ihr IAM-Prinzipal Zugriff hat, und ist 12 Stunden lang gültig. Um ein Autorisierungstoken zu erhalten, müssen Sie mithilfe der GetAuthorizationTokenAPI-Operation ein Base64-kodiertes Autorisierungstoken abrufen, das den Benutzernamen AWS
und ein codiertes Passwort enthält. Der AWS CLI
get-login-password
Befehl vereinfacht dies, indem er das Autorisierungstoken abruft und dekodiert, das Sie dann an einen Befehl zur Authentifizierung weiterleiten können. docker
login
So authentifizieren Sie Docker bei einer privaten Amazon ECR-Registry mit get-login
Um Docker bei einer Amazon ECR-Registry mit zu authentifizieren get-login-password, führen Sie den Befehl aus. aws ecr get-login-password Verwenden Sie bei der Übergabe des Authentifizierungs-Tokens an den Befehl docker login den Wert
AWS
für den Benutzernamen und geben Sie die URI der Amazon-ECR-Registrierung an, bei der Sie sich authentifizieren möchten. Wenn Sie sich bei mehreren Registrierungen authentifizieren, müssen Sie den Befehl für jede Registrierung wiederholen.Wichtig
Bei einem Fehler installieren oder aktualisieren Sie auf die neueste AWS CLI-Version. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface im AWS Command Line Interface -Benutzerhandbuch.
-
get-login-password (AWS CLI)
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com -
Get-ECR () LoginCommandAWS Tools for Windows PowerShell
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com
-
HTTP-API-Authentifizierung verwenden
Amazon ECR unterstützt die Docker Registry HTTP API-H
Option for einen HTTP-Autorisierungsheader hinzufügen curl und das vom Befehl bereitgestellte Autorisierungstoken übergeben. get-authorization-token AWS CLI
So authentifizieren Sie sich mit der Amazon ECR HTTP API
-
Rufen Sie mit dem ein Autorisierungstoken ab AWS CLI und setzen Sie es auf eine Umgebungsvariable.
TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
-
Um sich bei der API zu authentifizieren, übergeben Sie die Variable
$TOKEN
der Option-H
des Befehls curl. Der folgende Befehl listet zum Beispiel die Image-Tags in einem Amazon ECR-Repository auf. Weitere Informationen finden Sie in der Docker Registry HTTP API-Referenzdokumentation. curl -i -H "Authorization: Basic $TOKEN" https://
aws_account_id
.dkr.ecr.region
.amazonaws.com/v2/amazonlinux
/tags/listDie Ausgabe sieht wie folgt aus:
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Thu, 04 Jan 2018 16:06:59 GMT Docker-Distribution-Api-Version: registry/2.0 Content-Length: 50 Connection: keep-alive {"name":"amazonlinux","tags":["2017.09","latest"]}