

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Perfil do IAM do cluster do Modo Automático do Amazon EKS
<a name="auto-cluster-iam-role"></a>

É necessário um perfil do IAM de cluster do Amazon EKS para cada cluster. Os clusters do Kubernetes gerenciados pelo Amazon EKS usam esse perfil para automatizar tarefas de rotina de armazenamento, rede e ajuste de escala automático de computação.

Antes de criar clusters do Amazon EKS, é necessário criar um perfil do IAM com as políticas necessárias a seguir do Modo Automático do EKS. Você pode anexar as políticas gerenciadas pelo AWS IAM sugeridas ou criar políticas personalizadas com permissões equivalentes.
+  [AmazonEKSComputePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSComputePolicy) 
+  [AmazonEKSBlockStoragePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSBlockStoragePolicy) 
+  [AmazonEKSLoadBalancingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy) 
+  [AmazonEKSNetworkingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSNetworkingPolicy) 
+  [AmazonEKSClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksclusterpolicy) 

## Tags da AWS personalizadas para recursos do Modo Automático do EKS.
<a name="tag-prop"></a>

Por padrão, as políticas gerenciadas relacionadas ao Modo Automático do EKS não permitem a aplicação de tags definidas pelo usuário aos recursos da AWS provisionados pelo Modo Automático. Caso queira aplicar tags definidas pelo usuário aos recursos da AWS, você deverá anexar permissões adicionais ao perfil do IAM do cluster com permissões suficientes para criar e modificar tags nos recursos da AWS. Segue abaixo um exemplo de uma política que permitirá acesso irrestrito à marcação:

### Visualizar exemplo de política de tags personalizadas
<a name="auto-tag-policy"></a>

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Compute",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateFleet",
                "ec2:RunInstances",
                "ec2:CreateLaunchTemplate"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                },
                "StringLike": {
                    "aws:RequestTag/eks:kubernetes-node-class-name": "*",
                    "aws:RequestTag/eks:kubernetes-node-pool-name": "*"
                }
            }
        },
        {
            "Sid": "Storage",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume",
                "ec2:CreateSnapshot"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*:*:snapshot/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        },
        {
            "Sid": "Networking",
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterface",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                },
                "StringLike": {
                    "aws:RequestTag/eks:kubernetes-cni-node-name": "*"
                }
            }
        },
        {
            "Sid": "LoadBalancer",
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:CreateLoadBalancer",
                "elasticloadbalancing:CreateTargetGroup",
                "elasticloadbalancing:CreateListener",
                "elasticloadbalancing:CreateRule",
                "ec2:CreateSecurityGroup"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        },
        {
            "Sid": "ShieldProtection",
            "Effect": "Allow",
            "Action": [
                "shield:CreateProtection"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        },
        {
            "Sid": "ShieldTagResource",
            "Effect": "Allow",
            "Action": [
                "shield:TagResource"
            ],
            "Resource": "arn:aws:shield::*:protection/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}"
                }
            }
        }
    ]
}
```

## Verificar se há um perfil de cluster existente
<a name="auto-cluster-iam-role-check"></a>

É possível usar o procedimento a seguir para verificar se a conta já tem o perfil do cluster do Amazon EKS.

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

1. No painel de navegação à esquerda, escolha **Funções**.

1. Pesquise na lista de perfis `AmazonEKSAutoClusterRole`. Se um perfil que inclua `AmazonEKSAutoClusterRole` não existir, consulte as instruções na próxima seção para criar o perfil. Se houver um perfil que inclua `AmazonEKSAutoClusterRole`, selecione-a para visualizar as políticas anexadas.

1. Escolha **Permissões**.

1. Verifique se a política gerenciada **AmazonEKSClusterPolicy** está anexada ao perfil. Se a política estiver anexada, o perfil do cluster do Amazon EKS foi configurado corretamente.

1. Escolha **Trust relationships** (Relacionamentos de confiança) e, em seguida, escolha **Edit trust policy** (Editar política de confiança).

1. Verifique se o relacionamento de confiança contém a seguinte política: Se o relacionamento de confiança corresponder à seguinte política, escolha **Cancel** (Cancelar). Se o relacionamento de confiança não corresponder, copie a política para a janela **Edit trust policy** (Editar política de confiança) e escolha **Update policy** (Atualizar política).

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

**nota**  
 A AWS não exige o nome `AmazonEKSAutoClusterRole` para esse perfil.

## Criar um perfil para o cluster do Amazon EKS
<a name="auto-cluster-iam-role-create"></a>

Você pode usar o Console de gerenciamento da AWS ou a CLI AWS para criar o perfil de cluster.

### Console de gerenciamento da AWS
<a name="auto-cluster-iam-role-console"></a>

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

1. Escolha **Perfis** e, em seguida, **Criar perfil**.

1. Em **Tipo de entidade confiável**, selecione **Serviço da AWS**.

1. Na lista suspensa **Casos de uso para outros serviços AWS**, escolha **EKS**.

1. Escolha **EKS - Cluster** para o caso de uso e escolha **Next** (Próximo).

1. Na guia **Adicionar permissões**, selecione as políticas e escolha **Próximo**.
   +  [AmazonEKSComputePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSComputePolicy) 
   +  [AmazonEKSBlockStoragePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSBlockStoragePolicy) 
   +  [AmazonEKSLoadBalancingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSLoadBalancingPolicy) 
   +  [AmazonEKSNetworkingPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonEKSNetworkingPolicy) 
   +  [AmazonEKSClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksclusterpolicy) 

1. Em **Nome do perfil**, insira um nome exclusivo para o perfil, como `AmazonEKSAutoClusterRole`.

1. Em **Description** (Descrição), insira um texto descritivo, como `Amazon EKS - Cluster role`.

1. Selecione **Criar perfil**.

### AWS CLI
<a name="auto-cluster-iam-role-cli"></a>

1. Copie o conteúdo a seguir em um arquivo chamado {{cluster-trust-policy.json}}.

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

1. Crie a função. Você pode substituir {{AmazonEKSAutoClusterRole}} por qualquer nome que desejar.

   ```
   aws iam create-role \
     --role-name AmazonEKSAutoClusterRole \
     --assume-role-policy-document file://"cluster-trust-policy.json"
   ```

1. Anexe as políticas do IAM necessárias ao perfil:

 **AmazonEKSClusterPolicy**:

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
```

 **AmazonEKSComputePolicy**:

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEKSComputePolicy
```

 **AmazonEKSBlockStoragePolicy**:

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy
```

 **AmazonEKSLoadBalancingPolicy**:

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy
```

 **AmazonEKSNetworkingPolicy**:

```
aws iam attach-role-policy \
    --role-name AmazonEKSAutoClusterRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy
```