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).
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)
Connectez-vous à l'AWS Management Console et ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.
-
Dans le volet de navigation de la console IAM, sélectionnez Roles (Rôles), puis Create role (Créer un rôle).
-
Pour Trusted entity (Entité de confiance), choisissez Service AWS.
-
Pour Service ou cas d’utilisation, choisissez CodeDeploy, puis choisissez le cas d’utilisation CodeDeploy – ECS.
-
Choisissez Suivant.
-
Dans la section Attacher des autorisations, assurez-vous que la politique AWSCodeDeployRoleForECS est sélectionnée.
-
Choisissez Suivant.
-
Pour Nom du rôle, saisissez ecsCodeDeployRole.
-
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.
-
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"
}
]
}
-
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
-
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
Connectez-vous à l’outil AWS Management Console, puis ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.
-
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.
-
En haut de la page, sélectionnez Créer une politique.
-
Dans la section Éditeur de politique, choisissez l’option JSON.
-
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>"]
}
]
}
-
Choisissez Suivant.
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.
-
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.
-
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.
-
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"}
}
}
]
}
-
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
-
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'
-
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