Gewähren Sie Lightsail Container Services Zugriff auf private Amazon ECR-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 Amazon ECR-Repositorys

Amazon Elastic Container Registry (Amazon ECR) ist ein AWS verwalteter Container-Image-Registry-Service, der private Repositorys mit ressourcenbasierten Berechtigungen mithilfe von AWS Identity and Access Management (IAM) unterstützt. Sie können Ihren Amazon Lightsail-Container-Services Zugriff auf Ihre privaten Amazon ECR-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 privaten Amazon ECR-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 zur Amazon ECR finden Sie unter Sicherheit im Amazon-ECR-Benutzerhandbuch.

Inhalt

Erforderliche Berechtigungen

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

Gewähren von Zugriff auf jegliche private Amazon-ECR-Repositories

Die folgende Berechtigungsrichtlinie gewährt einem Benutzer die Berechtigung, den Zugriff auf ein beliebiges privates Amazon-ECR-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 diese in der Richtlinie durch Ihre AwsAccountIdKonto-ID-Nummer. AWS

Gewähren Sie Zugriff auf ein bestimmtes privates Amazon-ECR-Repository

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

{ "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 ECR-Repository zu verwalten.

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

  2. Wechseln Sie auf der Lightsail-Startseite zur Registerkarte Storage (Speicher).

  3. Wählen Sie den Namen des Container-Services aus, für den Sie den Zugriff auf ein privates Amazon-ECR-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 aus, um Ihrem Container-Service Zugriff auf ein privates Amazon-ECR-Repository zu erteilen.

    Anmerkung

    Sie können Entfernen auswählen, um den Zugriff für Ihren Container-Service auf ein zuvor hinzugefügtes privates Amazon-ECR-Repository zu entfernen.

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

    Dropdown-Auswahl an privaten Amazon-ECR-Repositorys

    Lightsail benötigt einen Moment, um die IAM-Rolle Amazon ECR Image Puller für Ihren Container-Service zu aktivieren, die einen primären Amazon Resource Name (ARN) beinhaltet. Lightsail fügt dann automatisch den IAM-Rollenprinzipal-ARN zur Berechtigungsrichtlinie des von Ihnen ausgewählten privaten Amazon ECR-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.

    Modal bestätigt, dass dem privaten Amazon-ECR-Repository Berechtigungen hinzugefügt werden
  7. Wählen Sie Continue (Weiter), wenn die Aktivierung abgeschlossen ist.

    Nachdem es ausgewählte private Amazon-ECR-Repository hinzugefügt wurde, wird es im Abschnitt Private Amazon-ECR-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 Image aus Ihrem privaten Repository zu verwenden, geben Sie das URI-Format an, das auf der Seite beim Erstellen Ihrer Container-Service-Bereitstellung als der Image-Wert angezeigt wird. Ersetzen Sie im URI das Beispiel-{image tag} durch das Tag des Image, 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 privaten Amazon-ECR-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 privates Amazon ECR-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 privates Amazon ECR-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. Aktivieren oder deaktivieren Sie die IAM-Rolle Amazon ECR Image Puller — Verwenden Sie den AWS CLI update-container-service Befehl für Lightsail, um die IAM-Rolle Amazon ECR Image Puller zu aktivieren oder zu deaktivieren. Ein Prinzipal-Amazon-Ressourcenname (ARN) wird für die IAM-Rolle des Amazon-ECR-Image-Pullers erstellt, wenn Sie ihn aktivieren. Weitere Informationen finden Sie im Abschnitt Aktivieren oder Deaktivieren der IAM-Rolle des Amazon-ECR-Image-Pullers in diesem Leitfaden.

  2. Feststellen, ob Ihr privates Amazon-ECR-Repository über eine Richtlinienerklärung verfügt – Nachdem Sie die IAM-Rolle des Amazon-ECR-Image-Pullers aktiviert haben, müssen Sie bestimmen, ob das private Amazon-ECR-Repository, auf das Sie mit Ihrem Container-Service zugreifen möchten, über eine vorhandene Richtlinienerklärung verfügt. Weitere Informationen finden Sie weiter unten in diesem Leitfaden unter Bestimmen, ob Ihr privates Amazon-ECR-Repository über eine Richtlinienerklärung verfügt.

    Sie fügen den Prinzipal-ARN der IAM-Rolle mit einer der folgenden Methoden zu Ihrem Repository hinzu, je nachdem, ob Ihr Repository über eine vorhandene Richtlinienanweisung 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 Role Principal 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 Amazon ECR-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 der IAM-Rolle des Amazon-ECR-Image-Pullers

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

Anmerkung

Sie müssen Lightsail installieren AWS CLI und 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 IAM-Rolle des Amazon-ECR-Image-Pullers 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 IAM-Rolle Amazon ECR Image Puller aktiviert oder deaktiviert werden soll.

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

    • AwsRegionCode— Der AWS-Region Code des Containerdienstes (z. B.). us-east-1

    Beispiele:

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

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

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

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

    • Die Amazon-ECR-Image-Puller-Rolle wurde deaktiviert – Wenn Sie zuvor den Prinzipal-ARN der IAM-Rolle des Amazon-ECR-Image-Pullers zur Berechtigungsrichtlinie Ihres privaten Amazon-ECR-Repositorys hinzugefügt haben, sollten Sie diese Berechtigungsrichtlinie aus Ihrem Repository entfernen. Weitere Informationen finden Sie unter Richtlinienerklärung für ein privates Repository löschen im Amazon-ECR-Benutzerhandbuch.

  4. Geben Sie den folgenden Befehl ein, um den Prinzipal-ARN der IAM-Rolle des Amazon-ECR-Image-Pullers 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 Container-Service, für den Sie den Amazon ECR Image Puller IAM-Rollenprinzipal-ARN abrufen möchten.

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

    Beispiel:

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

    Suchen Sie in der Antwort nach dem Prinzipal-ARN der IAM-Rolle 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 eine Richtlinienerklärung auf dem privaten Amazon-ECR-Repository vorhanden ist, auf das Sie mit Ihrem Container-Service zugreifen möchten. Fahren Sie mit dem Abschnitt Feststellen, ob Ihr privates Amazon-ECR-Repository über eine Richtlinienerklärung verfügt in diesem Leitfaden fort.

Ermitteln, ob Ihr privates Amazon-ECR-Repository eine Richtlinienerklärung hat

Führen Sie die folgenden Schritte aus, um festzustellen, ob Ihr privates Amazon-ECR-Repository über eine Richtlinienerklärung verfügt. Sie können den AWS CLI get-repository-policy Befehl für Amazon ECR verwenden. Weitere Informationen finden Sie update-container-servicein der AWS CLI Befehlsreferenz.

Anmerkung

Sie müssen das installieren AWS CLI und für Amazon ECR konfigurieren, bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter Einrichten von Amazon ECR im Amazon-ECR-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

Führen Sie das folgende Verfahren aus, um eine Richtlinie zu einem privaten Amazon-ECR-Repository hinzuzufügen, das keine Richtlinienerklärung hat. Die Richtlinie, die Sie hinzufügen, muss den Amazon ECR Image Puller IAM-Rollenprinzipal-ARN Ihres Lightsail-Container-Service enthalten. Dies gewährt Ihrem Container-Service Zugriff auf die Bereitstellung von Images aus dem privaten Repository.

Wichtig

Lightsail fügt automatisch die Amazon ECR-Image-Puller-Rolle zu Ihren privaten Amazon ECR-Repositorys hinzu, wenn Sie die Lightsail-Konsole zur Konfiguration des Zugriffs verwenden. In diesem Fall müssen Sie die Amazon-ECR-Image-Puller-Rolle mithilfe des Verfahrens in diesem Abschnitt nicht manuell zu Ihren privaten Repositories hinzufügen. 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 set-repository-policyin der AWS CLI Befehlsreferenz.

Anmerkung

Sie müssen das installieren AWS CLI und für Amazon ECR konfigurieren, bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter Einrichten von Amazon ECR im Amazon-ECR-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" ] } ] }

    IamRolePrincipalArnErsetzen Sie im Text durch den Amazon ECR Image Puller IAM-Rollenprinzipal-ARN Ihres Container-Service, den 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.

    • Pfad/zu/ – Der Pfad zur ecr-policy.json-Datei auf Ihrem Computer, die Sie zuvor in diesem Leitfaden 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 Image aus Ihrem Repository zu verwenden, geben Sie den folgenden URI als Image-Wert für Ihre Container-Service-Bereitstellung an. Ersetzen Sie im URI das Beispiel-Tag durch das Tag des Image, 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 im URI den folgenden Beispieltext mit Ihrem 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

Vervollständigen Sie das folgende Verfahren, um eine Richtlinie einem privaten Amazon-ECR-Repository hinzuzufügen, das eine Richtlinienerklärung hat. Die Richtlinie, die Sie hinzufügen, muss die bestehende Richtlinie und eine neue Richtlinie enthalten, die den Amazon ECR Image Puller IAM-Rollenprinzipal-ARN Ihres 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 automatisch die Amazon ECR-Image-Puller-Rolle zu Ihren privaten Amazon ECR-Repositorys hinzu, wenn Sie die Lightsail-Konsole zur Konfiguration des Zugriffs verwenden. In diesem Fall müssen Sie die Amazon-ECR-Image-Puller-Rolle mithilfe des Verfahrens in diesem Abschnitt nicht manuell zu Ihren privaten Repositories hinzufügen. 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 vorhandene Richtlinie und die neue Richtlinie enthält. Verweisen Sie dann auf diese Datei mit dem set-repository-policy-Befehl für Amazon ECR. Weitere Informationen finden Sie set-repository-policyin der AWS CLI Befehlsreferenz.

Anmerkung

Sie müssen das installieren AWS CLI und für Amazon ECR konfigurieren, bevor Sie mit diesem Verfahren fortfahren können. Weitere Informationen finden Sie unter Einrichten von Amazon ECR im Amazon-ECR-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, das keine Richtlinienerklärung hat
  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 Richtlinienanweisung JSON-Datei
  5. Ersetzen Sie im eingefügten Text \n durch Zeilenumbrüche und löschen Sie das verbleibende \.

    Das Ergebnis sollte wie folgt aussehen:

    Beispiel einer bearbeiteten Richtlinienanweisung JSON-Datei
  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. IamRolePrincipalArnErsetzen Sie im Text durch den Amazon ECR Image Puller IAM-Rollenprinzipal-ARN Ihres Container-Service, den Sie weiter oben in diesem Handbuch erhalten haben.

    Das Ergebnis sollte wie folgt aussehen:

    Beispiel für vollständige Richtlinienanweisung JSON-Datei
  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.

    • Pfad/zu/ – Der Pfad zur ecr-policy.json-Datei auf Ihrem Computer, die Sie zuvor in diesem Leitfaden 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 Image aus Ihrem Repository zu verwenden, geben Sie den folgenden URI als Image-Wert für Ihre Container-Service-Bereitstellung an. Ersetzen Sie im URI das Beispiel-Tag durch das Tag des Image, 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 im URI den folgenden Beispieltext mit Ihrem 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