

 **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.

# Exemplos de políticas baseadas em identidade do Amazon EKS
<a name="security-iam-id-based-policy-examples"></a>

Por padrão, os usuários e as funções do IAM não têm permissão para criar ou modificar recursos do Amazon EKS. Eles também não podem executar tarefas usando o Console de gerenciamento da AWS, a CLI da AWS ou a API da AWS. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e perfis permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

Para saber como criar uma política baseada em identidade do IAM utilizando esses exemplos de documentos de política JSON, consulte [Criar políticas na guia JSON ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Guia do usuário do IAM*.

Quando você cria um cluster do Amazon EKS, a [entidade principal do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) que cria o cluster, recebe automaticamente permissões `system:masters` na configuração de controle de acesso baseado em perfil (RBAC) no ambiente de gerenciamento do Amazon EKS. Como essa entidade principal não é exibida em nenhuma configuração visível, mantenha o controle de qual entidade principal criou o cluster originalmente. Para conceder a outras entidades principais do IAM a capacidade de interagir com o cluster, edite o `aws-auth ConfigMap` no Kubernetes e crie um `rolebinding` ou `clusterrolebinding` do Kubernetes com o nome de um `group` especificado no `aws-auth ConfigMap`.

Para obter mais informações sobre como trabalhar com o ConfigMap, consulte [Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes](grant-k8s-access.md).

**Topics**
+ [Práticas recomendadas de política](#security-iam-service-with-iam-policy-best-practices)
+ [Usar o console do Amazon EKS](#security-iam-id-based-policy-examples-console)
+ [Permitir que os usuários do IAM visualizem suas próprias permissões](#security-iam-id-based-policy-examples-view-own-permissions)
+ [Crie um cluster do Kubernetes na Nuvem AWS](#policy-create-cluster)
+ [Criar um cluster local do Kubernetes em um Outpost](#policy-create-local-cluster)
+ [Atualizar um cluster do Kubernetes](#policy-example1)
+ [Listar ou descrever todos os clusters](#policy-example2)

## Práticas recomendadas de política
<a name="security-iam-service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Amazon EKS em sua conta. Essas ações podem incorrer em custos para sua conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+  **Comece a usar as políticas gerenciadas do AWS e avance para as permissões de privilégios mínimos** - Para começar a conceder permissões aos seus usuários e workloads, use as * políticas gerenciadas do AWS* que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis em sua conta AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente da AWS que são específicas para seus casos de uso. Para obter mais informações, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+  **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para obter mais informações sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+  **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso a ações de serviço se elas forem usadas por meio de um serviço específico do AWS, como o AWS CloudFormation. Para obter mais informações, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+  **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de 100 verificações de política e recomendações acionáveis para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do usuário do IAM*.
+  **Exigir autenticação multifator (MFA)** - se você tiver um cenário que exija usuários do IAM ou um usuário raiz na sua conta AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para obter mais informações, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do usuário do IAM*.

Para obter mais informações sobre as práticas recomendadas do IAM, consulte [Práticas Recomendadas de Segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Usar o console do Amazon EKS
<a name="security-iam-id-based-policy-examples-console"></a>

Para acessar o console da Amazon EKS, uma [entidade principal do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) deve ter um conjunto mínimo de permissões. Essas permissões devem garantir à entidade principal concessão para visualizar os detalhes sobre os recursos da Amazon EKS na sua conta da AWS. Se você criar uma política baseada em identidade que seja mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para as entidades principais com essa política anexada.

Para garantir que as entidades principais do IAM ainda possam usar o console do Amazon EKS, crie uma política com seu próprio nome exclusivo, como `AmazonEKSAdminPolicy`. Anexe a política às entidades principais. Para obter mais informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*.

**Importante**  
A política de exemplo a seguir permite que uma entidade principal visualize informações na guia **Configuração** do console. Para visualizar as informações nas guias **Visão geral** e **Recursos** no Console de gerenciamento da AWS, a entidade principal também precisa de permissões do Kubernetes. Para obter mais informações, consulte [Permissões obrigatórias](view-kubernetes-resources.md#view-kubernetes-resources-permissions).

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "eks.amazonaws.com"
                }
            }
        }
    ]
}
```

Não é necessário permitir permissões mínimas de console para os diretores que fazem chamadas apenas para a AWS CLI ou para a API da AWS. Em vez disso, permita o acesso somente às ações que correspondem à operação da API que você está tentando executar.

## Permitir que os usuários do IAM visualizem suas próprias permissões
<a name="security-iam-id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou de forma programática usando a AWS CLI ou a API da AWS.

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Crie um cluster do Kubernetes na Nuvem AWS
<a name="policy-create-cluster"></a>

Esta política de exemplo inclui as permissões mínimas necessárias para criar um cluster do Amazon EKS chamado {{my-cluster}} na região {{us-west-2}} AWS. Você pode substituir a região da AWS pela região da AWS na qual deseja criar um cluster. Se você receber um aviso informando que **As ações na sua política não são compatíveis com permissões em nível de recurso e exigem que você escolha `All resources`** no Console de gerenciamento da AWS, é possível ignorá-lo com segurança. Se sua conta já tiver o perfil {{AWSServiceRoleForAmazonEKS}}, você poderá remover a ação `iam:CreateServiceLinkedRole` da política. Se você já tiver criado um cluster do Amazon EKS em sua conta, esse perfil já existirá, a menos que você o tenha excluído.

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "eks:CreateCluster",
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "iam:AWSServiceName": "eks"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/cluster-role-name"
        }
    ]
}
```

## Criar um cluster local do Kubernetes em um Outpost
<a name="policy-create-local-cluster"></a>

Essa política de exemplo inclui as permissões mínimas necessárias para criar um cluster local do Amazon EKS chamado {{my-cluster}} em um Outpost na região {{us-west-2}} da AWS. Você pode substituir a região da AWS pela região da AWS na qual deseja criar um cluster. Se você receber um aviso informando que **As ações na sua política não são compatíveis com permissões em nível de recurso e exigem que você escolha `All resources`** no Console de gerenciamento da AWS, é possível ignorá-lo com segurança. Se sua conta já tiver o perfil `AWSServiceRoleForAmazonEKSLocalOutpost`, você poderá remover a ação `iam:CreateServiceLinkedRole` da política. Se você já tiver criado um cluster local do Amazon EKS na sua conta, esse perfil já existirá, a menos que você o tenha excluído.

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "eks:CreateCluster",
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"
        },
        {
            "Action": [
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "iam:GetRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/outposts.eks-local.amazonaws.com/AWSServiceRoleForAmazonEKSLocalOutpost"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iam:ListAttachedRolePolicies"
            ],
            "Resource": "arn:aws:iam::111122223333:role/cluster-role-name"
        },
        {
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:TagInstanceProfile",
                "iam:AddRoleToInstanceProfile",
                "iam:GetInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile"
            ],
            "Resource": "arn:aws:iam::*:instance-profile/eks-local-*",
            "Effect": "Allow"
        }
    ]
}
```

## Atualizar um cluster do Kubernetes
<a name="policy-example1"></a>

Este exemplo de política inclui a permissão mínima necessária para atualizar um cluster chamado {{my-cluster}} na região us-west-2 AWS.

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "eks:UpdateClusterVersion",
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"
        }
    ]
}
```

## Listar ou descrever todos os clusters
<a name="policy-example2"></a>

Este exemplo de política inclui as permissões mínimas necessárias para listar e descrever todos os clusters na sua conta. Uma [entidade principal do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) deve ser capaz de listar e descrever clusters para usar o comando `update-kubeconfig` da AWS CLI.

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster",
                "eks:ListClusters"
            ],
            "Resource": "*"
        }
    ]
}
```