

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.

# Politiques relatives aux référentiels privés dans Amazon ECR
<a name="repository-policies"></a>

Amazon ECR utilise les autorisations basées sur les ressources pour contrôler l'accès aux référentiels. Les autorisations basées sur les ressources vous permettent de spécifier quels utilisateurs ou rôles ont accès à un référentiel et quelles actions ils peuvent effectuer sur le référentiel. Par défaut, seul le AWS compte qui a créé le référentiel a accès au référentiel. Vous pouvez appliquer une politique de dépôt qui autorise un accès supplémentaire à votre dépôt.

**Topics**
+ [Politiques de référentiel vs politiques IAM](#repository-policy-vs-iam-policy)
+ [Exemples de politiques relatives aux référentiels privés dans Amazon ECR](repository-policy-examples.md)
+ [Définition d'une déclaration de politique de dépôt privé dans Amazon ECR](set-repository-policy.md)

## Politiques de référentiel vs politiques IAM
<a name="repository-policy-vs-iam-policy"></a>

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.

Les politiques de référentiel Amazon ECR et les politiques IAM sont utilisées pour déterminer les actions qu'un utilisateur ou un rôle particulier peut effectuer sur un référentiel. Si un utilisateur ou un rôle est autorisé à effectuer une action via une politique de référentiel, mais se voit refuser l'autorisation via une politique IAM (ou inversement), l'action sera refusée. Un utilisateur ou un rôle doit être autorisé à effectuer une action par une politique de référentiel ou par une stratégie IAM, mais pas par les deux, pour que l'action soit autorisée.

**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).

Vous pouvez utiliser l'un ou l'autre de ces types de politique pour contrôler l'accès à vos référentiels, comme illustré dans les exemples suivants.

Cet exemple présente une politique de référentiel Amazon ECR qui autorise un utilisateur spécifique à décrire le référentiel et les images de ce référentiel.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ECRRepositoryPolicy",
            "Effect": "Allow",
            "Principal": {"AWS": "arn:aws:iam::111122223333:user/username"},
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Cet exemple présente une politique IAM qui permet d'atteindre le même objectif que ci-dessus en délimitant la politique à un référentiel (spécifié par l'ARN complet du référentiel) à l'aide du paramètre de ressource. Pour en savoir plus sur le format Amazon Resource Name (ARN), consultez [Ressources](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeRepoImage",
            "Effect": "Allow",
            "Action": [
                "ecr:DescribeImages",
                "ecr:DescribeRepositories"
            ],
            "Resource": ["arn:aws:ecr:us-east-1:111122223333:repository/repository-name"]
        }
    ]
}
```

------

# 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"
            }
         }
      }
   ]
}
```

------

# Définition d'une déclaration de politique de dépôt privé dans Amazon ECR
<a name="set-repository-policy"></a>

Vous pouvez ajouter une déclaration de politique d'accès à un référentiel dans le AWS Management Console en suivant les étapes ci-dessous. Vous pouvez ajouter plusieurs instructions de politique par référentiel. Pour obtenir des exemples de politiques, consultez [Exemples de politiques relatives aux référentiels privés dans Amazon ECR](repository-policy-examples.md).

**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).

**Définir une instruction de politique de référentiel**

1. Ouvrez la console Amazon ECR dans les [https://console.aws.amazon.com/ecr/référentiels](https://console.aws.amazon.com/ecr/repositories).

1. Dans la barre de navigation, choisissez la région qui contient le référentiel pour lequel vous souhaitez définir une instruction de politique.

1. Dans le panneau de navigation, choisissez **Référentiels**.

1. Dans la page **Référentiels**, choisissez le référentiel pour lequel vous souhaitez définir une instruction de politique pour afficher le contenu du référentiel.

1. Dans la vue de liste des images du référentiel, dans le panneau de navigation, sélectionnez **Autorisations**, **Modifier**.
**Note**  
Si vous ne voyez pas l'option **Autorisations** dans le panneau de navigation, vérifiez que vous êtes dans la vue de la liste des images du référentiel.

1. Dans la page **Modifier des autorisations**, choisissez **Ajouter une instruction**.

1. Pour **Nom d'instruction**, saisissez un nom pour l'instruction.

1. Pour **Effet**, choisissez si l'instruction de politique entraînera une autorisation ou un refus explicite.

1. Pour **principal**, choisissez l'étendue à laquelle s'applique l'instruction de politique. Pour en savoir plus, consultez [AWS Éléments de politique JSON  : principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dans le *guide de l'utilisateur IAM*.
   + Vous pouvez appliquer la déclaration à tous les AWS utilisateurs authentifiés en cochant la case **Tout le monde (\$1)**.
   + Pour **principal du service**, indiquez le nom du principal du service (par exemple, `ecs.amazonaws.com`) pour appliquer l'instruction à un service particulier.
   + Dans **AWS Compte IDs**, spécifiez un numéro de AWS compte (par exemple,`111122223333`) pour appliquer le relevé à tous les utilisateurs d'un AWS compte spécifique. Il est possible de préciser plusieurs comptes à l'aide d'une liste séparée par des virgules.
**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.
   + Pour les **entités IAM**, sélectionnez les rôles ou les utilisateurs de votre AWS compte auxquels appliquer la déclaration.
**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.

1. Pour **Actions**, choisissez l'étendue des opérations d'API Amazon ECR auxquelles l'instruction de politique doit s'appliquer dans la liste des opérations d'API individuelles.

1. Lorsque vous aurez terminé, choisissez **Enregistrer** pour définir la politique.

1. Répétez l'étape précédente pour chaque politique de référentiel à ajouter.