

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

# Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes
<a name="grant-k8s-access"></a>

O cluster conta com um endpoint de API do Kubernetes. O Kubectl usa essa API. Você pode se autenticar nessa API usando dois tipos de identidades:
+  **Uma *entidade principal* (perfil ou usuário) do AWS Identity and Access Management (IAM)**: esse tipo requer autenticação no IAM. Os usuários podem fazer login na AWS como um usuário do [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ou com uma [identidade](https://aws.amazon.com/identity/federation/) federada ao usar credenciais fornecidas por meio de uma fonte de identidades. Os usuários só poderão fazer login com uma identidade federada se o administrador tiver configurado a federação de identidades anteriormente usando perfis do IAM. Quando os usuários acessam a AWS usando a federação, estão indiretamente [assumindo um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/when-to-use-iam.html#security-iam-authentication-iamrole). Quando os usuários usam esse tipo de identidade, você:
  + Pode atribuir permissões do Kubernetes a eles para que possam trabalhar com objetos do Kubernetes no cluster. Para obter mais informações sobre como atribuir permissões às entidades principais do IAM para que elas possam acessar objetos do Kubernetes no seu cluster, consulte [Conceder aos usuários do IAM acesso ao Kubernetes com entradas de acesso ao EKS](access-entries.md).
  + Pode atribuir a eles permissões de IAM para que possam trabalhar com seu cluster do Amazon EKS e seus recursos usando a API do Amazon EKS, AWS CLI, AWS CloudFormation, Console de gerenciamento da AWS ou `eksctl`. Para obter mais informações, consulte [Ações definidas pelo Amazon Elastic Kubernetes Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions) na Referência de autorização do serviço.
  + Os nós se juntam ao seu cluster assumindo um perfil do IAM. A capacidade de acessar seu cluster usando princípios de IAM é fornecida pelo [AWS IAM Authenticator for Kubernetes](https://github.com/kubernetes-sigs/aws-iam-authenticator#readme), que é executado no ambiente de gerenciamento do Amazon EKS.
+  **Um usuário em seu próprio provedor OpenID Connect (OIDC)**: este tipo requer autenticação em seu provedor [OIDC](https://openid.net/connect/). Para obter mais informações sobre como configurar o seu próprio provedor OIDC com o cluster do Amazon EKS, consulte [Conceder aos usuários acesso ao Kubernetes com um provedor OIDC externo](authenticate-oidc-identity-provider.md). Quando os usuários usam esse tipo de identidade, você:
  + Pode atribuir permissões do Kubernetes a eles para que possam trabalhar com objetos do Kubernetes no cluster.
  + Não é possível atribuir a eles permissões de IAM para que possam trabalhar com seu cluster do Amazon EKS e seus recursos usando a API do Amazon EKS, AWS CLI, AWS CloudFormation, Console de gerenciamento da AWS ou `eksctl`.

Você pode usar os dois tipos de identidades com seu cluster. Não é possível desabilitar o método de autenticação do IAM. O método de autenticação OIDC é opcional.

## Associe identidades do IAM a permissões do Kubernetes
<a name="authentication-modes"></a>

O [Autenticador AWS IAM para Kubernetes](https://github.com/kubernetes-sigs/aws-iam-authenticator#readme) está instalado no ambiente de gerenciamento do seu cluster. Ele habilita as entidades principais (perfis e usuários) do [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) (IAM) que você permite acessar os recursos do Kubernetes no seu cluster. É possível permitir que entidades principais do IAM acessem objetos do Kubernetes no seu cluster usando um dos seguintes métodos:
+  **Criação de entradas de acesso**: se o cluster for igual ou posterior à versão da plataforma listada na seção [Pré-requisitos](access-entries.md) da versão do Kubernetes do cluster, recomendamos que você use essa opção.

  Use *entradas de acesso* para gerenciar as permissões do Kubernetes das entidades principais do IAM de fora do cluster. Você pode adicionar e gerenciar o acesso ao cluster usando a API do EKS, a interface de linha de comando AWS, os SDKs AWS, o AWS CloudFormation e o Console de gerenciamento da AWS. Isso significa que você pode gerenciar usuários com as mesmas ferramentas com as quais criou o cluster.

  Para começar, siga as instruções em [Alterar o modo de autenticação para usar entradas de acesso](setting-up-access-entries.md) e, em seguida, [Migrar entradas existentes do ConfigMap aws-auth para entradas de acesso](migrating-access-entries.md).
+  **Adicionar entradas ao `ConfigMap` `aws-auth`**: se a versão da plataforma do cluster for anterior à versão listada na seção [Pré-requisitos](access-entries.md), você deverá usar esta opção. Se a versão da plataforma do cluster for igual ou posterior à versão da plataforma listada na seção [Pré-requisitos](access-entries.md) da versão do Kubernetes do cluster e você tiver adicionado entradas ao `ConfigMap`, recomendamos que migre essas entradas para entradas de acesso. No entanto, você não pode migrar entradas que o Amazon EKS adicionou ao `ConfigMap`, como entradas para perfis do IAM usadas com grupos de nós gerenciados ou perfis do Fargate. Para obter mais informações, consulte [Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes](#grant-k8s-access).
  + Caso precise usar a opção do `aws-auth` `ConfigMap`, você poderá adicionar entradas ao `ConfigMap` usando o comando `eksctl create iamidentitymapping`. Para obter mais informações, consulte [Gerenciar usuários e perfis do IAM](https://eksctl.io/usage/iam-identity-mappings/) na documentação do `eksctl`.

## Definir modo de autenticação do cluster
<a name="set-cam"></a>

Cada cluster tem um *modo de autenticação*. O modo de autenticação determina quais métodos você pode usar para permitir que as entidades principais do IAM acessem os objetos do Kubernetes no seu cluster. Existem três modos de autenticação.

**Importante**  
Depois que o método de entrada de acesso estiver habilitado, ele não poderá ser desabilitado.  
Se o método `ConfigMap` não for habilitado durante a criação do cluster, ele não poderá ser habilitado posteriormente. Todos os clusters criados antes da introdução das entradas de acesso têm o método `ConfigMap` habilitado.  
Caso esteja usando nós híbridos com o cluster, você deverá usar os modos de autenticação de `API` ou `API_AND_CONFIG_MAP` do cluster.

 **O`aws-auth` `ConfigMap` dentro do cluster**   
Este é o modo de autenticação original para clusters do Amazon EKS. A entidade principal do IAM que criou o cluster é o usuário inicial que pode acessar o cluster usando `kubectl`. O usuário inicial deve adicionar outros usuários à lista no `aws-auth` `ConfigMap` e atribuir permissões que afetem os outros usuários dentro do cluster. Os outros usuários não podem gerenciar nem remover o usuário inicial, pois não há uma entrada no `ConfigMap` para gerenciar.

 **Tanto as entradas do `ConfigMap` quanto as de acesso**   
Com este modo de autenticação, é possível usar os dois métodos para adicionar entidades principais do IAM ao cluster. Observe que cada método armazena entradas separadas; por exemplo, se você adicionar uma entrada de acesso pela AWS CLI, o `aws-auth` `ConfigMap` não será atualizado.

 **Somente entradas de acesso**   
Com esse modo de autenticação, você pode usar a API do EKS, a AWS Command Line Interface, SDKs AWS, o AWS CloudFormation e o Console de gerenciamento da AWS para gerenciar o acesso ao cluster para as entidades principais do IAM.  
Cada entrada de acesso tem um *tipo* e você pode usar a combinação de um *escopo de acesso* para limitar a entidade principal a um namespace específico e uma *política de acesso* para definir políticas de permissões reutilizáveis pré-configuradas. Como alternativa, você pode usar o tipo STANDARD e grupos de RBAC do Kubernetes para atribuir permissões personalizadas.


| Modos de autenticação | Métodos | 
| --- | --- | 
|  Somente `ConfigMap` (`CONFIG_MAP`) |  `aws-auth` `ConfigMap`  | 
| API do EKS e `ConfigMap` (`API_AND_CONFIG_MAP`) | entradas de acesso na API do EKS, na interface de linha de comando AWS, nos SDKs da AWS, no AWS CloudFormation e no Console de gerenciamento da AWS e `aws-auth` `ConfigMap`  | 
| Somente API do EKS (`API`) | entradas de acesso na API do EKS, na interface de linha de comando AWS, nos SDKs da AWS, no AWS CloudFormation e no Console de gerenciamento da AWS  | 

**nota**  
O Modo Automático do Amazon EKS requer entradas de acesso.