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 AwsAccountId
Konto-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.
-
Melden Sie sich bei der Lightsail-Konsole
an. -
Wechseln Sie auf der Lightsail-Startseite zur Registerkarte Storage (Speicher).
-
Wählen Sie den Namen des Container-Services aus, für den Sie den Zugriff auf ein privates Amazon-ECR-Repository konfigurieren möchten.
-
Wählen Sie die Registerkarte Images.
-
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.
-
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 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.
-
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.
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.
-
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. -
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:
-
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. -
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.
-
Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster.
-
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
} --regionAwsRegionCode
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 Sietrue
zum Aktivieren der Rolle an, oderfalse
, 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
} --regionus-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
} --regionus-east-1
-
-
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.
-
-
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
--regionAwsRegionCode
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
--regionus-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.
-
Ö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
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.
-
Ö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" ] } ] }IamRolePrincipalArn
Ersetzen Sie im Text durch den Amazon ECR Image Puller IAM-Rollenprinzipal-ARN Ihres Container-Service, den 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. -
Pfad/zu/
– Der Pfad zurecr-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 --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 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.
-
Ö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" ] } ] } -
IamRolePrincipalArn
Ersetzen 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:
-
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. -
Pfad/zu/
– Der Pfad zurecr-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 --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 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
-