Endpoint do servidor de API do cluster - Amazon EKS

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

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 (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 Endpoint privado do cluster apresentada a seguir.

Formato de endpoint de cluster IPv6

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.

AWS

Endpoint público/privado do cluster do EKS: eks-cluster.region.api.aws

AWS GovCloud (US)

Endpoint público/privado do cluster do EKS: eks-cluster.region.api.aws

Amazon Web Services in China

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. Clusters criados antes de outubro de 2024 devem usar o seguinte formato de endpoint.

Formato de endpoint de cluster IPv4

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:

AWS

Endpoint público/privado do cluster EKS eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

Endpoint público/privado do cluster EKS eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

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

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 (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

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

Habilitada

Desabilitado

  • Esse é o comportamento padrão para novos clusters do Amazon EKS.

  • As solicitações de API do Kubernetes que são originadas na VPC do cluster (como um nó para a comunicação do ambiente de gerenciamento) saem da VPC, mas não da rede da Amazon.

  • O servidor de API do cluster é acessível pela internet. Também é possível limitar os blocos CIDR que podem acessar o endpoint público. Se você limitar o acesso a blocos CIDR específicos, é recomendável habilitar também o endpoint privado ou garantir que os blocos CIDR especificados incluam os endereços dos quais os nós e os pods do Fargate (se você usá-los) acessam o endpoint público.

Habilitada

Habilitado

  • As solicitações de API do Kubernetes na VPC do cluster (como um nó para a comunicação do ambiente de gerenciamento) usam o endpoint da VPC privado.

  • O servidor de API do cluster é acessível pela internet. Também é possível limitar os blocos CIDR que podem acessar o endpoint público.

  • Caso esteja usando nós híbridos com o cluster do Amazon EKS, não é recomendável ter o acesso ao endpoint do cluster público e privado habilitado simultaneamente. Como os nós híbridos estão sendo executados fora da VPC, eles resolverão o endpoint do cluster para os endereços IP públicos. É recomendável usar o acesso ao endpoint do cluster público ou privado para clusters com nós híbridos.

Desabilitado

Habilitada

  • Todo o tráfego para o servidor de API do cluster deve vir da VPC do cluster ou de uma rede conectada.

  • Não há acesso público ao servidor de API pela internet. Todos os comandos kubectl devem vir da VPC ou de uma rede conectada. Para ver as opções de conectividade, consulte Acessar um servidor de API somente privado.

  • O endpoint do servidor de API do cluster é resolvido por servidores DNS públicos para um endereço IP privado da VPC. No passado, o endpoint só podia ser resolvido a partir da VPC.

    Se o endpoint não for resolvido para um endereço IP privado na VPC para um cluster existente, será possível:

    • Ativar o acesso público e desativá-lo novamente. Só é necessário fazer isso uma vez para um cluster e o endpoint será resolvido para um endereço IP privado desse ponto em diante.

    • Atualizar o cluster.

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

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. 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 ou outra opção de conectividade 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. É 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.

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 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 e Acesso negado ou não autorizado (kubectl).

IDE 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. É 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.

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 e Acesso negado ou não autorizado (kubectl).

📝 Editar esta página no GitHub