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
-
Melden Sie sich bei der Lightsail-Konsole
an. -
Wählen Sie im linken Navigationsbereich Containers aus.
-
Wählen Sie den Namen des Container-Service, für den Sie den Zugriff auf ein ECR privates Amazon-Repository konfigurieren möchten.
-
Wählen Sie die Registerkarte Images.
-
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.
-
Wählen Sie im angezeigten Dropdown-Menü das private Repository aus, auf das Sie zugreifen möchten, und dann Add (Hinzufügen).
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.
-
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.
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.
-
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. -
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:
-
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. -
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.
-
Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.
-
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
} --regionAwsRegionCode
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 Sietrue
zum Aktivieren der Rolle an, oderfalse
, 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
} --regionus-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
} --regionus-east-1
-
-
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.
-
-
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
--regionAwsRegionCode
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
--regionus-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.
-
Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.
-
Geben Sie den folgenden Befehl ein, um die Richtlinienanweisung für ein bestimmtes privates Repository abzurufen.
aws ecr get-repository-policy --repository-name
RepositoryName
--regionAwsRegionCode
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
--regionus-east-1
Sie sollten eine der folgenden Antworten sehen:
-
RepositoryPolicyNotFoundException— Ihr privates Repository hat keine Grundsatzerklärung. Wenn Ihr Repository keine Richtlinienanweisung hat, befolgen Sie die Schritte im Abschnitt Hinzufügen einer Richtlinie zu einem privaten Repository ohne Richtlinienanweisung weiter unten in diesem Leitfaden.
-
Eine Repository-Richtlinie wurde gefunden – Ihr privates Repository verfügt über eine Richtlinienerklärung und wird in der Antwort Ihrer Anfrage angezeigt. Wenn Ihr Repository über eine Richtlinienanweisung verfügt, kopieren Sie die vorhandene Richtlinie und befolgen Sie dann die Schritte im Abschnitt Hinzufügen einer Richtlinie zu einem privaten Repository mit einer Richtlinienanweisung weiter unten in diesem Leitfaden.
-
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.
-
Ö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. -
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). -
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. -
Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.
-
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 --regionAwsRegionCode
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 derecr-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 --regionus-east-1
-
Unter macOS oder Linux:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-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.
-
Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.
-
Geben Sie den folgenden Befehl ein, um die Richtlinienanweisung für ein bestimmtes privates Repository abzurufen.
aws ecr get-repository-policy --repository-name
RepositoryName
--regionAwsRegionCode
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
--regionus-east-1
-
-
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. -
Ö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:
-
Ersetzen Sie im eingefügten Text
\n
durch Zeilenumbrüche und löschen Sie das verbleibende\
.Das Ergebnis sollte wie folgt aussehen:
-
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" ] } ] } -
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:
-
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). -
Notieren Sie sich den Dateipfadspeicherort der
ecr-policy.json
-Datei. Sie werden sie später unten in diesem Verfahren in einem Befehl angeben. -
Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.
-
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 --regionAwsRegionCode
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 derecr-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 --regionus-east-1
-
Unter macOS oder Linux:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-east-1
Sie sollten eine Antwort ähnlich dem folgenden Beispiel erhalten.
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 Beispieltag
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
-