Beispiele für Richtlinien für private Repositorien in Amazon ECR - Amazon ECR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiele für Richtlinien für private Repositorien in Amazon ECR

Wichtig

Die Beispiele für Repository-Richtlinien auf dieser Seite sollen auf private Repositorys von Amazon ECR angewendet werden. Sie funktionieren nicht richtig, wenn sie direkt mit einem IAM-Prinzipal verwendet werden, es sei denn, sie werden dahingehend geändert, dass das Amazon-ECR-Repository als Ressource angegeben wird. Weitere Hinweise zur Einrichtung von Repository-Richtlinien finden Sie unter Festlegung einer Richtlinienerklärung für private Repositorien in Amazon ECR.

Amazon ECR Repository-Richtlinien sind eine Untergruppe von IAM-Richtlinien, die für die Kontrolle des Zugriffs auf einzelne Amazon ECR-Repositorys ausgelegt sind und speziell dafür verwendet werden. IAM-Richtlinien werden im Allgemeinen verwendet, um Berechtigungen für den gesamten Amazon ECR-Service anzuwenden, können aber auch verwendet werden, um den Zugriff auf bestimmte Ressourcen zu steuern. Weitere Informationen finden Sie unter Repository-Richtlinien im Vergleich zu IAM-Richtlinien.

Die folgenden Beispiele für Repository-Richtlinien zeigen Berechtigungsanweisungen, die Sie verwenden können, um den Zugriff auf Ihre privaten Repositorys von Amazon ECR zu kontrollieren.

Wichtig

Amazon ECR setzt voraus, dass Benutzer über eine IAM-Richtlinie die Erlaubnis haben, die ecr:GetAuthorizationToken-API aufzurufen, bevor sie sich bei einer Registrierung authentifizieren und Images aus einem Amazon ECR-Repository pushen oder pullen können. Amazon ECR bietet mehrere verwaltete IAM-Richtlinien zur Kontrolle des Benutzerzugriffs auf verschiedenen Ebenen; weitere Informationen finden Sie unter Beispiele für identitätsbasierte Amazon Elastic Container Service-Richtlinien.

Beispiel: Eine oder mehrere -Benutzer zulassen

Die folgende Repository-Richtlinie erlaubt es einem oder mehreren -Benutzern, Images in ein Repository zu pushen und von dort zu pullen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/push-pull-user-1", "arn:aws:iam::account-id:user/push-pull-user-2" ] }, "Action": [ "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ] } ] }

Beispiel: Ein anderes Konto erlauben

Die folgende Repository-Richtlinie gewährt einem angegebenen Konto die Berechtigung zur Push-Übertragung von Images.

Wichtig

Für das Konto, dem Sie Berechtigungen erteilen, muss die Region, in der Sie die Repository-Richtlinie erstellen, aktiviert sein, sonst tritt ein Fehler auf.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountPush", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ] } ] }

Die folgende Repository-Richtlinie ermöglicht es einigen Benutzern, Images abzurufen (pull-user-1 und pull-user-2), während diese einem anderen Benutzer (admin-user) vollen Zugriff gewährt.

Anmerkung

Bei komplizierteren Repository-Richtlinien, die derzeit nicht in der unterstützt werden AWS Management Console, können Sie die Richtlinie mit dem set-repository-policy AWS CLI Befehl anwenden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/pull-user-1", "arn:aws:iam::account-id:user/pull-user-2" ] }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] }, { "Sid": "AllowAll", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/admin-user" }, "Action": [ "ecr:*" ] } ] }

Beispiel: Allen verweigern

Die folgende Repository-Richtlinie verweigert allen Benutzern in allen Konten die Möglichkeit, Images zu pullen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPull", "Effect": "Deny", "Principal": "*", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

Beispiel: Beschränkung des Zugriffs auf bestimmte IP-Adressen

Im folgenden Beispiel wird jedem Benutzer die Berechtigung zum Ausführen von Amazon-ECR-Vorgängen verweigert, wenn es aus einem bestimmten Adressbereich auf ein Repository angewendet wird.

Die Bedingung in dieser Anweisung gibt den 54.240.143.*-Bereich der zulässigen IP-Adressen des Internetprotokoll-4-Adressen (IPv4) an.

Der Condition Block verwendet die NotIpAddress Bedingungen und den aws:SourceIp Bedingungsschlüssel, bei dem es sich um einen AWS Bedingungsschlüssel handelt. Weitere Informationen über diese Bedingungsschlüssel finden Sie unter Globale AWS -Bedingungskontextschlüssel. Die aws:sourceIp IPv4-Werte verwenden die CIDR-Standardnotation. Weitere Informationen finden Sie unter IP-Adressen-Bedingungsoperatoren im IAM-Benutzerhandbuch.

{ "Version": "2012-10-17", "Id": "ECRPolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Deny", "Principal": "*", "Action": "ecr:*", "Condition": { "NotIpAddress": { "aws:SourceIp": "54.240.143.0/24" } } } ] }

Beispiel: Einen AWS Dienst zulassen

Die folgende Repository-Richtlinie ermöglicht den AWS CodeBuild Zugriff auf die Amazon ECR-API-Aktionen, die für die Integration mit diesem Service erforderlich sind. Wenn Sie das folgende Beispiel verwenden, sollten Sie die Bedingungsschlüssel aws:SourceArn und aws:SourceAccount verwenden, um zu ermitteln, welche Ressourcen diese Berechtigungen übernehmen können. Weitere Informationen finden Sie im Amazon ECR-Beispiel für CodeBuild im AWS CodeBuild Benutzerhandbuch.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"CodeBuildAccess", "Effect":"Allow", "Principal":{ "Service":"codebuild.amazonaws.com" }, "Action":[ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:codebuild:region:123456789012:project/project-name" }, "StringEquals":{ "aws:SourceAccount":"123456789012" } } } ] }