Gewähren Sie Lightsail Container Services Zugriff auf private ECR Amazon-Repositorys - Amazon Lightsail

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.

Gewähren Sie Lightsail Container Services Zugriff auf private ECR Amazon-Repositorys

Amazon Elastic Container Registry (AmazonECR) ist ein AWS verwalteter Container-Image-Registry-Service, der private Repositorys mit ressourcenbasierten Berechtigungen mithilfe von AWS Identity and Access Management () unterstützt. IAM Sie können Ihren Amazon Lightsail-Containerservices Zugriff auf Ihre ECR privaten Amazon-Repositorys gewähren. AWS-Region Anschließend können Sie Images aus Ihrem privaten Repository für Ihre Container-Services bereitstellen.

Sie können den Zugriff auf Ihre Lightsail-Container-Services und Ihre ECR privaten Amazon-Repositorys mithilfe der Lightsail-Konsole oder der () verwalten. AWS Command Line Interface AWS CLI Wir empfehlen jedoch, die Lightsail-Konsole zu verwenden, da sie den Vorgang vereinfacht.

Weitere Informationen zu Container-Services finden Sie unter Container-Services. Weitere Informationen zu Amazon ECR finden Sie im ECRAmazon-Benutzerhandbuch.

Inhalt

Erforderliche Berechtigungen

Der Benutzer, der den Zugriff für Lightsail-Container-Services auf ECR private Amazon-Repositorys verwaltet, muss über eine der folgenden Berechtigungsrichtlinien verfügen. IAM Weitere Informationen finden Sie im Benutzerhandbuch unter Hinzufügen und Entfernen von IAM Identitätsberechtigungen.AWS Identity and Access Management

Zugriff auf jedes ECR private Amazon-Repository gewähren

Die folgende Berechtigungsrichtlinie gewährt einem Benutzer die Erlaubnis, den Zugriff auf jedes ECR private Amazon-Repository zu konfigurieren.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:*:AwsAccountId:repository/*" } ] }

Ersetzen Sie es in der Richtlinie AwsAccountId durch Ihre AWS Konto-ID-Nummer.

Zugriff auf ein bestimmtes ECR privates Amazon-Repository gewähren

Die folgende Berechtigungsrichtlinie gewährt einem Benutzer die Erlaubnis, den Zugriff auf ein bestimmtes ECR privates Amazon-Repository in einem bestimmten Bereich zu konfigurieren AWS-Region.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:AwsRegion:AwsAccountId:repository/RepositoryName" } ] }

Ersetzen Sie in der Richtlinie den folgenden Beispieltext mit Ihrem eigenen:

  • AwsRegion— Der AWS-Region Code (zum Beispielus-east-1) des privaten Repositorys. Ihr Lightsail-Container-Service muss sich in demselben Verzeichnis befinden AWS-Region wie die privaten Repositorys, auf die Sie zugreifen möchten.

  • AwsAccountId— Ihre AWS Konto-ID-Nummer.

  • RepositoryName— Der Name des privaten Repositorys, für das Sie den Zugriff verwalten möchten.

Es folgt das Beispiel für die Berechtigungsrichtlinie, die mit Beispielwerten gefüllt ist.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/my-private-repo" } ] }

Verwenden Sie die Lightsail-Konsole, um den Zugriff auf private Repositorys zu verwalten

Gehen Sie wie folgt vor, um mit der Lightsail-Konsole den Zugriff für einen Lightsail-Container-Service auf ein privates Amazon-Repository zu verwalten. ECR

  1. Melden Sie sich bei der Lightsail-Konsole an.

  2. Wählen Sie im linken Navigationsbereich Containers aus.

  3. Wählen Sie den Namen des Container-Service, für den Sie den Zugriff auf ein ECR privates Amazon-Repository konfigurieren möchten.

    Containerservice in der Lightsail-Konsole
  4. Wählen Sie die Registerkarte Images.

    Registerkarte „Bilder“ auf der Container-Service-Verwaltungsseite der Lightsail-Konsole
  5. Wählen Sie Repository hinzufügen, um Ihrem Container-Service Zugriff auf ein ECR privates Amazon-Repository zu gewähren.

    Anmerkung

    Sie können Entfernen wählen, um den Zugriff auf Ihren Container-Service aus einem zuvor hinzugefügten ECR privaten Amazon-Repository zu entfernen.

    Bereich ECR Private Amazon-Repositorys auf der Registerkarte „Bilder“
  6. Wählen Sie im angezeigten Dropdown-Menü das private Repository aus, auf das Sie zugreifen möchten, und dann Add (Hinzufügen).

    Drop-down-Auswahl für ECR private Amazon-Repositorien

    Lightsail benötigt einen Moment, um die ECR IAM Amazon-Image-Puller-Rolle für Ihren Container-Service zu aktivieren, die einen primären Amazon-Ressourcennamen () beinhaltet. ARN Lightsail fügt den IAM Rollenprinzipal dann automatisch ARN zur Berechtigungsrichtlinie des von Ihnen ausgewählten ECR privaten Amazon-Repositorys hinzu. Dies gewährt Ihrem Container-Service Zugriff auf das private Repository und seine Images. Schließen Sie das Browserfenster nicht, bis das Modal erscheint und anzeigt, dass der Vorgang abgeschlossen ist, wonach Sie Continue (Weiter) auswählen können.

    Modale Bestätigung, dass Berechtigungen zum ECR privaten Amazon-Repository hinzugefügt werden
  7. Wählen Sie Continue (Weiter), wenn die Aktivierung abgeschlossen ist.

    Nachdem das ausgewählte ECR private Amazon-Repository hinzugefügt wurde, wird es im Abschnitt ECRPrivate Amazon-Repositorys der Seite aufgeführt. Die Seite enthält Anweisungen zum Bereitstellen eines Images aus dem privaten Repository für Ihren Lightsail-Container-Service. Um ein Bild aus Ihrem privaten Repository zu verwenden, geben Sie bei der Erstellung Ihrer Container-Service-Bereitstellung das URI Format an, das auf der Seite als Image-Wert angezeigt wird. Ersetzen Sie in der URI von Ihnen angegebenen Datei das Beispiel {image tag} durch das Tag des Images, das Sie bereitstellen möchten. Weitere Informationen finden Sie unter Erstellen und Verwalten von Bereitstellungen für Container-Services.

    Nächste Schritte nach dem Hinzufügen eines ECR privaten Amazon-Repositorys

Verwenden Sie den AWS CLI , um den Zugriff auf private Repositorys zu verwalten

Die Verwaltung des Zugriffs für einen Lightsail-Container-Service auf ein ECR privates Amazon-Repository mithilfe von AWS Command Line Interface (AWS CLI) erfordert die folgenden Schritte:

Wichtig

Wir empfehlen, dass Sie die Lightsail-Konsole verwenden, um den Zugriff für einen Lightsail-Container-Service auf ein ECR privates Amazon-Repository zu verwalten, da dies den Vorgang vereinfacht. Weitere Informationen finden Sie weiter oben in diesem Handbuch unter Verwenden der Lightsail-Konsole zur Verwaltung des Zugriffs auf private Repositorys.

  1. ECRIAMAmazon-Image-Puller-Rolle aktivieren oder deaktivieren — Verwenden Sie den AWS CLI update-container-service Befehl für Lightsail, um die ECR Amazon-Image-Abruf-Rolle zu aktivieren oder zu deaktivieren. IAM Ein primaler Amazon-Ressourcenname (ARN) wird für die ECR IAM Amazon-Image-Puller-Rolle erstellt, wenn Sie sie aktivieren. Weitere Informationen finden Sie im Abschnitt Aktivieren oder Deaktivieren der ECR IAM Amazon-Image-Puller-Rolle dieses Handbuchs.

  2. Stellen Sie fest, ob Ihr ECR privates Amazon-Repository über eine Richtlinienerklärung verfügt — Nachdem Sie die ECR IAM Amazon-Image-Puller-Rolle aktiviert haben, müssen Sie feststellen, ob das ECR private Amazon-Repository, auf das Sie mit Ihrem Container-Service zugreifen möchten, über eine bestehende Richtlinienerklärung verfügt. Weitere Informationen finden Sie weiter unten in diesem Handbuch unter Feststellen, ob Ihr ECR privates Amazon-Repository über eine Richtlinienerklärung verfügt.

    Sie fügen den IAM Rollenprinzipal mit einer der folgenden Methoden ARN zu Ihrem Repository hinzu, je nachdem, ob Ihr Repository über eine bestehende Richtlinienerklärung verfügt:

    1. Eine Richtlinie zu einem privaten Repository hinzufügen, das keine Richtlinienerklärung hat — Verwenden Sie den AWS CLI set-repository-policy Befehl für Amazon, ECR um den Amazon ECR Image Puller-Rollenprinzipal ARN für Ihren Container-Service zu einem privaten Repository hinzuzufügen, das über eine bestehende Richtlinie verfügt. Weitere Informationen finden Sie weiter unten in diesem Leitfaden unter Hinzufügen einer Richtlinie zu einem privaten Repository ohne Richtlinienanweisung.

    2. Eine Richtlinie zu einem privaten Repository hinzufügen, das über eine Richtlinienerklärung verfügt — Verwenden Sie den AWS CLI set-repository-policy Befehl für Amazon, ECR um die ECR Amazon-Image-Puller-Rolle für Ihren Container-Service zu einem privaten Repository hinzuzufügen, für das es keine bestehende Richtlinie gibt. Weitere Informationen finden Sie weiter unten in diesem Leitfaden unter Hinzufügen einer Richtlinie zu einem privaten Repository mit Richtlinienanweisung.

Aktivieren oder deaktivieren Sie die ECR Amazon-Image-Puller-Rolle IAM

Gehen Sie wie folgt vor, um die ECR IAM Amazon-Image-Puller-Rolle für Ihren Lightsail-Containerservice zu aktivieren oder zu deaktivieren. Sie können die ECR IAM Amazon-Image-Puller-Rolle mit dem AWS CLI update-container-service Befehl für Lightsail aktivieren oder deaktivieren. Weitere Informationen finden Sie unter update-container-service in der Referenz zum AWS CLI -Befehl.

Anmerkung

Sie müssen Lightsail installieren AWS CLI und für Lightsail konfigurieren, bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter So konfigurieren, AWS CLI dass es mit Lightsail funktioniert.

  1. Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.

  2. Geben Sie den folgenden Befehl ein, um einen Container-Service zu aktualisieren und die ECR IAM Amazon-Image-Puller-Rolle zu aktivieren oder zu deaktivieren.

    aws lightsail update-container-service --service-name ContainerServiceName --private-registry-access ecrImagePullerRole={isActive=RoleActivationState} --region AwsRegionCode

    Ersetzen Sie im Befehl den folgenden Beispieltext mit Ihrem eigenen:

    • ContainerServiceName— Der Name des Container-Service, für den die ECR IAM Amazon-Image-Puller-Rolle aktiviert oder deaktiviert werden soll.

    • RoleActivationState— Der Aktivierungsstatus der ECR IAM Amazon-Image-Puller-Rolle. Geben Sie true zum Aktivieren der Rolle an, oder false, um sie zu deaktivieren.

    • AwsRegionCode— Der AWS-Region Code des Containerdienstes (zum Beispielus-east-1).

    Beispiele:

    • So aktivieren Sie die ECR IAM Amazon-Image-Puller-Rolle:

      aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=true} --region us-east-1
    • So deaktivieren Sie die ECR IAM Amazon-Image-Puller-Rolle:

      aws lightsail update-container-service --service-name my-container-service --private-registry-access ecrImagePullerRole={isActive=false} --region us-east-1
  3. Wenn Sie:

    • Die ECR Amazon-Image-Puller-Rolle aktiviert — Warten Sie mindestens 30 Sekunden, nachdem Sie die vorherige Antwort erhalten haben. Fahren Sie dann mit dem nächsten Schritt fort, um den Principal ARN der ECR IAM Amazon-Image-Puller-Rolle für Ihren Container-Service zu erhalten.

    • Die ECR Amazon-Image-Puller-Rolle deaktiviert — Wenn Sie zuvor den Amazon ECR Image IAM Puller-Rollenprinzipal ARN zur Berechtigungsrichtlinie Ihres ECR privaten Amazon-Repositorys hinzugefügt haben, sollten Sie diese Berechtigungsrichtlinie aus Ihrem Repository entfernen. Weitere Informationen finden Sie unter Löschen einer privaten Repository-Richtlinienerklärung im ECRAmazon-Benutzerhandbuch.

  4. Geben Sie den folgenden Befehl ein, um den Principal ARN der ECR IAM Amazon-Image-Puller-Rolle für Ihren Container-Service abzurufen.

    aws lightsail get-container-services --service-name ContainerServiceName --region AwsRegionCode

    Ersetzen Sie im Befehl den folgenden Beispieltext mit Ihrem eigenen:

    • ContainerServiceName— Der Name Ihres Containerdienstes, für den Sie den Amazon ECR Image IAM Puller-Rollenprinzipal ARN abrufen möchten.

    • AwsRegionCode— Der AWS-Region Code des Containerdienstes (zum Beispielus-east-1).

    Beispiel:

    aws lightsail get-container-services --service-name my-container-service --region us-east-1

    Suchen Sie ARN in der Antwort nach dem IAM Rollenprinzipal des ECR Image-Pullers. Wenn eine Rolle aufgeführt ist, kopieren oder notieren Sie sie. Sie benötigen sie für den nächsten Abschnitt dieses Leitfadens. Als Nächstes müssen Sie feststellen, ob es eine bestehende Richtlinienerklärung für das ECR private Amazon-Repository gibt, auf das Sie mit Ihrem Container-Service zugreifen möchten. Fahren Sie mit dem Abschnitt Ermitteln Sie fest, ob Ihr ECR privates Amazon-Repository über eine Grundsatzerklärung verfügt in diesem Handbuch weiter.

Stellen Sie fest, ob Ihr ECR privates Amazon-Repository über eine Grundsatzerklärung verfügt

Verwenden Sie das folgende Verfahren, um festzustellen, ob Ihr ECR privates Amazon-Repository über eine Richtlinienerklärung verfügt. Sie können den AWS CLI get-repository-policy Befehl für Amazon verwendenECR. Weitere Informationen finden Sie unter update-container-service in der Referenz zum AWS CLI -Befehl.

Anmerkung

Sie müssen das installieren AWS CLI und für Amazon konfigurieren, ECR bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter Einrichtung bei Amazon ECR im ECRAmazon-Benutzerhandbuch.

  1. Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.

  2. Geben Sie den folgenden Befehl ein, um die Richtlinienanweisung für ein bestimmtes privates Repository abzurufen.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    Ersetzen Sie im Befehl den folgenden Beispieltext mit Ihrem eigenen:

    • RepositoryName— Der Name des privaten Repositorys, für das Sie den Zugriff für einen Lightsail-Container-Service konfigurieren möchten.

    • AwsRegionCode— Der AWS-Region Code des privaten Repositorys (zum Beispielus-east-1).

    Beispiel:

    aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1

    Sie sollten eine der folgenden Antworten sehen:

Hinzufügen einer Richtlinie zu einem privaten Repository, das keine Richtlinienanweisung hat

Gehen Sie wie folgt vor, um eine Richtlinie zu einem ECR privaten Amazon-Repository hinzuzufügen, für das es keine Richtlinienerklärung gibt. Die Richtlinie, die Sie hinzufügen, muss den Amazon ECR Image Puller IAM Rollenprinzipal ARN für Ihren Lightsail-Container-Service beinhalten. Dies gewährt Ihrem Container-Service Zugriff auf die Bereitstellung von Images aus dem privaten Repository.

Wichtig

Lightsail fügt Ihren ECR privaten Amazon-Repositorys automatisch die ECR Amazon-Image-Puller-Rolle hinzu, wenn Sie die Lightsail-Konsole zur Konfiguration des Zugriffs verwenden. In diesem Fall müssen Sie die ECR Amazon-Image-Puller-Rolle nicht manuell zu Ihren privaten Repositorys hinzufügen, indem Sie das Verfahren in diesem Abschnitt verwenden. Weitere Informationen finden Sie weiter oben in diesem Handbuch unter Verwenden der Lightsail-Konsole zur Verwaltung des Zugriffs auf private Repositorys.

Sie können mit der AWS CLI eine Richtlinie zu einem privaten Repository hinzufügen. Dazu erstellen Sie eine JSON Datei, die die Richtlinie enthält, und verweisen dann mit dem set-repository-policy Befehl für Amazon ECR auf diese Datei. Weitere Informationen finden Sie unter set-repository-policy in der Referenz zum AWS CLI -Befehl.

Anmerkung

Sie müssen das installieren AWS CLI und für Amazon konfigurieren, ECR bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter Einrichtung bei Amazon ECR im ECRAmazon-Benutzerhandbuch.

  1. Öffnen Sie einen Texteditor und fügen Sie die folgende Richtlinienanweisung in eine neue Textdatei ein.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "IamRolePrincipalArn" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

    Ersetzen Sie den Text durch die IAM Rolle Principal ARN Ihres Containerdienstes IamRolePrincipalArn bei Amazon ECR Image Puller, die Sie weiter oben in diesem Handbuch erhalten haben.

  2. Speichern Sie die Datei als ecr-policy.json an einem zugänglichen Ort auf Ihrem Computer (z. B. C:\Temp\ecr-policy.json unter Windows oder /tmp/ecr-policy.json unter macOS oder Linux).

  3. Notieren Sie sich den Dateipfadspeicherort der ecr-policy.json-Datei die erstellt wurde. Sie werden sie später unten in diesem Verfahren in einem Befehl angeben.

  4. Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.

  5. Geben Sie den folgenden Befehl ein, um die Richtlinienanweisung für das private Repository festzulegen, auf das Sie mit Ihrem Container-Service zugreifen möchten.

    aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode

    Ersetzen Sie im Befehl den folgenden Beispieltext mit Ihrem eigenen:

    • RepositoryName— Der Name des privaten Repositorys, für das Sie die Richtlinie hinzufügen möchten.

    • path/to/— Der Pfad zu der ecr-policy.json Datei auf Ihrem Computer, die Sie weiter oben in diesem Handbuch erstellt haben.

    • AwsRegionCode— Der AWS-Region Code des privaten Repositorys (zum Beispielus-east-1).

    Beispiele:

    • Unter Windows:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
    • Unter macOS oder Linux:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    Ihr Container-Service kann jetzt auf Ihr privates Repository und seine Images zugreifen. Um ein Bild aus Ihrem Repository zu verwenden, geben Sie Folgendes URI als Image-Wert für Ihre Container-Service-Bereitstellung an. Ersetzen Sie in der URI das Beispiel tag durch das Tag des Images, das Sie bereitstellen möchten. Weitere Informationen finden Sie unter Erstellen und Verwalten von Bereitstellungen für Container-Services.

    AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag

    Ersetzen Sie in der URI den folgenden Beispieltext durch Ihren eigenen:

    • AwsAccountId— Ihre AWS Konto-ID-Nummer.

    • AwsRegionCode— Der AWS-Region Code des privaten Repositorys (zum Beispielus-east-1).

    • RepositoryName— Der Name des privaten Repositorys, aus dem ein Container-Image bereitgestellt werden soll.

    • ImageTag— Das Tag des Container-Images aus dem privaten Repository, das auf Ihrem Container-Service bereitgestellt werden soll.

    Beispiel:

    111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage

Hinzufügen einer Richtlinie zu einem privaten Repository, das über eine Richtlinienanweisung verfügt

Gehen Sie wie folgt vor, um eine Richtlinie zu einem ECR privaten Amazon-Repository hinzuzufügen, das über eine Richtlinienerklärung verfügt. Die Richtlinie, die Sie hinzufügen, muss die bestehende Richtlinie und eine neue Richtlinie enthalten, die den Amazon ECR Image Puller IAM Rollenprinzipal ARN für Ihren Lightsail-Container-Service enthält. Dies behält die vorhandenen Berechtigungen für Ihr privates Repository bei und gewährt Ihrem Container-Service Zugriff auf die Bereitstellung von Images aus dem privaten Repository.

Wichtig

Lightsail fügt Ihren ECR privaten Amazon-Repositorys automatisch die ECR Amazon-Image-Puller-Rolle hinzu, wenn Sie die Lightsail-Konsole zur Konfiguration des Zugriffs verwenden. In diesem Fall müssen Sie die ECR Amazon-Image-Puller-Rolle nicht manuell zu Ihren privaten Repositorys hinzufügen, indem Sie das Verfahren in diesem Abschnitt verwenden. Weitere Informationen finden Sie weiter oben in diesem Handbuch unter Verwenden der Lightsail-Konsole zur Verwaltung des Zugriffs auf private Repositorys.

Sie können mit der AWS CLI eine Richtlinie zu einem privaten Repository hinzufügen. Dazu erstellen Sie eine JSON Datei, die die bestehende Richtlinie und die neue Richtlinie enthält. Verweisen Sie dann mit dem set-repository-policy Befehl für Amazon auf diese DateiECR. Weitere Informationen finden Sie unter set-repository-policy in der Referenz zum AWS CLI -Befehl.

Anmerkung

Sie müssen das installieren AWS CLI und für Amazon konfigurieren, ECR bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter Einrichtung bei Amazon ECR im ECRAmazon-Benutzerhandbuch.

  1. Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.

  2. Geben Sie den folgenden Befehl ein, um die Richtlinienanweisung für ein bestimmtes privates Repository abzurufen.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    Ersetzen Sie im Befehl den folgenden Beispieltext mit Ihrem eigenen:

    • RepositoryName— Der Name des privaten Repositorys, für das Sie den Zugriff für einen Lightsail-Container-Service konfigurieren möchten.

    • AwsRegionCode— Der AWS-Region Code des privaten Repositorys (zum Beispielus-east-1).

    Beispiel:

    aws ecr get-repository-policy --repository-name my-private-repo --region us-east-1
  3. Kopieren Sie in der Antwort die vorhandene Richtlinie und fahren Sie mit dem nächsten Schritt fort.

    Sie sollten nur den Inhalt des policyText kopieren, der zwischen den doppelten Anführungszeichen erscheint, wie im folgenden Beispiel hervorgehoben.

    Antwort auf den get-repository-policy Befehl für ein privates Repository, für das es keine Grundsatzerklärung gibt
  4. Öffnen Sie einen Texteditor und fügen Sie die vorhandene Richtlinie aus Ihrem privaten Repository ein, das Sie im vorherigen Schritt kopiert haben.

    Das Ergebnis sollte wie folgt aussehen:

    Beispiel für eine JSON Richtlinienanweisungsdatei
  5. Ersetzen Sie im eingefügten Text \n durch Zeilenumbrüche und löschen Sie das verbleibende \.

    Das Ergebnis sollte wie folgt aussehen:

    Beispiel für eine bearbeitete JSON Richtlinienerklärungsdatei
  6. Fügen Sie die folgende Richtlinienanweisung am Ende der Text-Datei ein.

    , { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "IamRolePrincipalArn" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
  7. Ersetzen Sie den Text durch die IAM Rolle Principal ARN Ihres Containerdienstes IamRolePrincipalArn bei Amazon ECR Image Puller, die Sie weiter oben in diesem Handbuch erhalten haben.

    Das Ergebnis sollte wie folgt aussehen:

    Beispiel für eine vollständige Richtlinienerklärungsdatei JSON
  8. Speichern Sie die Datei als ecr-policy.json an einem zugänglichen Ort auf Ihrem Computer (z. B. C:\Temp\ecr-policy.json unter Windows oder /tmp/ecr-policy.json unter macOS oder Linux).

  9. Notieren Sie sich den Dateipfadspeicherort der ecr-policy.json-Datei. Sie werden sie später unten in diesem Verfahren in einem Befehl angeben.

  10. Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.

  11. Geben Sie den folgenden Befehl ein, um die Richtlinienanweisung für das private Repository festzulegen, auf das Sie mit Ihrem Container-Service zugreifen möchten.

    aws ecr set-repository-policy --repository-name RepositoryName --policy-text file://path/to/ecr-policy.json --region AwsRegionCode

    Ersetzen Sie im Befehl den folgenden Beispieltext mit Ihrem eigenen:

    • RepositoryName— Der Name des privaten Repositorys, für das Sie die Richtlinie hinzufügen möchten.

    • path/to/— Der Pfad zu der ecr-policy.json Datei auf Ihrem Computer, die Sie weiter oben in diesem Handbuch erstellt haben.

    • AwsRegionCode— Der AWS-Region Code des privaten Repositorys (zum Beispielus-east-1).

    Beispiele:

    • Unter Windows:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file://C:\Temp\ecr-policy.json --region us-east-1
    • Unter macOS oder Linux:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    Sie sollten eine Antwort ähnlich dem folgenden Beispiel erhalten.

    Antwort auf den set-repository-policy Befehl

    Wenn Sie den get-repository-policy-Befehl erneut durchführen, sollten Sie die neue zusätzliche Richtlinienerklärung in Ihrem privaten Repository sehen. Ihr Container-Service kann jetzt auf Ihr privates Repository und seine Images zugreifen. Um ein Bild aus Ihrem Repository zu verwenden, geben Sie Folgendes URI als Image-Wert für Ihre Container-Service-Bereitstellung an. Ersetzen Sie in der URI das Beispiel tag durch das Tag des Images, das Sie bereitstellen möchten. Weitere Informationen finden Sie unter Erstellen und Verwalten von Bereitstellungen für Container-Services.

    AwsAccountId.dkr.ecr.AwsRegionCode.amazonaws.com/RepositoryName:ImageTag

    Ersetzen Sie in der URI den folgenden Beispieltext durch Ihren eigenen:

    • AwsAccountId— Ihre AWS Konto-ID-Nummer.

    • AwsRegionCode— Der AWS-Region Code des privaten Repositorys (zum Beispielus-east-1).

    • RepositoryName— Der Name des privaten Repositorys, aus dem ein Container-Image bereitgestellt werden soll.

    • ImageTag— Das Tag des Container-Images aus dem privaten Repository, das auf Ihrem Container-Service bereitgestellt werden soll.

    Beispiel:

    111122223333.dkr.ecr.us-east-1.amazonaws.com/my-private-repo:myappimage