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.
Note
Ces autorisations ne sont pas accessibles aux conteneurs de la tâche. 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 de plus amples informations, veuillez consulter Envoyez les journaux Amazon ECS à CloudWatch .
-
-
Vos tâches sont hébergées sur des instances AWS Fargate ou sur EC2 des instances Amazon et :
-
utilise l'authentification du registre privé. Pour de plus amples informations, veuillez consulter 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 de plus amples informations, veuillez consulter 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 Amazon ECSTask ExecutionRolePolicy qui contient les autorisations requises par les cas d'utilisation courants décrits ci-dessus. Pour plus d'informations, consultez Amazon ECSTask ExecutionRolePolicy dans le AWS Managed Policy Reference Guide. 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 affecté par les modifications apportées à l'Docker Hubutilisation et aux limites
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 | |
Configurer Container Insights pour afficher les événements du cycle de vie d'Amazon ECS | |
Afficher les événements relatifs au cycle de vie d'Amazon ECS dans Container Insights |
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 de plus amples informations, veuillez consulter 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 EC2 lancement, vous devez utiliser la variable de configuration de l'agent ECS ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true
pour utiliser cette fonctionnalité. 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 de plus amples informations, veuillez consulter 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. Vous pouvez limiter le VPC au VPC qui héberge la tâche et le point de terminaison. -
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 :
{ "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 Amazon ECR
Les autorisations suivantes sont requises lorsque vous devez extraire des images de conteneurs depuis des référentiels privés Amazon ECR. Le rôle d'exécution des tâches doit disposer de ces autorisations pour permettre au conteneur Amazon ECS et aux agents Fargate d'extraire les images du conteneur en votre nom. Pour les implémentations ECS de base, ces autorisations doivent être ajoutées au rôle d'exécution des tâches plutôt qu'au rôle IAM des tâches.
La politique gérée du rôle d'exécution des tâches Amazon ECS (AmazonECSTaskExecutionRolePolicy
) inclut les autorisations nécessaires pour extraire des images depuis Amazon ECR. Si vous utilisez la politique gérée, il n'est pas nécessaire d'ajouter ces autorisations séparément.
Si vous créez une politique personnalisée, incluez les autorisations suivantes pour autoriser l'extraction d'images depuis Amazon ECR :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Notez que ces autorisations sont différentes de celles qui peuvent être requises dans le rôle IAM de tâche si le code de votre application doit interagir directement avec Amazon ECR. APIs Pour plus d'informations sur les autorisations de rôle IAM des tâches pour Amazon ECR, consultez. Autorisations Amazon ECR
Autorisations de stockage de fichiers Amazon S3
Lorsque vous spécifiez un fichier de configuration hébergé dans Amazon S3, le rôle d'exécution de la tâche 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 plus d'informations, consultez la section Actions politiques pour Amazon S3 dans le guide de l'utilisateur d'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:::amzn-s3-demo-bucket
/folder_name
/config_file_name
" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
" ] } ] }
Autorisations requises pour configurer Container Insights afin d'afficher les événements du cycle de vie Amazon ECS
Les autorisations suivantes sont requises dans le rôle de tâche pour configurer les événements du cycle de vie :
-
événements : PutRule
-
événements : PutTargets
-
journaux : CreateLogGroup
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:PutRule", "events:PutTargets", "logs:CreateLogGroup" ], "Resource": "*" } ] }