Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples de politiques relatives aux référentiels privés dans Amazon ECR
Important
Les exemples de politique de référentiel présentés sur cette page sont destinés à être appliqués aux référentiels privés Amazon ECR. Ils ne fonctionneront pas correctement s'ils sont utilisés directement avec un principal IAM, sauf s'ils sont modifiés pour spécifier le référentiel Amazon ECR comme ressource. Pour plus d'informations sur les paramètres des politiques de référentiel, consultez Définition d'une déclaration de politique de dépôt privé dans Amazon ECR.
Les politiques de référentiel Amazon ECR constituent un sous-ensemble de politiques IAM spécifiquement limitées et utilisées pour contrôler l'accès aux référentiels Amazon ECR individuels. Les politiques IAM sont généralement utilisées pour appliquer des autorisations pour l'ensemble du service Amazon ECR, mais elles peuvent également être utilisées pour contrôler l'accès à des ressources spécifiques. Pour plus d’informations, consultez Politiques de référentiel vs politiques IAM.
Les exemples de politique de référentiel suivants illustrent des déclarations d'autorisation que vous pouvez utiliser pour contrôler l'accès à vos référentiels privés Amazon ECR.
Important
Amazon ECR exige que les utilisateurs aient l'autorisation d'effectuer des appels d'API ecr:GetAuthorizationToken
via une politique IAM avant qu'ils puissent s'authentifier auprès d'un référentiel et transmettre ou extraire des images à partir d'un référentiel Amazon ECR. Amazon ECR fournit plusieurs politiques IAM gérées afin de contrôler l'accès utilisateur à différents niveaux. Pour en savoir plus, consultez Exemples de politiques basées sur l'identité du registre de conteneur Amazon Elastic.
Exemple : Autoriser un ou plusieurs utilisateurs
La politique de référentiel suivante autorise un ou plusieurs utilisateurs à transmettre et extraire des images vers et depuis un référentiel.
{ "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" ] } ] }
Exemple : autoriser un autre compte
La politique de référentiel suivante autorise un compte spécifique à transmettre des images.
Important
Le compte auquel vous octroyez des autorisations doit avoir activé la région dans laquelle vous créez la politique de référentiel, sinon une erreur se produira.
{ "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" ] } ] }
La politique de référentiel suivante permet aux utilisateurs d'extraire des images (pull-user-1
et pull-user-2
) tout en fournissant un accès total à un autre utilisateur (admin-user
).
Note
Pour les politiques de référentiel plus complexes qui ne sont actuellement pas prises en charge dans le AWS Management Console, vous pouvez appliquer la politique à l'aide de la set-repository-policy AWS CLI commande.
{ "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:*" ] } ] }
Exemple : Refuser tout
La politique de référentiel suivante permet à tous les utilisateurs de tous les comptes d'extraire des images.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPull", "Effect": "Deny", "Principal": "*", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
Exemple : Restriction de l'accès à des adresses IP spécifiques
L'exemple suivant refuse des autorisations à tout utilisateur souhaitant effectuer des opérations Amazon ECR appliquées à un référentiel à partir d'une plage d'adresses spécifique.
La condition dans cette instruction identifie la plage 54.240.143.*
d'adresses Internet Protocol version 4 (IPv4) autorisées.
Le Condition
bloc utilise les NotIpAddress
conditions et la clé de aws:SourceIp
condition, qui est une clé AWS de condition étendue. Pour obtenir plus d'informations sur les clés de condition, consultez la section Clés de contexte de condition globale AWS. Les valeurs IPv4 aws:sourceIp
font appel à la notation CIDR standard. Pour en savoir plus, consultez Opérateurs de condition d'adresse IP dans le guide de l'utilisateur IAM.
{ "Version": "2012-10-17", "Id": "
ECRPolicyId1
", "Statement": [ { "Sid": "IPAllow
", "Effect": "Deny", "Principal": "*", "Action": "ecr:*", "Condition": { "NotIpAddress": { "aws:SourceIp": "54.240.143.0/24
" } } } ] }
Exemple : autoriser un AWS service
La politique de référentiel suivante autorise l' AWS CodeBuild accès aux actions de l'API Amazon ECR nécessaires à l'intégration avec ce service. Lorsque vous utilisez l'exemple suivant, vous devez utiliser les clés de condition aws:SourceArn
et aws:SourceAccount
pour définir quelles ressources peuvent assumer ces autorisations. Pour plus d'informations, consultez l'exemple Amazon ECR CodeBuild dans le guide de l'AWS CodeBuild utilisateur.
{ "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
" } } } ] }