Função do IAM para CodeDeploy do Amazon ECS
Antes de poder usar o tipo de implantação azul/verde do CodeDeploy com o Amazon ECS, o serviço do CodeDeploy precisa de permissões para atualizar o serviço do Amazon ECS em seu nome. Essas permissões são fornecidas pela função do IAM para CodeDeploy (ecsCodeDeployRole
).
Existem duas políticas gerenciadas fornecidas. Para obter mais informações, consulte um dos tópicos a seguir no AWS Managed Policy Reference Guide:
Criação do perfil do CodeDeploy
Use os procedimentos a seguir para criar um perfil do CodeDeDeploy para o Amazon ECS
- AWS Management Console
-
Para criar o perfil de serviço do CodeDeploy (console do IAM)
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.
-
No painel de navegação do console do IAM, escolha Perfis e, em seguida, Criar perfil.
-
Em Tipo de Entidade Confiável, escolha AWS service (Serviço da AWS).
-
Em Serviço ou caso de uso, escolha CodeDeploy e selecione o caso de uso CodeDeploy: ECS.
-
Escolha Próximo.
-
Na seção Anexar política de permissões, certifique-se de que a política AWSCodeDeployRoleForECS esteja selecionada.
-
Escolha Próximo.
-
Em Nome do perfil, insira ecsCodeDeployRole.
-
Reveja a função e escolha Criar função.
- AWS CLI
-
Substitua cada entrada do usuário
por suas próprias informações.
-
Crie um arquivo denominado codedeploy-trust-policy.json
que contenha a política de confiança a ser usada no perfil do IAM para CodeDeploy.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": ["codedeploy.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
}
-
Crie uma função do IAM denominada ecsCodedeployRole
usando a política de confiança criada na etapa anterior.
aws iam create-role \
--role-name ecsCodedeployRole
\
--assume-role-policy-document file://codedeploy-trust-policy.json
-
Anexe a política gerenciada AWSCodeDeployRoleForECS
ou AWSCodeDeployRoleForECSLimited
ao perfil 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
Quando as tarefas do serviço precisam de um perfil de execução de tarefa, você deve adicionar a permissão iam:PassRole
para cada perfil de execução de tarefa ou de substituição de perfil de tarefa ao perfil do CodeDeploy como uma política.
Permissões do perfil de execução de tarefa
Quando as tarefas do serviço precisam de um perfil de execução de tarefa, você deve adicionar a permissão iam:PassRole
para cada perfil de execução de tarefa ou de substituição de perfil de tarefa ao perfil do CodeDeploy como uma política. Para ter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS e Perfil do IAM para tarefas do Amazon ECS. Depois, você anexa essa política ao perfil do CodeDeploy
Crie a política do
- AWS Management Console
-
Para usar o editor de políticas JSON para criar uma política
Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.
-
No painel de navegação à esquerda, escolha Policies (Políticas).
Se essa for a primeira vez que você escolhe Políticas, a página Bem-vindo às políticas gerenciadas será exibida. Escolha Começar.
-
Na parte superior da página, escolha Criar política.
-
Na seção Editor de políticas, escolha a opção JSON.
-
Insira o seguinte documento de política JSON:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
Escolha Próximo.
É possível alternar entre as opções de editor Visual e JSON a qualquer momento. Porém, se você fizer alterações ou escolher Próximo no editor Visual, o IAM poderá reestruturar a política a fim de otimizá-la para o editor visual. Para obter mais informações, consulte Restruturação de política no Guia do usuário do IAM.
-
Na página Revisar e criar, insira um Nome de política e uma Descrição (opcional) para a política que você está criando. Revise Permissões definidas nessa política para ver as permissões que são concedidas pela política.
-
Escolha Criar política para salvar sua nova política.
Após criar a política, anexe-a ao perfil do CodeDeploy. Para obter informações sobre como anexar uma política a um perfil, consulte Atualizar permissões para um perfil no Guia do usuário do AWS Identity and Access Management.
- AWS CLI
-
Substitua cada entrada do usuário
por suas próprias informações.
-
Crie um arquivo denominado blue-green-iam-passrole.json
com o seguinte conteúdo.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": ["arn:aws:iam::<aws_account_id>:role/<ecsCodeDeployRole>"]
}
]
}
-
Use o comando da a seguir para criar a política do IAM usando o arquivo de documento da política JSON.
aws iam create-policy \
--policy-name cdTaskExecutionPolicy
\
--policy-document file://blue-green-iam-passrole.json
-
Recupere o ARN da política do IAM que você criou usando o comando a seguir.
aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cdTaskExecutionPolicy
`].Arn'
-
Use o comando a seguir para anexar a política ao perfil do IAM para CodeDeploy.
aws iam attach-role-policy \
--role-name ecsCodedeployRole
\
--policy-arn arn:aws:iam:111122223333:aws:policy/cdTaskExecutionPolicy