Rôle IAM CodeDeploy Amazon ECS - Amazon Elastic Container Service

Rôle IAM CodeDeploy Amazon ECS

Pour que vous puissiez utiliser le type de déploiement bleu/vert CodeDeploy avec Amazon ECS, le service CodeDeploy doit disposer d'autorisations lui permettant de mettre à jour votre service Amazon ECS service en votre nom. Ces autorisations sont fournies par le rôle IAM CodeDeploy (ecsCodeDeployRole).

Note

Les utilisateurs ont également besoin d'autorisations pour utiliser CodeDeploy. Ces autorisations sont décrites dans Autorisations IAM requises.

Deux politiques gérées sont fournies. Pour plus d’informations, consultez l’une des sections suivantes dans le Guide de référence des politiques gérées par AWS.

Création du rôle CodeDeploy

Vous pouvez utiliser les procédures suivantes pour créer un rôle CodeDeploy pour Amazon ECS

AWS Management Console
Pour créer un rôle de service pour CodeDeploy (console IAM)
  1. Connectez-vous à l'AWS Management Console et ouvrez la console IAM à 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 CodeDeploy, puis choisissez le cas d’utilisation CodeDeploy – ECS.

  5. Choisissez Suivant.

  6. Dans la section Attacher des autorisations, assurez-vous que la politique AWSCodeDeployRoleForECS est sélectionnée.

  7. Choisissez Suivant.

  8. Pour Nom du rôle, saisissez ecsCodeDeployRole.

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

AWS CLI

Remplacez chaque user input par vos propres informations.

  1. Créez un fichier nommé codedeploy-trust-policy.json contenant la stratégie d’approbation à utiliser pour le rôle IAM CodeDeploy.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": ["codedeploy.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }
  2. Créez un rôle IAM nommé ecsCodedeployRole à l'aide de la stratégie d'approbation créée à l'étape précédente.

    aws iam create-role \ --role-name ecsCodedeployRole \ --assume-role-policy-document file://codedeploy-trust-policy.json
  3. Attachez la politique gérée AWSCodeDeployRoleForECS ou AWSCodeDeployRoleForECSLimited au rôle ecsTaskRole.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECSLimited

Lorsque les tâches de votre service nécessitent un rôle d’exécution de tâche, vous devez ajouter l’autorisation iam:PassRole pour chaque rôle d’exécution de tâche ou remplacement de rôle de tâche au rôle CodeDeploy en tant que politique.

Autorisations du rôle d’exécution de tâche

Lorsque les tâches de votre service nécessitent un rôle d’exécution de tâche, vous devez ajouter l’autorisation iam:PassRole pour chaque rôle d’exécution de tâche ou remplacement de rôle de tâche au rôle CodeDeploy en tant que politique. Pour plus d’informations, consultez Rôle IAM d'exécution de tâche Amazon ECS et rôle IAM de tâche Amazon ECS. Associez ensuite cette politique au rôle CodeDeploy

Création de la stratégie

AWS Management Console
Pour utiliser l’éditeur de politique JSON afin de créer une politique
  1. Connectez-vous à l’outil AWS Management Console, puis ouvrez la console IAM à 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 politique, choisissez l’option JSON.

  5. Entrez le document de politique JSON suivant :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"] } ] }
  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 plus d’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, associez-la au rôle CodeDeploy. Pour plus d’informations sur la manière d’associer une politique à un rôle, consultez la section Mise à jour des autorisations pour un rôle dans le Guide de l’utilisateur AWS Identity and Access Management.

AWS CLI

Remplacez chaque user input par vos propres informations.

  1. Créez un fichier nommé blue-green-iam-passrole.json avec le contenu suivant.

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["arn:aws:iam::*:role/code-deploy-role"], "Condition": { "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"} } } ] }
  2. Utilisez la commande suivante pour créer la politique IAM à l’aide du fichier de politique JSON.

    aws iam create-policy \ --policy-name cdTaskExecutionPolicy \ --policy-document file://blue-green-iam-passrole.json
  3. Récupérez l’ARN de la politique IAM que vous avez créée à l’aide de la commande suivante.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy`].Arn'
  4. Utilisez la commande suivante pour attacher au rôle IAM la politique d’autorisations.

    aws iam attach-role-policy \ --role-name ecsCodedeployRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy