

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

# Endpoint do servidor de API do cluster
<a name="cluster-endpoint"></a>

Este tópico ajuda a habilitar o acesso privado ao endpoint do servidor de API do Kubernetes do cluster do Amazon EKS e limitar ou desabilitar completamente o acesso público pela internet.

Quando você cria um cluster, o Amazon EKS cria um endpoint para o servidor gerenciado de API do Kubernetes usado para se comunicar com o cluster (usando as ferramentas de gerenciamento do Kubernetes, como `kubectl`). Por padrão, esse endpoint do servidor de API é público para a internet, e o acesso ao servidor de API é protegido usando uma combinação do AWS Identity and Access Management (IAM) e do [Role Based Access Control](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) (RBAC) nativo do Kubernetes. Esse endpoint é conhecido como o *endpoint de cluster público*. Também há um *endpoint de cluster privado*. Para obter mais informações sobre o endpoint privado do cluster, consulte a seção apresentada a seguir [Endpoint privado do cluster](#cluster-endpoint-private).

## Formato de endpoint de cluster `IPv6`
<a name="cluster-endpoint-ipv6"></a>

O EKS cria um endpoint exclusivo de pilha dupla no seguinte formato para novos clusters `IPv6` criados após outubro de 2024. Um *cluster IPv6* é um cluster que você seleciona `IPv6` na configuração da família de IP (`ipFamily`) do cluster.

**Example**  
Endpoint público/privado do cluster do EKS: `eks-cluster.region.api.aws` 
Endpoint público/privado do cluster do EKS: `eks-cluster.region.api.aws` 
Endpoint público/privado do cluster do EKS: `eks-cluster---region---api.amazonwebservices.com.rproxy.govskope.ca.cn` 

**nota**  
O endpoint de cluster de pilha dupla foi introduzido em outubro de 2024. Para obter mais informações sobre clusters `IPv6`, consulte [Saiba mais sobre endereços IPv6 para clusters, pods e serviços](cni-ipv6.md). Clusters criados antes de outubro de 2024 devem usar o seguinte formato de endpoint.

## Formato de endpoint de cluster `IPv4`
<a name="cluster-endpoint-ipv4"></a>

O EKS cria um endpoint exclusivo no formato a seguir para cada cluster que seleciona `IPv4` na configuração da família de IP (ipFamily) do cluster:

**Example**  
Endpoint público/privado do cluster EKS `eks-cluster.region.eks.amazonaws.com` 
Endpoint público/privado do cluster EKS `eks-cluster.region.eks.amazonaws.com` 
Endpoint público/privado do cluster EKS `eks-cluster---region.amazonwebservices.com.rproxy.govskope.ca.cn` 

**nota**  
Antes de outubro de 2024, os clusters `IPv6` também usavam esse formato de endpoint. Para eles, tanto o endpoint público quanto o privado têm apenas endereços `IPv4` resolvidos a partir desse endpoint.

## Endpoint privado do cluster
<a name="cluster-endpoint-private"></a>

Você pode habilitar o acesso privado ao servidor de API do Kubernetes para que todas as comunicações entre os nós e o servidor de API fiquem na VPC. Você pode limitar os endereços IP que podem acessar o servidor de API pela Internet ou desativar completamente o acesso à Internet para o servidor de API.

**nota**  
Como esse endpoint é para o servidor de API do Kubernetes e não um endpoint tradicional do AWS PrivateLink para se comunicar com uma API da AWS, ele não aparece como um endpoint no console da Amazon VPC.

Ao ativar o acesso privado ao endpoint para o cluster, o Amazon EKS cria uma zona hospedada privada do Route 53 em seu nome e a associa à VPC do cluster. Essa zona hospedada privada é gerenciada pelo Amazon EKS e não aparece nos recursos do Route 53 da sua conta. Para que a zona hospedada privada roteie o tráfego adequadamente para o seu servidor da API, a VPC deve ter `enableDnsHostnames` e `enableDnsSupport` definidos como `true`, e o conjunto de opções DHCP para sua VPC deve incluir `AmazonProvidedDNS` na lista de servidores de nome de domínio. Para obter mais informações, consulte [Updating DNS support for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-updating) (Atualizar o suporte de DNS para VPC) no *Manual do usuário da Amazon VPC*.

É possível definir os requisitos de acesso ao endpoint do servidor de API ao criar um cluster, e você pode atualizar o acesso ao endpoint do servidor de API para um cluster a qualquer momento.

## Modificar o acesso ao endpoint do cluster
<a name="modify-endpoint-access"></a>

Use os procedimentos desta seção para modificar o acesso ao endpoint para um cluster existente. A tabela a seguir mostra as combinações compatíveis de acesso ao endpoint do servidor de API e seus comportamentos associados.


| Acesso público ao endpoint | Acesso privado ao endpoint | Comportamento | 
| --- | --- | --- | 
|  Habilitado  |  Desabilitado  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/eks/latest/userguide/cluster-endpoint.html)  | 
|  Habilitado  |  Habilitado  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/eks/latest/userguide/cluster-endpoint.html)  | 
|  Desabilitado  |  Habilitado  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/eks/latest/userguide/cluster-endpoint.html)  | 

 **Controles de acesso ao endpoint** 

Lembre-se de que cada um dos métodos apresentados a seguir para controle de acesso ao endpoint afeta somente o respectivo endpoint.

 *Security group de cluster*   
O grupo de segurança do cluster controla dois tipos de conexões, as conexões com a *API do kubelet* e o endpoint privado. As conexões com a API do `kubelet` são usadas nos comandos `kubectl attach`, `kubectl cp`, `kubectl exec`, `kubectl logs` e `kubectl port-forward`. O grupo de segurança do cluster não tem impacto sobre o endpoint público.

 *Blocos CIDR de acesso público*   
Os *CIDRs de acesso público* controlam o acesso ao endpoint público por meio de uma lista de blocos CIDR. Lembre-se de que os blocos CIDR de acesso público não têm impacto no endpoint privado. Os CIDRs de acesso público comportam-se de forma diferente nos clusters `IPv6` e clusters `IPv4`, dependendo da data em que foram criados, conforme descrito a seguir:

 **Blocos CIDR no endpoint público (cluster `IPv6`)** 

Você pode adicionar blocos CIDR `IPv6` e `IPv4` ao endpoint público de um cluster `IPv6`, porque o endpoint público é de pilha dupla. Isso só se aplica a novos clusters com o `ipFamily` definido como `IPv6` que você criou em outubro de 2024 ou posteriormente. Você pode identificar esses clusters pelo novo nome de domínio do endpoint `api.aws`.

 **Blocos CIDR no endpoint público (cluster `IPv4`)** 

Você pode adicionar blocos CIDR `IPv4` ao endpoint público de um cluster `IPv4`. Você não pode adicionar blocos CIDR `IPv6` ao endpoint público de um cluster `IPv4`. Se você tentar, o EKS retornará a seguinte mensagem de erro: `The following CIDRs are invalid in publicAccessCidrs` 

 **Blocos CIDR no endpoint público (cluster `IPv6` criado antes de outubro de 2024)** 

Você pode adicionar blocos CIDR `IPv4` ao endpoint público dos clusters `IPv6` antigos que você criou antes de outubro de 2024. Você pode identificar esses clusters pelo endpoint `eks.amazonaws.com`. Você não pode adicionar blocos CIDR `IPv6` ao endpoint público desses clusters `IPv6` antigos que você criou antes de outubro de 2024. Se você tentar, o EKS retornará a seguinte mensagem de erro: `The following CIDRs are invalid in publicAccessCidrs` 

## Acessar um servidor de API somente privado
<a name="private-access"></a>

Se tiver desabilitado o acesso público do endpoint do servidor de API do Kubernetes do cluster, você só poderá acessar o servidor de API pela VPC ou por uma [rede conectada](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html). Veja a seguir algumas maneiras possíveis de acessar o endpoint do servidor de API do Kubernetes:

 **Rede conectada**   
Conecte a sua rede à VPC com um [gateway de trânsito da AWS](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) ou outra opção de [conectividade](https://docs.aws.amazon.com/aws-technical-content/latest/aws-vpc-connectivity-options/introduction.html) e depois use um computador na rede conectada. É necessário garantir que o grupo de segurança do plano de controle do Amazon EKS tenha regras para permitir o tráfego de entrada na porta 443 da rede conectada.

 **Bastion host do Amazon EC2**   
Você pode executar uma instância do Amazon EC2 em uma sub-rede pública na VPC do cluster e fazer login via SSH nessa instância para executar os comandos do `kubectl`. Para obter mais informações, consulte [Bastion hosts do Linux na AWS](https://aws.amazon.com/quickstart/architecture/linux-bastion/). É necessário garantir que o grupo de segurança do plano de controle do Amazon EKS tenha regras para permitir o tráfego de entrada na porta 443 do seu bastion host. Para obter mais informações, consulte [Exibir os requisitos para grupos de segurança do Amazon EKS em clusters](sec-group-reqs.md).  
Quando você configurar `kubectl` para o bastion host, use credenciais da AWS que já estiverem mapeadas para a configuração do RBAC do cluster ou adicione a [entidade principal do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) que o bastion usará para a configuração do RBAC antes de remover o acesso público ao endpoint. Para obter mais informações, consulte [Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes](grant-k8s-access.md) e [Acesso negado ou não autorizado (`kubectl`)](troubleshooting.md#unauthorized).

 **IDE do AWS Cloud9**   
 AWS O Cloud9 é um ambiente de desenvolvimento integrado (IDE) baseado em nuvem que permite que você escreva, execute e depure seu código com apenas um navegador. Você pode criar um IDE do AWS Cloud9 na VPC do seu cluster e usar o IDE para se comunicar com o cluster. Para obter mais informações, consulte [Criação de um ambiente em AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/create-environment.html). É necessário garantir que o grupo de segurança do plano de controle do Amazon EKS contenha regras para permitir o tráfego de entrada na porta 443 do seu grupo de segurança IDE. Para obter mais informações, consulte [Exibir os requisitos para grupos de segurança do Amazon EKS em clusters](sec-group-reqs.md).  
Quando você configurar o `kubectl` para o seu AWS Cloud9 IDE, certifique-se de usar as credenciais do AWS que já estão mapeadas na configuração RBAC do cluster ou adicione a entidade principal do IAM que o IDE usará à configuração RBAC antes de remover o acesso público ao endpoint. Para obter mais informações, consulte [Conceder aos usuários e perfis do IAM acesso às APIs do Kubernetes](grant-k8s-access.md) e [Acesso negado ou não autorizado (`kubectl`)](troubleshooting.md#unauthorized).

📝 [Editar esta página no GitHub](https://github.com/search?q=repo%3Aawsdocs%2Famazon-eks-user-guide+%5B%23cluster-endpoint%5D&type=code) 

# Configurar o acesso à rede para o endpoint do servidor de API do cluster
<a name="config-cluster-endpoint"></a>

Você pode modificar o acesso ao endpoint do servidor de API do cluster usando o Console de gerenciamento da AWS ou a AWS CLI nas seções a seguir.

## Configure o acesso ao endpoint - AWS console
<a name="configure_endpoint_access_shared_aws_console"></a>

1. Abra o [console do Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Selecione o nome do cluster para exibir as informações dele.

1. Escolha a guia **Redes** e depois **Gerenciar acesso do endpoint**.

1. Em **Acesso privado**: escolha se deseja habilitar ou desabilitar o acesso privado para o endpoint do servidor de API do Kubernetes do cluster. Se você habilitar o acesso privado, as solicitações de API do Kubernetes originadas na VPC do cluster usarão o endpoint da VPC privado. É necessário habilitar o acesso privado para desabilitar o acesso público.

1. Em **Acesso público**: escolha se deseja habilitar ou desabilitar o acesso público para o endpoint do servidor de API do Kubernetes do cluster. Se você desabilitar o acesso público, o servidor de API do Kubernetes do cluster só poderá receber solicitações da VPC do cluster.

1. (Opcional) Se você habilitou o **Acesso público**, poderá especificar quais endereços da Internet podem se comunicar com o endpoint público. Selecione **Advanced Settings (Configurações avançadas)**. Insira um bloco CIDR, como *203.0.113.5/32*. O bloco não pode incluir [endereços reservados](https://en.wikipedia.org/wiki/Reserved_IP_addresses). É possível inserir blocos adicionais selecionando **Add Source (Adicionar origem)**. Há um número máximo de blocos CIDR que você pode especificar. Para obter mais informações, consulte [Visualizar e gerenciar as cotas de serviço do Amazon EKS e do Fargate](service-quotas.md). Se você não especificar nenhum bloco, então o endpoint do servidor de API público receberá solicitações de todos os endereços IP tanto para `IPv4` (`0.0.0.0/0`) como para `IPv6` (`::/0`) para o cluster `IPv6` de pilha dupla. Se você restringir o acesso ao endpoint público usando blocos CIDR, recomendamos habilitar também o acesso ao endpoint privado para que os nós e os Pods do Fargate (se você usá-los) possam se comunicar com o cluster. Sem o endpoint privado habilitado, suas origens CIDR de endpoint de acesso público devem incluir as origens de saída de sua VPC. Por exemplo, se você tiver um nó em uma sub-rede privada que se comunica com a Internet por meio de um gateway NAT, será necessário adicionar o endereço IP de saída do gateway NAT como parte de um bloco CIDR na lista de permissões no endpoint público.

1. Selecione **Update (Atualizar)** para concluir.

## Configurar o acesso ao endpoint - AWS CLI
<a name="configure_endpoint_access_shared_aws_cli"></a>

Conclua as etapas a seguir usando a versão AWS CLI `1.27.160` ou posterior. É possível verificar sua versão atual com `aws --version`. Para instalar ou atualizar a AWS CLI, consulte [Instalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).

1. Atualize o acesso ao endpoint do servidor de API do cluster com o seguinte comando da CLI AWS. Substitua o nome do cluster e os valores desejados de acesso ao endpoint. Se você definir `endpointPublicAccess=true`, também poderá inserir um único bloco CIDR ou uma lista de blocos CIDR separados por vírgulas para `publicAccessCidrs`. Os blocos não podem incluir [endereços reservados](https://en.wikipedia.org/wiki/Reserved_IP_addresses). Se você especificar blocos CIDR, o endpoint do servidor de API público só receberá solicitações dos blocos listados. Há um número máximo de blocos CIDR que você pode especificar. Para obter mais informações, consulte [Visualizar e gerenciar as cotas de serviço do Amazon EKS e do Fargate](service-quotas.md). Se você restringir o acesso ao endpoint público usando blocos CIDR, é recomendável habilitar também o acesso ao endpoint privado para que os nós e os Pods do Fargate (se você usá-los) possam se comunicar com o cluster. Sem o endpoint privado habilitado, suas origens CIDR de endpoint de acesso público devem incluir as origens de saída de sua VPC. Por exemplo, se você tiver um nó em uma sub-rede privada que se comunica com a Internet por meio de um gateway NAT, será necessário adicionar o endereço IP de saída do gateway NAT como parte de um bloco CIDR na lista de permissões no endpoint público. Se você não especificar nenhum bloco CIDR, então o endpoint do servidor de API público receberá solicitações de todos os endereços IP (0.0.0.0/0) e do `IPv6` (`::/0`) para o cluster `IPv6` de pilha dupla.
**nota**  
O comando a seguir permite acesso privado e acesso público a partir de um único endereço IP para o endpoint do servidor de API. Substitua *203.0.113.5/32* por um único bloco CIDR ou uma lista de blocos CIDR separados por vírgulas aos quais você deseja restringir o acesso à rede.

   ```
   aws eks update-cluster-config \
       --region region-code \
       --name my-cluster \
       --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true
   ```

   Veja abaixo um exemplo de saída.

   ```
   {
       "update": {
           "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000",
           "status": "InProgress",
           "type": "EndpointAccessUpdate",
           "params": [
               {
                   "type": "EndpointPublicAccess",
                   "value": "true"
               },
               {
                   "type": "EndpointPrivateAccess",
                   "value": "true"
               },
               {
                   "type": "publicAccessCidrs",
                   "value": "[\"203.0.113.5/32\"]"
               }
           ],
           "createdAt": 1576874258.137,
           "errors": []
       }
   }
   ```

1. Monitore o status da atualização do acesso ao endpoint com o comando a seguir, usando o nome do cluster e o ID da atualização retornado pelo comando anterior. Sua atualização estará concluída quando o status for exibido como `Successful`.

   ```
   aws eks describe-update \
       --region region-code \
       --name my-cluster \
       --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000
   ```

   Veja abaixo um exemplo de saída.

   ```
   {
       "update": {
           "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000",
           "status": "Successful",
           "type": "EndpointAccessUpdate",
           "params": [
               {
                   "type": "EndpointPublicAccess",
                   "value": "true"
               },
               {
                   "type": "EndpointPrivateAccess",
                   "value": "true"
               },
               {
                   "type": "publicAccessCidrs",
                   "value": "[\"203.0.113.5/32\"]"
               }
           ],
           "createdAt": 1576874258.137,
           "errors": []
       }
   }
   ```

📝 [Editar esta página no GitHub](https://github.com/search?q=repo%3Aawsdocs%2Famazon-eks-user-guide+%5B%23config-cluster-endpoint%5D&type=code) 