

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
<a name="repository-policy-examples"></a>

**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](set-repository-policy.md).

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 de plus amples informations, veuillez consulter [Politiques de référentiel vs politiques IAM](repository-policies.md#repository-policy-vs-iam-policy).

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 pour contrôler l'accès des utilisateurs à différents niveaux. Pour de plus amples informations, veuillez consulter [Exemples de politiques basées sur l'identité du registre de conteneur Amazon Elastic](security_iam_id-based-policy-examples.md).

## Exemple : Autoriser un ou plusieurs utilisateurs
<a name="IAM_within_account"></a>

La politique de référentiel suivante autorise un ou plusieurs utilisateurs à transmettre et extraire des images vers et depuis un référentiel.

------
#### [ JSON ]

****  

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

------

## Exemple : autoriser un autre compte
<a name="IAM_allow_other_accounts"></a>

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.

------
#### [ JSON ]

****  

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

------

La politique de dépôt suivante permet à certains utilisateurs d'extraire des images (*pull-user-1*et*pull-user-2*) tout en fournissant un accès complet à une autre (*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 [https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) AWS CLI commande.

------
#### [ JSON ]

****  

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

------

## Exemple : Refuser tout
<a name="IAM_deny_all"></a>

La politique de référentiel suivante permet à tous les utilisateurs de tous les comptes d'extraire des images.

------
#### [ JSON ]

****  

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

------

## Exemple : Restriction de l'accès à des adresses IP spécifiques
<a name="IAM_restrict_ip"></a>

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 contenue dans cette déclaration identifie la `54.240.143.*` plage d'adresses IP autorisées du protocole Internet version 4 (IPv4).

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html). Les `aws:sourceIp` IPv4 valeurs utilisent la notation CIDR standard. Pour plus d’informations, consultez [Opérateurs de condition d’adresse IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress) dans le *Guide de l’utilisateur IAM*.

------
#### [ JSON ]

****  

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

------

## Exemple : autoriser un AWS service
<a name="IAM_service_linked"></a>

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](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html) dans le *guide de l'AWS CodeBuild utilisateur*.

------
#### [ JSON ]

****  

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

------