Rôle IAM d'instance de conteneur 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.

Rôle IAM d'instance de conteneur Amazon ECS

Les instances de conteneur Amazon ECS, y compris Amazon EC2 et les instances externes, exécutent l'agent de conteneur Amazon ECS et utilisent un rôle IAM pour indiquer au service que l'agent vous appartient. Avant de pouvoir lancer des instances de conteneur et de les enregistrer dans un cluster, vous devez créer le rôle IAM qu'elles utiliseront. Le rôle est créé dans le compte que vous utilisez pour vous connecter à la console ou exécuter les AWS CLI commandes.

Important

Si vous enregistrez des instances externes dans votre cluster, le rôle IAM que vous utilisez nécessite également des autorisations Systems Manager. Pour plus d’informations, consultez Rôle IAM dans Amazon ECS Anywhere.

Amazon ECS fournit le fichier de stratégie IAM gérée AmazonEC2ContainerServiceforEC2Role qui contient les autorisations nécessaires à l'utilisation de l'ensemble complet de fonctions Amazon ECS. Cette stratégie gérée peut être attachée à un rôle IAM et associée à vos instances de conteneur. Sinon, vous pouvez utiliser la stratégie gérée comme guide lorsque vous créez une stratégie personnalisée à utiliser. Le rôle d'instance de conteneur fournit les autorisations nécessaires à l'agent de conteneur Amazon ECS et au daemon Docker pour appeler des AWS API en votre nom. Pour de plus amples informations sur la stratégie gérée, veuillez consulter Rôle Amazon EC2 EC2 ContainerServicefor.

Amazon ECS prend en charge le lancement d'instances de conteneur avec une augmentation de la densité ENI et utilisant des types d'instances Amazon EC2 pris en charge. Lorsque vous utilisez cette fonctionnalité, nous vous recommandons de créer deux rôles d'instance de conteneur. Activez le paramètre du awsvpcTrunking compte pour un rôle et utilisez ce rôle pour les tâches nécessitant une jonction ENI. Pour plus d'informations sur le paramétrage du awsvpcTrunking compte, consultezAccédez aux fonctionnalités d'Amazon ECS avec les paramètres du compte.

Création du rôle d'instance de conteneur

Important

Si vous enregistrez des instances externes dans votre cluster, veuillez consulter Rôle IAM dans Amazon ECS Anywhere.

Vous pouvez créer et associer manuellement le rôle à la politique IAM gérée pour les instances de conteneur afin de permettre à Amazon ECS d'ajouter des autorisations pour les futures fonctionnalités et améliorations au fur et à mesure qu'elles sont introduites. Utilisez la procédure suivante pour joindre la politique IAM gérée si nécessaire.

AWS Management Console
Pour créer le rôle de service pour Elastic Container Service (console IAM)
  1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation de la console IAM, sélectionnez Roles (Rôles), puis Create role (Créer un rôle).

  3. Pour Trusted entity (Entité de confiance), choisissez Service AWS.

  4. Pour Service ou cas d'utilisation, choisissez Elastic Container Service, puis choisissez le rôle EC2 pour le cas d'utilisation d'Elastic Container Service.

  5. Choisissez Suivant.

  6. Dans la section Politiques d'autorisation, vérifiez que la politique Amazon EC2 ContainerServicefor EC2Role est sélectionnée.

    Important

    La politique gérée Amazon EC2 ContainerServicefor EC2Role doit être attachée au rôle IAM de l'instance de conteneur, sinon vous recevrez un message d'erreur en utilisant le pour créer des clusters. AWS Management Console

  7. Choisissez Suivant.

  8. Pour Nom du rôle, entrez ecsInstanceRole

  9. Passez en revue les informations du rôle, puis choisissez Create role (Créer un rôle).

AWS CLI

Remplacez toutes les entrées utilisateur par vos propres valeurs.

  1. Créez un fichier nommé instance-role-trust-policy.json avec le contenu suivant.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. Utilisez la commande suivante pour créer le rôle IAM d'instance à l'aide du document de politique de confiance.

    aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://instance-role-trust-policy.json
  3. Créez un profil d'instance nommé ecsInstanceRole-profile à l'aide de la create-instance-profilecommande.

    aws iam create-instance-profile --instance-profile-name ecsInstanceRole-profile

    Exemple de réponse

    { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2022-04-12T23:53:34.093Z", "InstanceProfileName": "ecsInstanceRole-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile" } }
  4. Ajoutez le rôle ecsInstanceRole au profil d’instance ecsInstanceRole-profile.

    aws iam add-role-to-instance-profile \ --instance-profile-name ecsInstanceRole-profile \ --role-name ecsInstanceRole
  5. Associez la politique AmazonEC2ContainerServiceRoleForEC2Role gérée au rôle à l'aide de la commande suivante.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole

Après avoir créé le rôle, ajoutez-y des autorisations supplémentaires pour les fonctionnalités suivantes.

Fonctionnalité

Autorisations supplémentaires

Amazon ECR contient l'image du conteneur

Autorisations Amazon ECR

Demandez à CloudWatch Logs de surveiller les instances de conteneur

Surveillance des autorisations des instances de conteneurs

Fichiers de configuration de l'hôte dans un compartiment Amazon S3

Accès en lecture seule à Amazon S3

Autorisations Amazon ECR

Le rôle d'instance de conteneur Amazon ECS que vous utilisez avec vos instances de conteneur doit disposer des autorisations de politique IAM suivantes pour Amazon ECR.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

Si vous utilisez la stratégie gérée AmazonEC2ContainerServiceforEC2Role pour vos instances de conteneurs, votre rôle possède les autorisations appropriées. Pour vérifier si votre rôle prend en charge Amazon ECR, consultez Rôle IAM d'instance de conteneur Amazon ECS dans le Guide du développeur de service de conteneur Amazon Elastic.

Accès en lecture seule à Amazon S3

Stocker les informations de configuration dans un compartiment privé d'Amazon S3 et accorder un accès en lecture seule au rôle IAM de votre instance de conteneur est un moyen pratique et sécurisé d'autoriser la configuration d'une instance de conteneur au moment du lancement. Vous pouvez stocker une copie de votre ecs.config fichier dans un compartiment privé, utiliser les données utilisateur Amazon EC2 pour l'installer, AWS CLI puis copier vos informations de configuration au /etc/ecs/ecs.config moment du lancement de l'instance.

Pour plus d'informations sur la création d'un fichier ecs.config, son stockage dans Amazon S3 et le lancement d'instances avec cette configuration, veuillez consulter Stockage de la configuration de l'instance de conteneur Amazon ECS dans Amazon S3.

Vous pouvez utiliser la AWS CLI commande suivante pour autoriser l'accès en lecture seule à Amazon S3 pour votre rôle d'instance de conteneur. ecsInstanceRoleRemplacez-le par le nom du rôle que vous avez créé.

aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws::iam::aws:policy/AmazonS3ReadOnlyAccess

Vous pouvez également utiliser la console IAM pour ajouter un accès en lecture seule (AmazonS3ReadOnlyAccess) à Amazon S3 à votre rôle. Pour plus d'informations, consultez la section Modification d'une politique d'autorisations de rôle (console) dans le Guide de AWS Identity and Access Management l'utilisateur.

Surveillance des autorisations des instances de conteneurs

Avant que vos instances de conteneur puissent envoyer des données de journal à CloudWatch Logs, vous devez créer une stratégie IAM pour permettre à vos instances de conteneur d'utiliser les API CloudWatch Logs, puis vous devez associer cette politique àecsInstanceRole.

AWS Management Console
Pour utiliser l'éditeur de politique JSON afin de créer une politique
  1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation de gauche, sélectionnez Policies (Politiques).

    Si vous sélectionnez Politiques pour la première fois, la page Bienvenue dans les politiques gérées s'affiche. Sélectionnez Mise en route.

  3. En haut de la page, sélectionnez Créer une politique.

  4. Dans la section Éditeur de politiques, choisissez l'option JSON.

  5. Entrez le document de politique JSON suivant :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  6. Choisissez Suivant.

    Note

    Vous pouvez basculer à tout moment entre les options des éditeurs visuel et JSON. Toutefois, si vous apportez des modifications ou si vous choisissez Suivant dans l’éditeur visuel, IAM peut restructurer votre politique afin de l’optimiser pour l’éditeur visuel. Pour de plus amples informations, consultez la page Restructuration de politique dans le Guide de l’utilisateur IAM.

  7. Sur la page Vérifier et créer, saisissez un Nom de politique et une Description (facultative) pour la politique que vous créez. Vérifiez les Autorisations définies dans cette politique pour voir les autorisations accordées par votre politique.

  8. Choisissez Create policy (Créer une politique) pour enregistrer votre nouvelle politique.

Après avoir créé la politique, attachez-la au rôle d'instance de conteneur. Pour plus d'informations sur la manière d'associer la politique au rôle, consultez la section Modification d'une politique d'autorisations de rôle (console) dans le Guide de AWS Identity and Access Management l'utilisateur.

AWS CLI
  1. Créez un fichier nommé instance-cw-logs.json avec le contenu suivant.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  2. Utilisez la commande suivante pour créer la stratégie IAM à l'aide du fichier de document de stratégie JSON.

    aws iam create-policy \ --policy-name cwlogspolicy \ --policy-document file://instance-cw-logs.json
  3. Récupérez l'ARN de la politique IAM que vous avez créée à l'aide de la commande suivante. Remplacez cwlogspolicy par le nom de la politique que vous avez créée.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cwlogsppolicy`].Arn'
  4. Utilisez la commande suivante pour associer la politique au rôle IAM de l'instance de conteneur à l'aide de l'ARN de la stratégie.

    aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cwlogspolicy