Ir para o conteúdo

Como faço para acessar com segurança o endpoint do servidor de API do cluster do Amazon EKS de dentro de uma VPC ou VPC emparelhada?

5 minuto de leitura
0

Quero acessar com segurança o endpoint do servidor de API do cluster do Amazon Elastic Kubernetes Service (Amazon EKS) de dentro de uma Amazon Virtual Private Cloud (Amazon VPC) ou de uma VPC emparelhada.

Breve descrição

Quando você cria um novo cluster do Amazon EKS, o Amazon EKS cria um endpoint para o servidor gerenciado de API do Kubernetes. Por padrão, o endpoint do servidor de API é público na internet. O sistema usa uma combinação do AWS Identity and Access Management (AWS IAM) e do controle de acesso baseado em perfis (Role Based Access Control, RBAC) nativo do Kubernetes para proteger o acesso ao servidor de API. Para obter mais informações, consulte Using RBAC authorization (Usando autorização RBAC) no site do Kubernetes.

Para acessar com segurança seu cluster do Amazon EKS de dentro de uma VPC ou VPC emparelhada, você deve configurar um endpoint privado. Para mais informações sobre práticas recomendadas de segurança, consulte Melhores práticas de segurança.

Resolução

Ative o acesso privado ao servidor de API do Kubernetes para que toda a comunicação entre seus nós e o servidor de API permaneça dentro da sua VPC. É possível limitar os endereços IP que podem acessar seu servidor de API pela internet ou desativar completamente o acesso à internet ao servidor de API.

Quando você ativa o acesso privado do endpoint, o cluster do Amazon EKS se comporta da seguinte maneira:

  • Todo o tráfego para o servidor de API do seu cluster vem da VPC do seus cluster ou de uma rede conectada.
  • Seu servidor de API não tem acesso público pela internet. Quaisquer comandos kubectl são executados de dentro da VPC ou de uma rede conectada. Para verificar as opções de conectividade, consulte Acessar um servidor de API somente privado.
  • Os servidores DNS públicos resolvem o endpoint do servidor de API do cluster para um endereço IP privado da VPC.

Se seu endpoint não for resolvido para um endereço IP privado dentro da VPC em um cluster existente, realize uma das seguintes ações:

  • Ative o acesso público e, em seguida, desative-o novamente. Você só precisa fazer isso uma vez por cluster para que o endpoint seja resolvido para um endereço IP privado.
  • Atualize seu cluster.

Quando você desativa o acesso público ao endpoint do servidor de API do Kubernetes do seu cluster, só é possível acessar o servidor de API de dentro da sua VPC ou de uma rede conectada. É possível acessar o endpoint do servidor de API do Kubernetes de uma das seguintes formas:

  • Conecte sua rede à VPC com um gateway de trânsito ou outra opção de conectividade e, em seguida, use um computador na rede conectada. Certifique-se de que seu grupo de segurança do ambiente de gerenciamento do Amazon EKS contém regras que permitam o tráfego de entrada na porta 443 a partir da sua rede conectada.
  • Execute uma instância do Amazon Elastic Compute Cloud (Amazon EC2) em uma sub-rede pública na VPC do seu cluster. Em seguida, use o SSH para fazer login nessa instância e executar os comandos kubectl. Para obter mais informações, consulte Acesse um bastion host usando o Session Manager e o Amazon EC2 Instance Connect.

Use o Console de gerenciamento da AWS para modificar o acesso ao endpoint do servidor de API do seu cluster

  1. Abra o console do Amazon EKS.
  2. Selecione o nome do cluster para exibir as informações do seu cluster.
  3. Abra a guia Rede e selecione Atualizar.
  4. Selecione se deseja ativar ou desativar o acesso privado ao endpoint do servidor de API do Kubernetes do seu cluster. Se você ativar o acesso privado, as solicitações da API do Kubernetes que se originam na VPC do seu cluster usarão o endpoint da VPC privado. Para desativar o acesso público, você deve primeiro ativar o acesso privado.
  5. Selecione se deseja ativar ou desativar o acesso público ao endpoint do servidor de API do Kubernetes do seu cluster. Se você desativar o acesso público, o servidor de API do Kubernetes do seu cluster só poderá receber solicitações de dentro da VPC do cluster.
  6. Selecione Atualizar.

Use a AWS CLI para modificar o acesso ao endpoint do servidor de API do seu cluster

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Para desativar o acesso público ao endpoint e ativar o acesso privado ao endpoint em um cluster, execute o seguinte comando:

aws eks update-cluster-config --name example \
--resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true

Observação: substitua example pelo nome do seu cluster.

Exemplo de saída:

{
    "update": {
        "id": "ec883c93-2e9e-407c-a22f-8f6fa6e67d4f",
        "status": "InProgress",
        "type": "EndpointAccessUpdate",
        "params": [
            {
                "type": "EndpointPublicAccess",
                "value": "false"
            },
            {
                "type": "EndpointPrivateAccess",
                "value": "true"
            }
        ],
        "createdAt": 1565806986.506,
        "errors": []
    }
}

Se você ativar o acesso privado, as solicitações da API do Kubernetes de dentro da VPC do seu cluster usarão o endpoint da VPC privado. O valor padrão do parâmetro é falso, o que desativa o acesso privado ao seu servidor de API do Kubernetes. Para obter mais informações, consulte update-cluster-config.

AWS OFICIALAtualizada há 2 meses