

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.

# Réplication d’images privées sur Amazon ECR
<a name="replication"></a>

Vous pouvez configurer votre registre privé Amazon ECR pour prendre en charge la réplication de vos référentiels. Amazon ECR prend en charge la réplication inter-régions et inter-comptes. Pour que la réplication inter-comptes se produise, le compte de destination doit configurer une politique d'autorisations de registre pour autoriser la réplication à partir du registre source. Pour de plus amples informations, veuillez consulter [Autorisations de registre privé dans Amazon ECR](registry-permissions.md).

**Topics**
+ [Exigences relatives à la politique de réplication entre comptes](#replication-policy-clarification)
+ [Considérations relatives à la réplication d'images privées](#replication-considerations)
+ [Exemples de réplication d'images privées pour Amazon ECR](registry-settings-examples.md)
+ [Configuration de la réplication d'images privées dans Amazon ECR](registry-settings-configure.md)
+ [Suppression des paramètres de réplication d'images privées dans Amazon ECR](registry-settings-remove.md)

## Exigences relatives à la politique de réplication entre comptes
<a name="replication-policy-clarification"></a>

Pour que la réplication ECR entre comptes fonctionne correctement, vous devez comprendre quel compte a besoin de quelles politiques configurées. Cette section précise les exigences de la politique pour les comptes source et de destination.

### Présentation de la configuration des politiques
<a name="replication-policy-overview"></a>

La réplication ECR entre comptes nécessite la configuration des politiques sur le **compte de destination uniquement**. Le compte source ne nécessite aucune politique de dépôt ou de registre particulière.
+ **Compte source** : configurez les règles de réplication dans les paramètres du registre. Aucune politique supplémentaire n'est requise pour les référentiels sources.
+ **Compte de destination** : configurez une politique d'autorisations de registre pour autoriser le compte source à répliquer des images.

### Exigences relatives à la politique du registre de destination
<a name="destination-registry-policy-requirements"></a>

Le compte de destination doit configurer une politique d'autorisations de registre qui accorde au compte source l'autorisation d'effectuer les actions suivantes :
+ `ecr:ReplicateImage`- Permet au compte source de répliquer les images dans le registre de destination
+ `ecr:CreateRepository`- Permet à ECR de créer automatiquement des référentiels dans le registre de destination s'ils n'existent pas déjà

**Important**  
Si vous n'accordez pas l'`ecr:CreateRepository`autorisation, vous devez créer manuellement des référentiels portant le même nom dans le compte de destination pour que la réplication puisse réussir.

Exemple de politique de registre de destination :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCrossAccountReplication",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:ReplicateImage",
                "ecr:CreateRepository"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Exigences relatives au compte source
<a name="source-account-requirements"></a>

Le compte source doit uniquement :
+ Configurez les règles de réplication dans les paramètres du registre pour spécifier le compte et les régions de destination
+ Assurez-vous que le principal IAM qui configure la réplication dispose des autorisations ECR nécessaires

**Aucune politique supplémentaire n'est requise pour les référentiels sources.** Les référentiels sources n'ont pas besoin de politiques de dépôt accordant des autorisations de réplication.

### Idées fausses courantes
<a name="common-misconceptions"></a>

Voici quelques idées fausses courantes concernant les politiques de réplication entre comptes ECR :
+ **Idée fausse** : le référentiel source a besoin d'une politique permettant au compte de destination de répliquer des images.

  **Réalité** : les référentiels sources n'ont pas besoin de règles spéciales pour la réplication.
+ **Idée fausse** : les comptes source et de destination ont besoin de politiques de registre.

  **Réalité** : Seul le compte de destination a besoin d'une politique d'autorisation de registre.
+ **Idée fausse** : les politiques de dépôt et les politiques de registre sont identiques.

  **Réalité** : les politiques de référentiel contrôlent l'accès aux référentiels individuels, tandis que les politiques de registre contrôlent les opérations au niveau du registre, telles que la réplication.

### Résolution des problèmes de réplication
<a name="replication-troubleshooting"></a>

Si la réplication entre comptes échoue, vérifiez les points suivants :
+ Vérifiez que le compte de destination dispose d'une politique d'autorisations de registre configurée
+ Assurez-vous que la politique de registre inclut les deux `ecr:ReplicateImage` et les `ecr:CreateRepository` actions
+ Vérifiez que l'ID du compte source est correctement spécifié dans la politique de registre de destination
+ Vérifiez que les référentiels de destination existent (s'ils ne `ecr:CreateRepository` sont pas autorisés)
+ Consultez CloudTrail les journaux pour détecter les échecs `CreateRepository` ou les appels `ReplicateImage` d'API

## Considérations relatives à la réplication d'images privées
<a name="replication-considerations"></a>

Les informations suivantes doivent être prises en compte lors de l'utilisation de la réplication d'images privées.
+ Seul le contenu du référentiel transféré ou restauré vers un référentiel après la configuration de la réplication est répliqué. Tout contenu préexistant dans un référentiel n'est pas répliqué. Si une image est restaurée après l'activation de la réplication, elle sera répliquée. S'il est restauré avant que la réplication ne soit activée, il ne sera pas répliqué.
+ Le nom du référentiel restera le même pour toutes les régions et tous les comptes une fois la réplication effectuée. Amazon ECR ne prend pas en charge la modification du nom du référentiel pendant la réplication.
+ La première fois que vous configurez votre registre privé pour la réplication, Amazon ECR crée un rôle IAM lié à un service en votre nom. Le rôle IAM lié à un service octroie au service de réplication Amazon ECR l'autorisation dont il a besoin pour créer des référentiels et répliquer des images dans votre registre. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour Amazon ECR](using-service-linked-roles.md).
+ Pour que la réplication inter-comptes se produise, la destination du registre privé doit octroyer au registre source l'autorisation de répliquer ses images. Pour ce faire, définissez une politique d'autorisations de registre privé. Pour de plus amples informations, veuillez consulter [Autorisations de registre privé dans Amazon ECR](registry-permissions.md).
+ Si la politique d'autorisation d'un registre privé est modifiée pour supprimer une autorisation, toutes les réplications en cours précédemment octroyées peuvent se terminer.
+ Pour que la réplication entre régions ait lieu, les comptes source et de destination doivent être intégrés à la région avant toute action de réplication au sein ou vers cette région. Pour plus d'informations, consultez [Gestion des régions AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) dans le *Référence générale d'Amazon Web Services*.
+ La réplication entre régions n'est pas prise en charge entre les AWS partitions. Par exemple, un référentiel dans `us-west-2` ne peut pas être répliqué vers ` cn-north-1`. Pour plus d'informations sur AWS les partitions, consultez la section [Format ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax) dans le manuel de *référence AWS général*.
+ La configuration de réplication d'un registre privé peut contenir jusqu'à 25 destinations uniques pour toutes les règles, avec un maximum de 10 règles au total. Chaque règle peut contenir jusqu'à 100 filtres. Cela permet de préciser des règles distinctes pour les référentiels contenant des images utilisées pour la production et le test, par exemple.
+ La configuration de réplication prend en charge le filtrage des référentiels dans un registre privé qui sont répliqués en indiquant un préfixe de référentiel. Pour voir un exemple, consultez [Exemple : Configuration de la réplication inter-régions à l'aide d'un filtre de référentiel](registry-settings-examples.md#registry-settings-examples-crr-filter).
+ Une action de réplication ne se produit qu'une seule fois par transfert d'image ou par restauration d'image. Par exemple, si vous avez configuré la réplication inter-régions à partir de `us-west-2` sur ` us-east-1` et à partir de `us-east-1` sur `us-east-2`, une image poussée vers `us-west-2` répliquera uniquement sur `us-east-1`, elle ne se répliquera pas à nouveau sur `us-east-2`. Ce comportement s'applique à la fois à la réplication inter-régions et inter-comptes.
+ La majorité des images se répliquent en moins de 30 minutes, mais dans de rares cas, la réplication peut prendre plus de temps.
+ La réplication du registre n'effectue aucune action de suppression ou d'archivage. Les images et les référentiels répliqués peuvent être supprimés ou archivés lorsqu'ils ne sont plus utilisés.
+ Si l'image à répliquer est archivée dans la destination, elle sera restaurée dans la destination.
+ Lorsqu'une image est archivée dans une région source, elle ne sera pas archivée dans une région de destination spécifiée par la configuration de réplication.
+ Les politiques de référentiel, notamment les politiques IAM et les politiques de cycle de vie, ne sont pas répliquées et n'ont aucun effet autre que sur le référentiel pour lequel elles sont définies.
+ Les paramètres du référentiel ne sont pas répliqués par défaut. Vous pouvez répliquer les paramètres du référentiel à l'aide de modèles de création de référentiel. Ces paramètres incluent la mutabilité des balises, le chiffrement, les autorisations de dépôt et les politiques de cycle de vie. Pour plus d'informations sur les modèles de création de référentiels, consultez[Modèles pour contrôler les référentiels créés lors d'une opération d'extraction du cache, d'une création push ou d'une action de réplication](repository-creation-templates.md).
+ Si l'immuabilité des étiquettes est activée sur un référentiel et qu'une image qui utilise la même étiquette qu'une image existante est répliquée, l'image sera répliquée, mais elle ne contiendra pas l'étiquette dupliquée. Cela pourrait entraîner le non-étiquetage de l'image.
+ Lors de la réplication d'images, si le montage par blob a été configuré, ECR vérifie que toutes les couches du référentiel source existent déjà dans le registre de destination. Si des couches existent déjà dans le registre de destination, ECR les montera. 

**Note**  
Si le registre source est différent de son registre de destination, le montage par blob devra être activé pour les deux registres pour que l'ECR puisse monter les couches répliquées.

# Exemples de réplication d'images privées pour Amazon ECR
<a name="registry-settings-examples"></a>

Les exemples suivants montrent des cas d’utilisation courants de la réplication d’images privées. Si vous configurez la réplication à l'aide du AWS CLI, vous pouvez utiliser les exemples JSON comme point de départ lorsque vous créez votre fichier JSON. Si vous configurez la réplication à l'aide du AWS Management Console, vous verrez un JSON similaire lorsque vous examinerez votre règle de réplication sur la page **Révision et envoi**.

## Exemple : configuration de la réplication inter-régions sur une même région de destination
<a name="registry-settings-examples-crr-single"></a>

L'exemple suivant illustre la configuration de la réplication inter-régions dans un registre unique. Cet exemple suppose que votre ID de compte est ` 111122223333` et que vous indiquez cette configuration de réplication dans une région autre que `us-west-2`.

```
{
    "rules": [
        {
            "destinations": [
                {
                    "region": "us-west-2",
                    "registryId": "111122223333"
                }
            ]
        }
    ]
}
```

## Exemple : Configuration de la réplication inter-régions à l'aide d'un filtre de référentiel
<a name="registry-settings-examples-crr-filter"></a>

L'exemple suivant illustre la configuration de la réplication inter-régions pour les référentiels qui correspondent à une valeur de nom de préfixe. Cet exemple suppose que votre ID de compte est ` 111122223333`, que vous indiquez cette configuration de réplication dans une région autre que `us-west-1` et dispose de référentiels avec un préfixe de `prod`.

```
{
	"rules": [{
		"destinations": [{
			"region": "us-west-1",
			"registryId": "111122223333"
		}],
		"repositoryFilters": [{
			"filter": "prod",
			"filterType": "PREFIX_MATCH"
		}]
	}]
}
```

## Exemple : Configuration de la réplication inter-régions vers plusieurs régions de destination
<a name="registry-settings-examples-crr-multipledestinations"></a>

L'exemple suivant illustre la configuration de la réplication inter-régions dans un registre unique. Cet exemple suppose que votre identifiant de compte est ` 111122223333` et que vous spécifiez cette configuration de réplication dans une région autre que `us-west-1` ou`us-west-2`.

```
{
    "rules": [
        {
            "destinations": [
                {
                    "region": "us-west-1",
                    "registryId": "111122223333"
                },
                {
                    "region": "us-west-2",
                    "registryId": "111122223333"
                }
            ]
        }
    ]
}
```

## Exemple : Configuration de la réplication inter-comptes
<a name="registry-settings-examples-crossaccount"></a>

L'exemple suivant illustre la configuration de la réplication inter-comptes pour votre registre. Cet exemple configure la réplication vers le compte `444455556666`et vers la région `us-west-2`.

**Important**  
Pour que la réplication inter-comptes se produise, le compte de destination doit configurer une politique d'autorisations de registre pour autoriser la réplication. Pour de plus amples informations, veuillez consulter [Autorisations de registre privé dans Amazon ECR](registry-permissions.md).

```
{
    "rules": [
        {
            "destinations": [
                {
                    "region": "us-west-2",
                    "registryId": "444455556666"
                }
            ]
        }
    ]
}
```

## Exemple : Spécification de plusieurs règles dans une configuration
<a name="registry-settings-examples-multiple-rules"></a>

L'image suivante présente un exemple de configuration de plusieurs règles de réplication pour votre registre. Cet exemple configure la réplication pour le compte * 111122223333* avec une seule règle qui réplique les référentiels avec un préfixe de `prod` vers la région `us-west-2` et les référentiels avec un préfixe de `test` vers la région `us-east-2`. Une configuration de réplication peut contenir jusqu'à 10 règles, chaque règle indiquant jusqu'à 25 destinations.

```
{
	"rules": [{
			"destinations": [{
				"region": "us-west-2",
				"registryId": "111122223333"
			}],
			"repositoryFilters": [{
				"filter": "prod",
				"filterType": "PREFIX_MATCH"
			}]
		},
		{
			"destinations": [{
				"region": "us-east-2",
				"registryId": "111122223333"
			}],
			"repositoryFilters": [{
				"filter": "test",
				"filterType": "PREFIX_MATCH"
			}]
		}
	]
}
```

## Exemple : suppression de tous les paramètres de réplication
<a name="registry-settings-examples-remove"></a>

Voici un exemple de suppression de tous les paramètres de réplication de votre registre. Pour supprimer les paramètres de réplication, vous devez configurer un tableau de règles vide.

```
{
    "rules": []
}
```

**Important**  
La suppression des paramètres de réplication ne supprime pas les référentiels ou les images précédemment répliqués. Vous devez supprimer manuellement le contenu répliqué s'il n'est plus nécessaire.

# Configuration de la réplication d'images privées dans Amazon ECR
<a name="registry-settings-configure"></a>

Configurez la réplication par région pour votre registre privé. Vous pouvez configurer la réplication entre régions ou entre comptes.

Pour obtenir des exemples sur la manière dont la réplication est couramment utilisée, consultez [Exemples de réplication d'images privées pour Amazon ECR](registry-settings-examples.md).

## Configurer les paramètres de réplication du registre (AWS Management Console)
<a name="registry-settings-configure-console"></a>

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 pour laquelle vous souhaitez configurer les paramètres de réplication du registre.

1. Dans le panneau de navigation, choisissez **Registre de schémas**.

1. Sur la page **du registre privé**, choisissez **Paramètres**, puis sélectionnez **Modifier** sous **Configuration de la réplication**.

1. Dans la page **Réplication**, choisissez **Ajouter une règle de réplication**.

1. Dans la page **Types de destination**, choisissez si vous souhaitez activer la réplication inter-régions, la réplication inter-comptes ou les deux, puis choisissez **Suivant**.

1. Si la réplication inter-régions est activée, alors pour **Configuration des régions de destination**, choisissez une ou plusieurs **régions de destination**, puis choisissez **Suivant**.

1. Si la réplication inter-comptes est activée, alors pour **Réplication inter-comptes**, choisissez le paramètre de réplication inter-comptes pour le registre. Pour **Compte de destination**, saisissez l'ID de compte pour le compte de destination et une ou plusieurs **régions de destination** à répliquer. Choisissez **Compte de destination \$1** pour configurer des comptes supplémentaires en tant que destinations de réplication.
**Important**  
Pour que la réplication inter-comptes se produise, le compte de destination doit configurer une politique d'autorisations de registre pour autoriser la réplication. Pour de plus amples informations, veuillez consulter [Autorisations de registre privé dans Amazon ECR](registry-permissions.md).

1. (Facultatif) Dans l'onglet **Ajouter des filtres**, indiquez un ou plusieurs filtres pour la règle de réplication, puis choisissez **Ajouter**. Répétez cette étape pour chaque filtre que vous souhaitez associer à l'action de réplication. Un filtre doit être spécifié en tant que préfixe de nom de référentiel. Si aucun filtre n'est ajouté, le contenu de tous les référentiels est répliqué. Choisissez **Suivant** lorsque tous les filtres auront été ajoutés.

1. Dans la page **Examen et soumission**, examinez la configuration de la règle de réplication, puis choisissez **Soumettre une règle**.

## Configurer les paramètres de réplication du registre (AWS CLI)
<a name="registry-settings-configure-cli"></a>

1. Créez un fichier JSON contenant les règles de réplication à définir pour votre registre. Une configuration de réplication peut contenir jusqu'à 10 règles, avec jusqu'à 25 destinations uniques pour toutes les règles et 100 filtres par règle. Pour configurer la réplication inter-régions dans votre propre compte, indiquez votre propre ID de compte. Pour obtenir plus d’exemples, consultez [Exemples de réplication d'images privées pour Amazon ECR](registry-settings-examples.md).

   ```
   {
   	"rules": [{
   		"destinations": [{
   			"region": "destination_region",
   			"registryId": "destination_accountId"
   		}],
   		"repositoryFilters": [{
   			"filter": "repository_prefix_name",
   			"filterType": "PREFIX_MATCH"
   		}]
   	}]
   }
   ```

1. Créez une configuration de réplication pour votre registre.

   ```
   aws ecr put-replication-configuration \
        --replication-configuration file://replication-settings.json \
        --region us-west-2
   ```

1. Confirmez les paramètres de votre registre.

   ```
   aws ecr describe-registry \
        --region us-west-2
   ```

# Suppression des paramètres de réplication d'images privées dans Amazon ECR
<a name="registry-settings-remove"></a>

Pour supprimer ou désactiver les paramètres de réplication de votre registre privé, vous devez configurer une configuration de réplication vide. Il n'existe aucune commande de suppression dédiée dans le AWS CLI.

## Pour supprimer les paramètres de réplication du registre (AWS Management Console)
<a name="registry-settings-remove-console"></a>

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 dont vous souhaitez supprimer les paramètres de réplication du registre.

1. Dans le panneau de navigation, choisissez **Registre de schémas**.

1. Sur la page **du registre privé**, choisissez **Paramètres**, puis sélectionnez **Modifier** sous **Configuration de la réplication**.

1. Supprimez toutes les règles de réplication existantes en choisissant l'option de suppression pour chaque règle.

1. Choisissez **Enregistrer** pour appliquer la configuration de réplication vide.

## Pour supprimer les paramètres de réplication du registre (AWS CLI)
<a name="registry-settings-remove-cli"></a>

1. Créez un fichier JSON avec un tableau de règles vide pour supprimer tous les paramètres de réplication.

   ```
   {
       "rules": []
   }
   ```

1. Appliquez la configuration de réplication vide à votre registre.

   ```
   aws ecr put-replication-configuration \
        --replication-configuration file://empty-replication-settings.json \
        --region us-west-2
   ```

1. Vérifiez que les paramètres de réplication ont été supprimés.

   ```
   aws ecr describe-registry \
        --region us-west-2
   ```

   La sortie doit afficher un champ vide `replicationConfiguration` sans règles.

**Important**  
La suppression des paramètres de réplication ne supprime pas les référentiels ou les images précédemment répliqués. Vous devez supprimer manuellement le contenu répliqué s'il n'est plus nécessaire.