

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Etapa 2: criar uma função de serviço para CodeDeploy
<a name="getting-started-create-service-role"></a>

Em AWS, as funções de serviço são usadas para conceder permissões a um AWS serviço para que ele possa acessar AWS recursos. As políticas que você anexa ao perfil de serviço determinam quais recursos o serviço pode acessar e o que ele pode fazer com esses recursos. 

A função de serviço para a qual você cria CodeDeploy deve receber as permissões necessárias para sua plataforma de computação. Se você implantar para mais de uma plataforma de computação, crie um perfil de serviço para cada uma delas. Para adicionar permissões, anexe uma ou mais das seguintes políticas AWS fornecidas:

Para implantações EC2/On-Premises, anexe a política **AWSCodeDeployRole**. Ela fornece as permissões ao perfil de serviço para:
+ Leia as tags nas instâncias ou identifique as instâncias do Amazon EC2 pelos nomes de grupo do Amazon EC2 Auto Scaling.
+ Ler, criar, atualizar e excluir grupos do Amazon EC2 Auto Scaling, ganchos do ciclo de vida e políticas de escalabilidade.
+ Publique informações nos tópicos do Amazon SNS.
+ Recupere informações sobre CloudWatch alarmes.
+ Leia e atualize o Elastic Load Balancing.
**nota**  
 Se criou grupo do Auto Scaling com um modelo de execução, você deverá adicionar as seguintes permissões:   
 `ec2:RunInstances` 
 `ec2:CreateTags` 
 `iam:PassRole` 
Para obter mais informações sobre como criar modelos de execução, consulte [Etapa 2: Criar um perfil de serviço](#getting-started-create-service-role), [Criar um modelo de execução para um grupo do Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) e [Executar suporte de modelo](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-launch-template-permissions.html) no *Guia do usuário do Amazon EC2 Auto Scaling*. 

Para implantações Amazon ECS, se você quiser aceso total aos serviços de suporte, anexe a política **AWSCodeDeployRoleForECS**. Ela fornece as permissões ao perfil de serviço para:
+  Ler, atualizar e excluir conjuntos de tarefas do Amazon ECS. 
+  Atualizar grupos de destino, receptores e regras do Elastic Load Balancing. 
+  Invoque AWS Lambda funções. 
+  Acessar arquivos de revisão em buckets do Amazon S3. 
+  Recupere informações sobre CloudWatch alarmes. 
+ Publique informações nos tópicos do Amazon SNS.

Para implantações Amazon ECS, se você quiser acesso limitado a serviços de suporte, anexe a política **AWSCodeDeployRoleForECSLimited**. Ela fornece as permissões ao perfil de serviço para:
+  Ler, atualizar e excluir conjuntos de tarefas do Amazon ECS. 
+  Recupere informações sobre CloudWatch alarmes. 
+ Publique informações nos tópicos do Amazon SNS.

Para implantações do AWS Lambda, se você quiser permitir a publicação no Amazon SNS, anexe a política. **AWSCodeDeployRoleForLambda** Ela fornece as permissões ao perfil de serviço para:
+  Leia, atualize e invoque AWS Lambda funções e aliases. 
+  Acessar arquivos de revisão em buckets do Amazon S3. 
+  Recupere informações sobre CloudWatch alarmes. 
+  Publique informações nos tópicos do Amazon SNS. 

Para implantações do AWS Lambda, se você quiser limitar o acesso ao Amazon SNS, anexe a política. **AWSCodeDeployRoleForLambdaLimited** Ela fornece as permissões ao perfil de serviço para:
+  Leia, atualize e invoque AWS Lambda funções e aliases. 
+  Acessar arquivos de revisão em buckets do Amazon S3. 
+  Recupere informações sobre CloudWatch alarmes. 

Como parte da configuração do perfil de serviço, você também atualiza seu relacionamento de confiança para especificar os endpoints aos quais deseja conceder acesso.

Você pode criar uma função de serviço com o console do IAM AWS CLI, o ou o IAM APIs.

**Topics**
+ [Criar um perfil de serviço (console)](#getting-started-create-service-role-console)
+ [Criar um perfil de serviço (CLI)](#getting-started-create-service-role-cli)
+ [Obter o ARN do perfil de serviço (console)](#getting-started-get-service-role-console)
+ [Obter o ARN do perfil de serviço (CLI)](#getting-started-get-service-role-cli)

## Criar um perfil de serviço (console)
<a name="getting-started-create-service-role-console"></a>

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis** e **Criar perfil**.

1. Escolha **AWS serviço** e, em **Caso de uso**, na lista suspensa, escolha. **CodeDeploy**

1. Escolha o caso de uso:
   +  Para implantações EC2/locais, escolha. **CodeDeploy** 
   +  **Para implantações do AWS Lambda, escolha Lambda. CodeDeploy ** 
   +  Para implantações do Amazon ECS, escolha **CodeDeploy -** ECS. 

1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, a política de permissões correta para o caso de uso é exibida. Escolha **Próximo**.

1. Na página **Nomear, revisar e criar**, em **Nome do perfil**, insira um nome para o perfil de serviço (por exemplo, **CodeDeployServiceRole**) e escolha **Criar perfil**.

   Você também pode digitar uma descrição para este perfil de serviço na caixa **Descrição do perfil**.

1. Se quiser que esse perfil de serviço tenha permissão para acessar todos os endpoints atualmente com suporte, você concluiu este procedimento.

   Para restringir o acesso desse perfil de serviço a alguns endpoints, continue com as etapas restantes desse procedimento.

1. Procure na lista de perfis e selecione o perfil que você acabou de criar (`CodeDeployServiceRole`).

1. Selecione a guia **Trust relationships (Relações de confiança)**.

1. Selecione **Edit trust policy** (Editar política de confiança).

   Você verá a seguinte política, que fornece permissão ao perfil de serviço para acessar todos os endpoints com suporte:

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "codedeploy.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

   Para conceder ao perfil de serviço acesso a somente alguns endpoints com suporte, substitua o conteúdo da caixa Documento de Política pela política a seguir. Remova as linhas dos endpoints aos quais você deseja impedir o acesso e selecione **Atualizar política**.

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       
                       "codedeploy.us-east-1.amazonaws.com",
                       "codedeploy.us-east-2.amazonaws.com",
                       "codedeploy.us-west-1.amazonaws.com",
                       "codedeploy.us-west-2.amazonaws.com",
                       "codedeploy.ca-central-1.amazonaws.com",
                       "codedeploy.ap-east-1.amazonaws.com",                  
                       "codedeploy.ap-northeast-1.amazonaws.com",
                       "codedeploy.ap-northeast-2.amazonaws.com",
                       "codedeploy.ap-northeast-3.amazonaws.com",
                       "codedeploy.ap-southeast-1.amazonaws.com",
                       "codedeploy.ap-southeast-2.amazonaws.com",
                       "codedeploy.ap-southeast-3.amazonaws.com",
                       "codedeploy.ap-southeast-4.amazonaws.com",
                       "codedeploy.ap-south-1.amazonaws.com",
                       "codedeploy.ap-south-2.amazonaws.com",
                       "codedeploy.ca-central-1.amazonaws.com",
                       "codedeploy.eu-west-1.amazonaws.com",
                       "codedeploy.eu-west-2.amazonaws.com",
                       "codedeploy.eu-west-3.amazonaws.com",
                       "codedeploy.eu-central-1.amazonaws.com",
                       "codedeploy.eu-central-2.amazonaws.com",
                       "codedeploy.eu-north-1.amazonaws.com",
                       "codedeploy.eu-south-1.amazonaws.com",
                       "codedeploy.eu-south-2.amazonaws.com",
                       "codedeploy.il-central-1.amazonaws.com",
                       "codedeploy.me-central-1.amazonaws.com",
                       "codedeploy.me-south-1.amazonaws.com",
                       "codedeploy.sa-east-1.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

Para obter mais informações sobre a criação de funções de serviço, consulte [Como criar uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-creatingrole-service.html) no *Guia do usuário do IAM*.

## Criar um perfil de serviço (CLI)
<a name="getting-started-create-service-role-cli"></a>

1. Na sua máquina de desenvolvimento, crie um arquivo de texto denominado, por exemplo, `CodeDeployDemo-Trust.json`. Esse arquivo é usado para permitir que o CodeDeploy trabalhe em seu nome.

   Execute um destes procedimentos: 
   + Para conceder acesso a todas as AWS regiões suportadas, salve o seguinte conteúdo no arquivo:

     ```
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         "codedeploy.amazonaws.com"
                     ]
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```
   + Para conceder acesso a apenas algumas regiões com suporte, digite o seguinte conteúdo no arquivo e remova as linhas para as regiões às quais você deseja excluir o acesso:

     ```
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         
                         "codedeploy.us-east-1.amazonaws.com",
                         "codedeploy.us-east-2.amazonaws.com",
                         "codedeploy.us-west-1.amazonaws.com",
                         "codedeploy.us-west-2.amazonaws.com",
                         "codedeploy.ca-central-1.amazonaws.com",
                         "codedeploy.ap-east-1.amazonaws.com",                  
                         "codedeploy.ap-northeast-1.amazonaws.com",
                         "codedeploy.ap-northeast-2.amazonaws.com",
                         "codedeploy.ap-northeast-3.amazonaws.com",
                         "codedeploy.ap-southeast-1.amazonaws.com",
                         "codedeploy.ap-southeast-2.amazonaws.com",
                         "codedeploy.ap-southeast-3.amazonaws.com",
                         "codedeploy.ap-southeast-4.amazonaws.com",
                         "codedeploy.ap-south-1.amazonaws.com",
                         "codedeploy.ap-south-2.amazonaws.com",
                         "codedeploy.ca-central-1.amazonaws.com",
                         "codedeploy.eu-west-1.amazonaws.com",
                         "codedeploy.eu-west-2.amazonaws.com",
                         "codedeploy.eu-west-3.amazonaws.com",
                         "codedeploy.eu-central-1.amazonaws.com",
                         "codedeploy.eu-central-2.amazonaws.com",
                         "codedeploy.eu-north-1.amazonaws.com",
                         "codedeploy.eu-south-1.amazonaws.com",
                         "codedeploy.eu-south-2.amazonaws.com",
                         "codedeploy.il-central-1.amazonaws.com",
                         "codedeploy.me-central-1.amazonaws.com",
                         "codedeploy.me-south-1.amazonaws.com",
                         "codedeploy.sa-east-1.amazonaws.com"
                     ]
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```
**nota**  
Não use uma vírgula após o último endpoint na lista.

1. No mesmo diretório, chame o comando **create-role** para criar um perfil de serviço denominado **CodeDeployServiceRole**, com base nas informações do arquivo de texto que você acabou de criar:

   ```
   aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json
   ```
**Importante**  
Não se esqueça de incluir `file://` antes do nome de arquivo. Ele é obrigatório nesse comando.

   Na saída do comando, anote o valor da entrada `Arn` no objeto `Role`. Você precisará disso mais tarde ao criar grupos de implantação. Se você se esquecer do valor, siga as instruções em [Obter o ARN do perfil de serviço (CLI)](#getting-started-get-service-role-cli). 

1. A política gerenciada que você usa depende da plataforma de computação.
   + Se sua implantação é para uma plataforma computacional EC2/On-Premises:

     Chame o comando **attach-role-policy** para dar ao perfil de serviço chamado **CodeDeployServiceRole** as permissões com base na política gerenciada pelo IAM chamada **AWSCodeDeployRole**. Por exemplo:

     ```
     aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
     ```
   + Se sua implantação for em uma plataforma de computação AWS Lambda:

     Chame o comando **attach-role-policy** para conceder ao perfil de serviço chamado **CodeDeployServiceRole** as permissões com base na política gerenciada pelo IAM chamada **AWSCodeDeployRoleForLambda** ou **AWSCodeDeployRoleForLambdaLimited**. Por exemplo:

     ```
     aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda
     ```
   + Se sua implantação é para uma plataforma de computação do Amazon ECS:

     Chame o comando **attach-role-policy** para conceder ao perfil de serviço chamado **CodeDeployServiceRole** as permissões com base na política gerenciada pelo IAM chamada **AWSCodeDeployRoleForECS** ou **AWSCodeDeployRoleForECSLimited**. Por exemplo:

     ```
     aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
     ```

Para obter mais informações sobre a criação de funções de serviço, consulte [Como criar uma função para um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-xacct.html) no *Guia do usuário do IAM*.

## Obter o ARN do perfil de serviço (console)
<a name="getting-started-get-service-role-console"></a>

Para usar o console do IAM para obter o ARN do perfil de serviço:

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**.

1. Na caixa de texto **Filter (Filtro)**, digite **CodeDeployServiceRole** e pressione Enter.

1. Selecione **CodeDeployServiceRole**.

1. Anote o valor do campo **ARN do perfil**.

## Obter o ARN do perfil de serviço (CLI)
<a name="getting-started-get-service-role-cli"></a>

Para usar o AWS CLI para obter o ARN da função de serviço, chame o **get-role** comando na função de serviço chamada: **CodeDeployServiceRole**

```
aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text
```

O valor retornado é o ARN do perfil de serviço.