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ôle IAM d'exécution de tâche Amazon ECS
Le rôle IAM d'exécution de tâche accorde aux agents de conteneur Amazon ECS et Fargate l'autorisation d'effectuer des appels d'API AWS en votre nom. Le rôle IAM d'exécution de la tâche est requis en fonction des besoins de votre tâche. Vous pouvez avoir plusieurs rôles d'exécution de tâche pour différents objectifs et services associés à votre compte. Pour connaître les autorisations IAM dont votre application a besoin pour s'exécuter, veuillez consulter Rôle IAM de la tâche Amazon ECS.
Voici des cas d'utilisation courants pour un rôle IAM d'exécution de tâche :
-
Votre tâche est hébergée sur AWS Fargateou sur une instance externe et :
-
extrait une image de conteneur depuis un référentiel privé Amazon ECR.
-
extrait une image de conteneur d'un référentiel privé Amazon ECR dans un compte différent de celui qui exécute la tâche.
-
envoie les journaux des conteneurs à CloudWatch Logs à l'aide du pilote de
awslogs
journal. Pour plus d’informations, consultez Envoyez les journaux Amazon ECS à CloudWatch .
-
-
Vos tâches sont hébergées sur des instances Amazon EC2 AWS Fargate ou sur des instances Amazon EC2 et :
-
utilise l'authentification du registre privé. Pour plus d’informations, consultez Autorisations d'authentification du registre privé.
-
utilise la surveillance du temps d'exécution.
-
la définition de la tâche fait référence à des données sensibles à l'aide des secrets de Secrets Manager ou AWS des paramètres du magasin de paramètres de Systems Manager. Pour plus d’informations, consultez Permissions de Secrets Manager ou de Systems Manager.
-
Note
Le rôle d'exécution de tâche est pris en charge par l'agent de conteneur Amazon ECS, version 1.16.0 et ultérieures.
Amazon ECS fournit la politique gérée nommée AmazonECS TaskExecutionRolePolicy qui contient les autorisations requises par les cas d'utilisation courants décrits ci-dessus. Pour plus d'informations, consultez AmazonECS TaskExecution RolePolicy dans le Guide de référence des politiques AWS gérées. Il peut être nécessaire d'ajouter des politiques intégrées à votre rôle d'exécution de tâches pour des cas d'utilisation particuliers.
La console Amazon ECS crée un rôle d'exécution de tâche. Vous pouvez joindre manuellement la politique IAM gérée aux tâches afin de permettre à Amazon ECS d'ajouter des autorisations pour les fonctionnalités et améliorations futures au fur et à mesure de leur introduction. Vous pouvez utiliser la recherche dans la console IAM pour rechercher ecsTaskExecutionRole
et vérifier si votre compte possède déjà le rôle d'exécution des tâches. Pour plus d'informations, consultez la section Recherche dans la console IAM dans le guide de l'utilisateur IAM.
Si vous extrayez des images en tant qu'utilisateur authentifié, vous êtes moins susceptible d'être impacté par les modifications apportées aux limites de taux d'extraction de Docker Hub
En utilisant Amazon ECR et Amazon ECR Public, vous pouvez éviter les limites imposées par Docker. Si vous extrayez des images depuis Amazon ECR, cela permet également de raccourcir les temps d'extraction du réseau et de réduire les modifications de transfert de données lorsque le trafic quitte votre VPC.
Lorsque vous utilisez Fargate, vous devez vous authentifier auprès d'un registre d'images privé à l'aide de repositoryCredentials
. Il n'est pas possible de définir les variables d'environnement de l'agent de conteneur Amazon ECS ECS_ENGINE_AUTH_TYPE
ou ECS_ENGINE_AUTH_DATA
, ou de modifier le fichier ecs.config
pour les tâches hébergées sur Fargate. Pour plus d'informations, veuillez consulter Authentification de registre privé pour les tâches (langue française non garantie).
Création du rôle d'exécution de tâche
Si votre compte ne possède pas encore de rôle d'exécution de tâches, suivez les étapes ci-dessous pour créer le rôle.
Après avoir créé le rôle, ajoutez-y des autorisations supplémentaires pour les fonctionnalités suivantes.
Fonctionnalité |
Autorisations supplémentaires |
---|---|
Utilisez les informations d'identification de Secrets Manager pour accéder à votre référentiel privé d'images de conteneur |
|
Transmettez des données sensibles avec Systems Manager ou Secrets Manager | |
Demandez aux tâches Fargate d'extraire les images Amazon ECR sur les points de terminaison de l'interface | |
Fichiers de configuration de l'hôte dans un compartiment Amazon S3 |
Autorisations d'authentification du registre privé
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" ] } ] }
Permissions de Secrets Manager ou de Systems Manager
L'autorisation d'autoriser l'agent du conteneur à extraire les ressources nécessaires AWS Systems Manager ou les ressources de Secrets Manager. Pour plus d’informations, consultez Transférer des données sensibles vers un conteneur Amazon ECS.
Utilisation de Secrets Manager
Pour fournir l'accès aux secrets Secrets Manager que vous créez, ajoutez manuellement l'autorisation suivante au rôle d'exécution de tâche. Pour plus d'informations sur la gestion des autorisations, consultez Ajout et suppression de stratégies IAM dans le Guide de l'utilisateur IAM.
-
secretsmanager:GetSecretValue
: obligatoire si vous faites référence à un secret Secrets Manager. Ajoute l'autorisation pour récupérer le secret depuis Secrets Manager.
L'exemple suivant de politique ajoute les autorisations requises.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
region
:aws_account_id
:secret:secret_name
" ] } ] }
Utilisation de Systems Manager
Important
Pour les tâches qui utilisent le type de lancement EC2, vous devez utiliser la variable de configuration de l'agent ECS ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true
pour utiliser cette fonction. Vous pouvez l'ajouter au fichier ./etc/ecs/ecs.config
lors de la création de l'instance de conteneur, ou vous pouvez l'ajouter à une instance existante, puis redémarrer l'agent ECS. Pour plus d’informations, consultez Configuration de l'agent de conteneur Amazon ECS.
Pour permettre l'accès aux paramètres du magasin de paramètres du gestionnaire de systèmes que vous créez, ajoutez manuellement les autorisations suivantes en tant que stratégie au rôle d'exécution de tâche. Pour plus d'informations sur la gestion des autorisations, consultez Ajout et suppression de stratégies IAM dans le Guide de l'utilisateur IAM.
-
ssm:GetParameters
: obligatoire lorsque vous référencez un paramètre Systems Manager Parameter Store dans une définition de tâche. Ajoute l'autorisation pour récupérer les paramètres de Systems Manager. -
secretsmanager:GetSecretValue
: obligatoire si vous référencez directement un secret Secrets Manager ou si votre paramètre Systems Manager Parameter Store référence un secret Secrets Manager dans une définition de tâche. Ajoute l'autorisation pour récupérer le secret depuis Secrets Manager. -
kms:Decrypt
: obligatoire uniquement si votre secret utilise une clé managée client et non la clé par défaut. L'ARN de votre clé personnalisée doit être ajouté en tant que ressource. Ajoute l'autorisation pour déchiffrer la clé gérée par le client.
L'exemple suivant de politique ajoute les autorisations requises.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:
region
:aws_account_id
:parameter/parameter_name
", "arn:aws:secretsmanager:region
:aws_account_id
:secret:secret_name
", "arn:aws:kms:region
:aws_account_id
:key/key_id
" ] } ] }
Tâches Fargate extrayant des images Amazon ECR au-delà des autorisations des points de terminaison de l'interface
Lors du lancement des tâches qui utilisent le type de lancement Fargate et qui extraient des images à partir d'Amazon ECR, lorsqu'Amazon ECR est configuré pour utiliser un point de terminaison d’un VPC d'interface, vous pouvez restreindre les droits d'accès des tâches à un VPC ou à un point de terminaison d’un VPC spécifique. Pour ce faire, créez un rôle d'exécution de tâche pour les tâches qui utilisent des clés de condition IAM.
Utilisez les clés de condition globales IAM suivantes pour restreindre l'accès à un VPC ou à un point de terminaison d’un VPC spécifique. Pour de plus amples informations, veuillez consulter Clés de contexte de condition globale AWS.
-
aws:SourceVpc
: restreint l'accès à un VPC spécifique. -
aws:SourceVpce
: restreint l'accès à un point de terminaison d’un VPC spécifique.
La stratégie de rôle d'exécution de tâche suivante fournit un exemple d'ajout de clés de condition :
Important
Les clés aws:sourceVpc
ou les clés de aws:sourceVpce
condition ne peuvent pas être appliquées à l'action ecr:GetAuthorizationToken
API car l'appel d' GetAuthorizationToken API passe par l'interface Elastic Network appartenant à AWS Fargate plutôt que par l'interface réseau Elastic de la tâche.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": "
vpce-xxxxxx
", "aws:sourceVpc": "vpc-xxxxx
" } } } ] }
Autorisations de stockage de fichiers Amazon S3
Lorsque vous spécifiez un fichier de configuration hébergé dans Amazon S3, votre rôle d'exécution des tâches doit inclure l's3:GetObject
autorisation pour le fichier de configuration et l's3:GetBucketLocation
autorisation sur le compartiment Amazon S3 dans lequel se trouve le fichier. Pour de plus amples informations, veuillez consulter Spécifier des autorisations dans une politique dans le Guide de l'utilisateur Amazon Simple Storage Service.
L'exemple de politique suivant ajoute les autorisations requises pour récupérer un fichier depuis Amazon S3. Spécifiez le nom de votre compartiment Amazon S3 et le nom du fichier de configuration.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "
s3:GetObject
" ], "Resource": [ "arn:aws:s3:::examplebucket
/folder_name
/config_file_name
" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::examplebucket
" ] } ] }