Utilisation d'images autres que des AWS conteneurs dans Amazon ECS - Amazon Elastic Container Service

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.

Utilisation d'images autres que des AWS conteneurs dans Amazon ECS

Utilisez le registre privé pour stocker vos informations d'identification AWS Secrets Manager, puis référencez-les dans votre définition de tâche. Cela permet de référencer des images de conteneurs qui existent dans des registres privés en dehors de ceux AWS qui nécessitent une authentification dans vos définitions de tâches. Cette fonction est prise en charge par les tâches hébergées sur Fargate, les instances Amazon EC2 et les instances externes utilisant Amazon ECS Anywhere.

Important

Si votre définition de tâche fait référence à une image stockée dans Amazon ECR, cette rubrique ne s'applique pas. Pour plus d'informations, consultez Utilisation d'images Amazon ECR avec Amazon ECS dans le Guide de l'utilisateur Amazon Elastic Container Registry.

Pour les tâches hébergées sur des instances Amazon EC2, cette fonction exige nécessite la version 1.19.0 ou ultérieure de l'agent de conteneur. Cependant, nous vous recommandons d'utiliser la dernière version de l'agent de conteneur. Pour plus d'informations sur la vérification de la version de votre agent et la mise à jour à la dernière version, consultez Mise à jour de l'agent de conteneur Amazon ECS.

Pour les tâches hébergées sur Fargate, cette fonction nécessite une version 1.2.0 de la plateforme ou une version ultérieure. Pour plus d'informations, veuillez consulter Versions de la plateforme Fargate Linux pour Amazon ECS.

Dans votre définition du conteneur, spécifiez l'objet repositoryCredentials avec les détails du secret que vous avez créé. Le secret référencé peut provenir d'un compte différent Région AWS ou différent de celui de la tâche qui l'utilise.

Note

Lorsque vous utilisez l'API ou le AWS SDK Amazon ECS, si le secret existe dans la même tâche Région AWS que la tâche que vous lancez, vous pouvez utiliser l'ARN complet ou le nom du secret. AWS CLI Si le secret existe dans un autre compte, l'ARN complet du secret doit être spécifié. Lorsque vous utilisez le AWS Management Console, l'ARN complet du secret doit toujours être spécifié.

Voici un extrait de code d'une définition de tâche indiquant les paramètres requis :

Remplacez private-repo par le nom d'hôte du dépôt privé et private-image par le nom de l'image.

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]
Note

Une autre méthode d'activation de l'authentification de registre privé utilise des variables d'environnement d'agent de conteneur Amazon ECS pour s'authentifier auprès de registres privés. Cette méthode est prise en charge uniquement pour les tâches hébergées sur des instances Amazon EC2. Pour plus d’informations, consultez Configuration des instances de conteneur Amazon ECS pour les images Docker privées .

Pour utiliser un registre privé
  1. La définition de tâche doit avoir un rôle d'exécution de tâche. Cela permet à l'agent de conteneur d'extraire l'image de conteneur. Pour plus d’informations, consultez Rôle IAM d'exécution de tâche Amazon ECS.

    Pour fournir l'accès aux secrets que vous créez, ajoutez les autorisations suivantes en tant que politique en ligne au rôle d'exécution de tâche. Pour plus d'informations, consultez Ajout et suppression de politiques IAM.

    • secretsmanager:GetSecretValue

    • kms:Decrypt : requis uniquement si votre clé utilise une clé KMS personnalisée et non la clé par défaut. L'Amazon Resource Name (ARN) de votre clé personnalisée doit être ajouté en tant que ressource.

    Voici un exemple de stratégie en ligne qui ajoute les autorisations.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }
  2. AWS Secrets Manager À utiliser pour créer un secret pour vos informations d'identification de registre privées. Pour plus d'informations sur la création d'un secret, voir Création d'un AWS Secrets Manager secret dans le Guide de AWS Secrets Manager l'utilisateur.

    Entrez les informations d'identification de votre registre privé au format suivant :

    { "username" : "privateRegistryUsername", "password" : "privateRegistryPassword" }
  3. Enregistrer une définition de tâche. Pour plus d’informations, consultez Création d'une définition de tâche Amazon ECS à l'aide de la console.