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.
ECS CodeDeploy IAMRôle Amazon
Avant de pouvoir utiliser le type de déploiement CodeDeploy bleu/vert avec AmazonECS, le CodeDeploy service a besoin d'autorisations pour mettre à jour votre ECS service Amazon en votre nom. Ces autorisations sont fournies par le CodeDeploy IAM rôle (ecsCodeDeployRole
).
Les utilisateurs ont également besoin d'autorisations pour les utiliser CodeDeploy ; ces autorisations sont décrites dansIAMAutorisations requises.
Deux politiques gérées sont fournies. Pour plus d'informations, consultez l'un des articles suivants dans le Guide de référence des politiques AWS gérées :
Création du CodeDeploy rôle
Vous pouvez utiliser les procédures suivantes pour créer un CodeDeploy rôle pour Amazon ECS
- AWS Management Console
-
Pour créer le rôle de service pour CodeDeploy (IAMconsole)
Connectez-vous à la IAM console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/.
-
Dans le volet de navigation de la IAM console, sélectionnez Rôles, puis sélectionnez Créer un rôle.
-
Pour Trusted entity (Entité de confiance), choisissez AWS service.
-
Pour Service ou cas d'utilisation, choisissez CodeDeploy, puis choisissez le cas ECS d'utilisation CodeDeploy -.
-
Choisissez Suivant.
-
Dans la section Joindre une politique d'autorisations, assurez-vous que la AWSCodeDeployRoleForECSstratégie est sélectionnée.
-
Choisissez Suivant.
-
Dans Nom du rôle, entrez ecsCodeDeployRôle.
-
Passez en revue les informations du rôle, puis choisissez Create role (Créer un rôle).
- AWS CLI
-
Tout remplacer user input
avec vos propres informations.
-
Créez un fichier nommé codedeploy-trust-policy.json
contenant la politique de confiance à utiliser pour le CodeDeploy IAM rôle.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": ["codedeploy.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
}
-
Créez un IAM rôle nommé ecsCodedeployRole
à l'aide de la politique de confiance 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 AWSCodeDeployRoleForECS
ou la politique AWSCodeDeployRoleForECSLimited
gérée au ecsTaskRole
rôle.
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âches, vous devez ajouter l'iam:PassRole
autorisation pour chaque rôle d'exécution de tâche ou chaque remplacement de rôle de tâche au CodeDeploy rôle en tant que politique.
Autorisations relatives aux rôles d'exécution des tâches
Lorsque les tâches de votre service nécessitent un rôle d'exécution de tâches, vous devez ajouter l'iam:PassRole
autorisation pour chaque rôle d'exécution de tâche ou chaque remplacement de rôle de tâche au CodeDeploy rôle en tant que politique. Pour plus d’informations, consultez IAMRôle d'exécution des ECS tâches Amazon et IAMRôle de ECS tâche Amazon. Ensuite, vous associez cette politique au CodeDeploy rôle
Création de la stratégie
- AWS Management Console
-
Pour utiliser l'éditeur JSON de stratégie pour créer une stratégie
Connectez-vous à la IAM console AWS Management Console et ouvrez-la à 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 politiques, choisissez l'JSONoption.
-
Entrez le document JSON de politique 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 entre les options Visual et celles de JSONl'éditeur à tout moment. Toutefois, si vous apportez des modifications ou si vous choisissez Suivant dans l'éditeur visuel, vous IAM pouvez restructurer votre politique afin de l'optimiser pour l'éditeur visuel. Pour plus d'informations, consultez la section Restructuration des politiques dans le guide de IAM l'utilisateur.
-
Sur la page Vérifier et créer, tapez 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 stratégie, associez-la au CodeDeploy rôle. 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
-
Tout remplacer user input
avec vos propres informations.
-
Créez un fichier nommé blue-green-iam-passrole.json
avec le contenu suivant.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
Utilisez la commande suivante pour créer la IAM politique à l'aide du fichier du document de JSON stratégie.
aws iam create-policy \
--policy-name cdTaskExecutionPolicy
\
--policy-document file://blue-green-iam-passrole.json
-
Récupérez ARN la IAM politique 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 associer la politique au CodeDeploy IAM rôle.
aws iam attach-role-policy \
--role-name ecsCodedeployRole
\
--policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy