

# Permissões necessárias para usar o console do Amazon ECS
<a name="console-permissions"></a>

Ao seguir a prática recomendada de conceder privilégio mínimo, é possível usar a política gerenciada `AmazonECS_FullAccess` como um modelo para criar sua própria política personalizada. Dessa forma, você pode retirar ou adicionar permissões à política gerenciada com base nos seus requisitos específicos. Para obter mais informações, consulte [AmazonECS\$1FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECS_FullAccess.html) na *Referência de políticas gerenciadas pela AWS*.

## Permissões para criar perfis do IAM
<a name="console-create-roles"></a>

As ações a seguir exigem permissões adicionais para concluir a operação:
+ Registro de uma instância externa - para obter mais informações, consulte [Perfil do IAM para o Amazon ECS Anywhere](iam-role-ecsanywhere.md) 
+ Registro de uma definição de tarefa - para obter mais informações, consulte [Função do IAM de execução de tarefas do Amazon ECS](task_execution_IAM_role.md)
+ Criação de uma regra do EventBridge para uso no agendamento de tarefas - para obter mais informações, consulte [Perfil do IAM para EventBridge do Amazon ECS](CWE_IAM_role.md)

É possível adicionar essas permissões criando um perfil no IAM antes de usá-las no console do Amazon ECS. Se você não criar as funções, o console do Amazon ECS as criará em seu nome.

## Permissões necessárias para registrar uma instância externa em um cluster
<a name="register-external-instance"></a>

Você precisa de permissões adicionais ao registrar uma instância externa em um cluster e quiser criar um novo perfil de instância externa (`ecsExternalInstanceRole`). 

As permissões adicionais a seguir são necessárias:
+ `iam`: permite que as entidades principais listem perfis do IAM e suas políticas anexadas. 
  + iam:AttachRolePolicy
  + iam:CreateRole
  + am:CreateInstanceProfile
  + iam:AddRoleToInstanceProfile
  + iam:ListInstanceProfilesForRole
  + iam:GetRole
+ `ssm`: permite que os diretores registrem a instância externa no Systems Manager. 

**nota**  
Para escolher um `ecsExternalInstanceRole` existente, você deve ter as permissões `iam:GetRole` e `iam:PassRole`.

A política a seguir contém as permissões necessárias e limita as ações ao perfil `ecsExternalInstanceRole`. 

------
#### [ JSON ]

****  

```
{
"Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "iam:AttachRolePolicy",
              "iam:CreateRole",
              "iam:CreateInstanceProfile",
              "iam:AddRoleToInstanceProfile",
              "iam:ListInstanceProfilesForRole",
              "iam:GetRole"
          ],
          "Resource": "arn:aws:iam::*:role/ecsExternalInstanceRole"
      },
      {
          "Effect": "Allow",
          "Action": ["iam:PassRole","ssm:CreateActivation"],
          "Resource": "arn:aws:iam::*:role/ecsExternalInstanceRole"
      }
    ]
}
```

------

## Permissões necessárias para registrar uma definição de tarefa
<a name="register-task-def"></a>

Você precisa de permissões adicionais ao registrar uma definição de tarefa e quiser criar um novo perfil de execução de tarefas (`ecsTaskExecutionRole`). 

As permissões adicionais a seguir são necessárias:
+ `iam`: permite que as entidades principais listem perfis do IAM e suas políticas anexadas. 
  + iam:AttachRolePolicy
  + iam:CreateRole
  + iam:GetRole

**nota**  
Para escolher um `ecsTaskExecutionRole` existente, você deve ter a permissão `iam:GetRole`.

A política a seguir contém as permissões necessárias e limita as ações ao perfil `ecsTaskExecutionRole`. 

------
#### [ JSON ]

****  

```
{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetRole"
        ],
        "Resource": "arn:aws:iam::*:role/ecsTaskExecutionRole"
        }
    ]
}
```

------

## Permissões necessárias para usar o Amazon Q Developer para fornecer recomendações no console
<a name="amazon-q-permission"></a>

 Para que o Amazon Q Developer forneça recomendações no Amazon ECS, no console, habilite as permissões corretas do IAM para seu perfil ou usuário do IAM. Você deve ter a permissão `codewhisperer:GenerateRecommendations`.

------
#### [ JSON ]

****  

```
{
"Statement": [
      {
            "Sid": "AmazonQDeveloperPermissions",
            "Effect": "Allow",
            "Action": ["codewhisperer:GenerateRecommendations"],
            "Resource": "*"
        }
    ]
}
```

------

 Para usar o chat em linha no Amazon ECS, no console, habilite as permissões corretas do IAM para seu perfil ou usuário do IAM. Você deve ter a permissão `q:SendMessage`.: 

------
#### [ JSON ]

****  

```
{
"Statement": [
    {
        "Sid": "AmazonQDeveloperInlineChatPermissions",
        "Effect": "Allow",
        "Action": ["q:SendMessage"],
        "Resource": "*"
    }
  ]
}
```

------

## Permissões necessárias para criar uma regra do EventBridge para tarefas agendadas
<a name="schedule-task"></a>

Você precisa de permissões adicionais ao programar uma tarefa e se quiser criar uma novo perfil do CloudWatch Events (`ecsEventsRole`). 

As permissões adicionais a seguir são necessárias:
+ `iam`: permite que as entidades principais criem e listem perfis do IAM e suas políticas associadas, além de permitir que o Amazon ECS passe o perfil para outros serviços assumirem o perfil.

**nota**  
Para escolher um `ecsEventsRole` existente, você deve ter as permissões `iam:GetRole` e `iam:PassRole`.

A política a seguir contém as permissões necessárias e limita as ações ao perfil `ecsEventsRole`. 

------
#### [ JSON ]

****  

```
{
 "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetRole",
            "iam:PassRole"
        ],
        "Resource": "arn:aws:iam::*:role/ecsEventsRole"
        }
    ]
}
```

------

## Permissões necessárias para visualizar implantações de serviço
<a name="service-deployments"></a>

 Ao seguir a prática recomendada de conceder privilégio mínimo, é necessário adicionar permissões adicionais para visualizar implantações de serviço no console.

É necessário ter acesso às seguintes ações:
+ ListServiceDeployments
+ DescribeServiceDeployments
+ DescribeServiceRevisions

É necessário ter acesso aos seguintes recursos:
+ Serviço
+ Implantação de serviços
+ Revisão de serviços

O exemplo de política a seguir contém as permissões necessárias e limita as ações a um serviço especificado. 

Substitua `account`, `cluster-name` e `service-name` por seus próprios valores.

------
#### [ JSON ]

****  

```
{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecs:ListServiceDeployments",
            "ecs:DescribeServiceDeployments",
            "ecs:DescribeServiceRevisions"
        ],
        "Resource": [
            "arn:aws:ecs:us-east-1:123456789012:service/cluster-name/service-name",
            "arn:aws:ecs:us-east-1:123456789012:service-deployment/cluster-name/service-name/*",
            "arn:aws:ecs:us-east-1:123456789012:service-revision/cluster-name/service-name/*"
            ]
        }
   ]
}
```

------

## Permissões necessárias para visualizar os eventos de ciclo de vida do Amazon ECS no Container Insights
<a name="required-permissions-view"></a>

As permissões a seguir são necessárias para visualizar os eventos de ciclo de vida. Adicione as permissões a seguir como uma política em linha ao perfil. Para obter mais informações, consulte [Adicionar e remover políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
+ events:DescribeRule
+ events:ListTargetsByRule
+ logs:DescribeLogGroups

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:DescribeRule",
        "events:ListTargetsByRule",
        "logs:DescribeLogGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Permissões necessárias para habilitar eventos de ciclo de vida do Amazon ECS no Container Insights
<a name="required-permissions-configure"></a>

As seguintes permissões são necessárias para configurar os eventos de ciclo de vida:
+ events:PutRule
+ events:PutTargets
+ logs:CreateLogGroup

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "logs:CreateLogGroup"
      ],
      "Resource": "*"
    }
  ]
}
```

------

# Permissões necessárias para usar o console do Amazon ECS com o CloudFormation
<a name="cloudformation-console-permissions"></a>

Antes de usar o Console de gerenciamento da AWS para criar seus recursos, você precisará ter as permissões corretas do IAM. Para obter informações sobre como configurar primeiro as permissões para o console do Amazon ECS em geral, consulte [Permissões necessárias para o console do Amazon ECS.](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/console-permissions.html)

O console do Amazon ECS é desenvolvido pelo AWS CloudFormation e exige permissões adicionais do IAM nos seguintes casos:
+ Criar um cluster
+ Criar um serviço
+ Criação de um provedor de capacidade

É possível criar uma política para as permissões adicionais e, em seguida, anexá-las ao perfil do IAM que você usa para acessar o console. Para obter mais informações, consulte [Criar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start) no *Guia do usuário do IAM*.

## Permissões necessárias para criar um cluster
<a name="create-cluster"></a>

Ao criar um cluster no console, você precisa de permissões adicionais que concedam permissões para gerenciar pilhas do CloudFormation. 

 As permissões adicionais a seguir são necessárias:
+ `cloudformation`: permite que as entidades principais criem e gerenciem pilhas do CloudFormation. Isso é necessário na criação de clusters do Amazon ECS usando o Console de gerenciamento da AWS e no gerenciamento subsequente destes clusters.
+ `ssm`: permite que o CloudFormation faça referência à AMI otimizada para o Amazon ECS mais recente. Isso é necessário ao criar clusters do Amazon ECS utilizando o Console de gerenciamento da AWS.

A política a seguir contém as permissões CloudFormation necessárias e limita as ações aos recursos criados no console do Amazon ECS.

------
#### [ JSON ]

****  

```
{
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStack*",
                "cloudformation:UpdateStack"
             ],
            "Resource": [
                "arn:*:cloudformation:*:*:stack/Infra-ECS-Cluster-*"
            ]
      },
      {
          "Effect": "Allow",
          "Action": "ssm:GetParameters",
          "Resource": [
            "arn:aws:ssm:*:*:parameter/aws/service/ecs/optimized-ami/amazon-linux-2*/*",
            "arn:aws:ssm:*:*:parameter/aws/service/ecs/optimized-ami/amazon-linux-2023*/*"
          ]
      }
   ]
}
```

------

Se você não criou o perfil de instância de contêiner do Amazon ECS (`ecsInstanceRole`) e está criando um cluster que usa instâncias do Amazon EC2, o console criará o perfil em seu nome.

Além disso, caso use grupos do Auto Scaling, são necessárias permissões adicionais para que o console possa adicionar tags aos grupos do Auto Scaling ao usar o recurso de ajuste de escala automático de cluster.

As permissões adicionais a seguir são necessárias:
+ `autoscaling`: permite que o console atribua tags ao grupo do Amazon EC2 Auto Scaling. Isso é necessário no gerenciamento de grupos do Amazon EC2 Auto Scaling quando for usado o recurso de escalabilidade automática do cluster. A tag é a gerenciada pelo ECS que o console adiciona automaticamente ao grupo para indicar que foi criada no console.
+ `iam`: permite que as entidades principais listem funções do IAM e suas políticas anexadas. As entidades principais também podem listar perfis da instância disponíveis para as instâncias do Amazon EC2.

A política a seguir contém as permissões do IAM necessárias e limita as ações ao perfil `ecsInstanceRole`.

As permissões do Auto Scaling não são limitadas.

------
#### [ JSON ]

****  

```
{
  "Statement": [
      {
          "Effect": "Allow",
            "Action": [
              "iam:AttachRolePolicy",
              "iam:CreateRole",
              "iam:CreateInstanceProfile",
              "iam:AddRoleToInstanceProfile",
              "iam:ListInstanceProfilesForRole",
              "iam:GetRole"
            ],
            "Resource": "arn:aws:iam::*:role/ecsInstanceRole"
        },
        {
            "Effect": "Allow",
            "Action": "autoscaling:CreateOrUpdateTags",
            "Resource": "*"
        }
    ]
}
```

------

## Permissões necessárias para criar um serviço
<a name="create-service-permissions"></a>

Ao criar um serviço no console, você precisa de permissões adicionais que concedam permissões para gerenciar pilhas do CloudFormation. As permissões adicionais a seguir são necessárias:
+ `cloudformation`: permite que as entidades principais criem e gerenciem pilhas do CloudFormation. Isso é necessário na criação de serviços do Amazon ECS usando o Console de gerenciamento da AWS e no gerenciamento subsequente destes serviços.

A política a seguir contém as permissões necessárias e limita as ações aos recursos criados no console do Amazon ECS.

------
#### [ JSON ]

****  

```
{
  "Statement": [
      {
          "Effect": "Allow",
          "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStack*",
                "cloudformation:UpdateStack"
             ],
            "Resource": [
                "arn:*:cloudformation:*:*:stack/ECS-Console-V2-Service-*"
            ]
      }
   ]
}
```

------