

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

# Conecte o kubectl a um cluster de EKS criando um arquivo kubeconfig
<a name="create-kubeconfig"></a>

**dica**  
 [Registre-se](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el) para os próximos workshops do Amazon EKS.

Neste tópico, você cria um arquivo `kubeconfig` para o cluster (ou atualiza um existente).

A ferramenta da linha de comando `kubectl` usa informações de configuração em arquivos `kubeconfig` para se comunicar com o servidor de API de um cluster. Para obter mais informações, consulte [Organizando o acesso ao cluster usando arquivos kubeconfig](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/) na documentação do Kubernetes.

O Amazon EKS usa o comando `aws eks get-token` com `kubectl` para autenticação de cluster. Por padrão, a AWS CLI usa as mesmas credenciais que são retornadas com o seguinte comando:

```
aws sts get-caller-identity
```
+ Um cluster existente do Amazon EKS. Para implantar, consulte [Começar a usar o Amazon EKS](getting-started.md).
+ A ferramenta da linha de comando `kubectl` está instalada no seu dispositivo ou no AWS CloudShell. A versão pode ser a mesma ou até uma versão secundária anterior ou posterior à versão do Kubernetes do seu cluster. Por exemplo, se a versão do cluster for a `1.29`, será possível usar o `kubectl` versão `1.28`, `1.29` ou `1.30` com ele. Para instalar ou atualizar o `kubectl`, consulte [Configurar o `kubectl` e o `eksctl`](install-kubectl.md).
+ Versão `2.12.3` ou posterior ou versão `1.27.160` ou posterior da AWS Command Line Interface (AWS CLI) instalada e configurada no seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use `aws --version | cut -d / -f2 | cut -d ' ' -f1`. Os gerenciadores de pacotes, como `yum`, `apt-get` ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte [Installing](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) e [Quick configuration with aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config), no *Guia do usuário da AWS Command Line Interface*. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-lo, consulte [Instalar a AWS CLI no seu diretório pessoal](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software), no * Guia do usuário do AWS CloudShell*.
+ Um usuário ou perfil do IAM com permissão para usar a ação de API `eks:DescribeCluster` para o cluster que você especificar. Para obter mais informações, consulte [Exemplos de políticas baseadas em identidade do Amazon EKS](security-iam-id-based-policy-examples.md). Se você usar uma identidade do seu próprio provedor OpenID Connect para acessar o cluster, consulte [Utilizando kubectl](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-kubectl) na documentação do Kubernetes para criar ou atualizar o arquivo `kube config`.

## Criar arquivo `kubeconfig` automaticamente
<a name="create-kubeconfig-automatically"></a>
+ Versão `2.12.3` ou posterior ou versão `1.27.160` ou posterior da AWS Command Line Interface (AWS CLI) instalada e configurada no seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use `aws --version | cut -d / -f2 | cut -d ' ' -f1`. Os gerenciadores de pacotes, como `yum`, `apt-get` ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte [Installing](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) e [Quick configuration with aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config), no *Guia do usuário da AWS Command Line Interface*. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-lo, consulte [Instalar a AWS CLI no seu diretório pessoal](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software), no * Guia do usuário do AWS CloudShell*.
+ Permissão para usar a ação de API `eks:DescribeCluster` para o cluster que você especificar. Para obter mais informações, consulte [Exemplos de políticas baseadas em identidade do Amazon EKS](security-iam-id-based-policy-examples.md).

  1. Crie um arquivo `kubeconfig` para o cluster. Substitua *region-code* pela região AWS em que seu cluster se encontra e substitua *my-cluster* pelo nome do seu cluster.

     ```
     aws eks update-kubeconfig --region region-code --name my-cluster
     ```

     Por padrão, o arquivo de configuração resultante é criado no caminho padrão do `kubeconfig` (`.kube`) em seu diretório inicial ou mesclado com um `config` existente no local. É possível especificar outro caminho com a opção `--kubeconfig`.

     É possível especificar um ARN de função do IAM com a opção `--role-arn` para uso na autenticação quando você emitir comandos `kubectl`. Caso contrário, será usada a [entidade principal do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) em sua cadeia de credenciais padrão da AWS CLI ou SDK. É possível visualizar sua identidade padrão AWS CLI ou SDK executando o comando `aws sts get-caller-identity`.

     Para obter todas as opções disponíveis, execute o comando `aws eks update-kubeconfig help` ou consulte [update-kubeconfig](https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html) em * AWS CLI Command Reference*.

  1. Teste a configuração.

     ```
     kubectl get svc
     ```

     Veja um exemplo de saída abaixo.

     ```
     NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
     svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m
     ```

     Se você receber qualquer erro de autorização ou de tipo de recurso, consulte [Acesso negado ou não autorizado (`kubectl`)](troubleshooting.md#unauthorized) no tópico de solução de problemas.