Authentifizierung bei privaten Registern in Amazon ECR - Amazon ECR

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 aws_account_id.dkr.ecr.region.amazonaws.com
    • Get-ECR () LoginCommandAWS Tools for Windows PowerShell

      (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

HTTP-API-Authentifizierung verwenden

Amazon ECR unterstützt die Docker Registry HTTP API. Da es sich bei Amazon ECR jedoch um eine private Registrierung handelt, müssen Sie bei jeder HTTP-Anforderung ein Autorisierungs-Token bereitstellen. Sie können mithilfe der -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
  1. 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')
  2. 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/list

    Die 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"]}