Suporte a VPC para domínios do Amazon Elasticsearch Service - Amazon Elasticsearch Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Suporte a VPC para domínios do Amazon Elasticsearch Service

Uma nuvem privada virtual (VPC) é uma rede virtual dedicada à sua conta da AWS. Ela é isolada de maneira lógica das outras redes virtuais na Nuvem AWS Você pode executar recursos da AWS, como domínios do Amazon ES, em sua VPC.

Colocar um domínio do Amazon ES em uma VPC permite uma comunicação segura entre o Amazon ES e os outros serviços na VPC, sem a necessidade de um gateway da Internet, dispositivo NAT ou conexão VPN. Todo o tráfego permanece com segurança na Nuvem AWS. Devido ao seu isolamento lógico, os domínios que residem em uma VPC contam com uma camada adicional de segurança se comparados aos domínios que utilizam endpoints públicos.

Para oferecer suporte ao VPCs, o Amazon ES coloca um endpoint em uma, duas ou três sub-redes da VPC. Se você habilitar várias zonas de disponibilidade para seu domínio, cada sub-rede deverá estar em uma zona de disponibilidade diferente na mesma região. Se você usar somente uma zona de disponibilidade, o Amazon ES colocará um endpoint somente em uma sub-rede.

A ilustração a seguir mostra a arquitetura da VPC para uma zona de disponibilidade.

A ilustração a seguir mostra a arquitetura da VPC para duas zonas de disponibilidade.

O Amazon ES também coloca uma interface de rede elásticaAmazon ES (ENI) na VPC de cada um dos seus nós de dados. O IPv4 atribui a cada ENI um endereço IP privado do intervalo de endereços da sua sub-rede. O serviço também atribui um nome de host DNS público (que é o endpoint de domínio) aos endereços IP. Você deve usar um serviço de DNS público para resolver o endpoint (que é um nome de host DNS) para os endereços IP apropriados dos nós de dados:

  • Se sua VPC usa o servidor DNS fornecido pela Amazon com a opção enableDnsSupport definida como true (o valor padrão), a resolução do endpoint do Amazon ES será bem-sucedida.

  • Se sua VPC usa um servidor DNS privado e o servidor tem acesso aos servidores DNS autorizados públicos para resolver nomes de host de DNS, a resolução do endpoint do Amazon ES também será bem-sucedida.

Como os endereços IP podem mudar, você deve resolver o endpoint do domínio periodicamente para que sempre possa acessar os nós de dados corretos. Recomendamos que você defina o intervalo de resolução do DNS para um minuto. Se você estiver usando um cliente, também deve garantir que o cache do DNS no cliente seja limpo.

nota

O Amazon ES IPv6 não oferece suporte a endereços com uma VPC. Você pode usar uma VPC que tenha o IPv6 habilitado, mas o domínio usará endereços do IPv4.

Limitations

Atualmente, operar um domínio do Amazon ES de uma VPC apresenta as seguintes limitações:

  • Você pode iniciar seu domínio de uma VPC ou usar um endpoint público, mas não pode fazer ambos. Você deve escolher uma opção ou outra ao criar seu domínio.

  • Se você executar um novo domínio de uma VPC, não será possível alternar posteriormente para um endpoint público. O inverso também é verdadeiro: se você criar um domínio com um endpoint público, não será possível colocá-lo em uma VPC. Em vez disso, você deve criar um novo domínio e migrar seus dados.

  • Você não pode iniciar seu domínio em uma VPC que usa locação dedicada. É necessário usar uma VPC com locação definida como Padrão.

  • Após colocar um domínio dentro de uma VPC, não será possível movê-lo para uma VPC diferente. No entanto, você pode alterar as sub-redes e as configurações do security group.

  • Em comparação com domínios públicos, domínios VPC exibem menos informações no console do Amazon ES Mais especificamente, a guia Cluster health (Integridade do cluster) não inclui informações de estilhaço, e a guia Indices (Índices) não está presente.

  • Para acessar a instalação padrão do Kibana em um domínio que resida em uma VPC, os usuários devem ter acesso à VPC. Esse processo varia de acordo com a configuração de rede, mas provavelmente envolve a conexão a uma VPN ou rede gerenciada ou o uso de um servidor de proxy ou gateway de trânsito. Para saber mais, consulte o Sobre políticas de acesso em domínios da VPC, o Guia do usuário da Amazon VPC e o Controlar acesso ao Kibana.

Sobre políticas de acesso em domínios da VPC

Colocar seu domínio do Amazon ES em uma VPC fornece uma camada de segurança forte e inerente. Quando você cria um domínio com acesso público, o endpoint é composto da seguinte forma:

https://search-domain-name-identifier.region.es.amazonaws.com

Como o rótulo "público" sugere, esse endpoint é acessível de qualquer dispositivo conectado à Internet, embora você possa (e deva) controlar o acesso a ele. Se você acessar o endpoint em um navegador da Web, poderá receber uma mensagem Not Authorized, mas a solicitação atingirá o domínio.

Quando você cria um domínio com acesso à VPC, o endpoint se assemelha a um endpoint público:

https://vpc-domain-name-identifier.region.es.amazonaws.com

Se você tentar acessar o endpoint em um navegador da Web, no entanto, poderá descobrir que a solicitação está ultrapassando o tempo limite. Para executar até mesmo solicitações GET básicas, seu computador deve ser capaz de se conectar à VPC. Essa conexão geralmente assume a forma de uma VPN, de gateway de trânsito, de rede gerenciada ou de servidor de proxy. Para obter detalhes sobre as várias formas que podem ser apresentadas, consulte Cenários e exemplos no Guia do usuário da Amazon VPC. Para obter um exemplo focalizado em desenvolvimento, consulte Teste dos domínios da VPC.

Além desse requisito de conectividade, o VPCs permite que você gerencie o acesso ao domínio por meio de grupos de segurança. Para muitos casos de uso, essa combinação de recursos de segurança é suficiente e pode ser conveniente aplicar uma política de acesso aberta ao domínio.

Trabalhar com uma política de acesso aberta não significa que qualquer pessoa na Internet pode acessar o domínio do Amazon ES. Pelo contrário, isso significa que, se uma solicitação chega ao domínio do Amazon ES com a permissão dos security groups apropriados, o domínio aceita a solicitação sem verificações de segurança adicionais.

Para obter uma camada adicional de segurança, recomendamos o uso de um controle de acesso refinado ou uma política de acesso que especifique usuários ou funções do IAM. Nessas situações, para o domínio aceitar uma solicitação, os grupos de segurança devem permiti-la e ela deve ser assinada com credenciais válidas.

nota

Como os security groups já aplicam políticas de acesso baseadas em IP, não é possível aplicar políticas de acesso baseadas em IP aos domínios do Amazon ES que residem em uma VPC. Se você usa o acesso público, as políticas baseadas em IP ainda estão disponíveis.

Teste dos domínios da VPC

A segurança avançada de uma VPC pode tornar a conexão com seu domínio e a execução de testes básicos um verdadeiro desafio. Se você já tiver um domínio de VPC do Amazon ES e preferir não criar um servidor VPN, tente o processo a seguir:

  1. Para a política de acesso do seu domínio, escolha Allow open access to the domain (Permitir acesso livre ao domínio). Sempre é possível atualizar essa configuração depois de concluir o teste.

  2. Crie uma instância do Amazon Linux do Amazon EC2 na mesma VPC, sub-rede e grupo de segurança como o domínio do Amazon ES

    Como essa instância é para fins de teste e precisa fazer muito pouco trabalho, escolha um tipo de instância de baixo custo, como t2.micro. Atribua um endereço IP público à instância e crie um novo par de chaves ou escolha um existente. Se você criar uma nova chave, faça download dela em seu diretório ~/.ssh

    Para saber mais sobre a criação de instâncias, consulte Conceitos básicos de instâncias do Linux do Amazon EC2.

  3. Adicione um gateway da Internet à VPC.

  4. Na tabela de rotas da VPC, adicione uma nova rota. Em Destination (Destino), especifique um bloco CIDR que contenha o endereço IP público do computador. Em Target (Destino), especifique o gateway da Internet que você acabou de criar.

    Por exemplo, você pode especificar 123.123.123.123/32 somente para seu computador ou 123.123.123.0/24 para vários computadores.

  5. Para o grupo de segurança, especifique duas regras de entrada:

    Type Protocolo Intervalo de portas Origem
    SSH (22) TCP (6) 22 your-cidr-block
    HTTPS (443) TCP (6) 443 your-security-group-id

    A primeira regra permite que você use SSH em sua instância do EC2. A segunda permite que a instância do EC2 se comunique com o domínio do Amazon ES por meio de HTTPS.

  6. No terminal, execute o comando a seguir:

    ssh -i ~/.ssh/your-key.pem ec2-user@your-ec2-instance-public-ip -N -L 9200:vpc-your-amazon-es-domain.region.es.amazonaws.com:443

    Esse comando cria um túnel SSH que encaminha solicitações para https://localhost:9200 para o domínio do Amazon ES por meio da instância do EC2. Por padrão, o Elasticsearch escuta o tráfego na porta 9200. A especificação dessa porta simula uma instalação do Elasticsearch local, mas use qualquer porta que você desejar.

    O comando não fornece comentários e é executado indefinidamente. Para interrompê-lo, pressione Ctrl + C.

  7. Navegue até https://localhost:9200/_plugin/kibana/ no seu navegador da web. Talvez você precise confirmar uma exceção de segurança.

    Como alternativa, você pode enviar solicitações para o https://localhost:9200 usando curl, Postman ou a linguagem de programação de sua preferência.

    dica

    Se você encontrar erros de curl devido a uma incompatibilidade de certificado, tente o sinalizador --insecure

Antes de começar: pré-requisitos de acesso à VPC

Antes de estabelecer uma conexão entre uma VPC e seu novo domínio do Amazon ES, você deve fazer o seguinte:

  • Criar uma VPC

    Para criar sua VPC, você pode usar o console da Amazon VPC, a CLI da AWS ou um dos SDKs da AWS. Para obter mais informações, consulte Trabalhar com o VPCs no Guia do usuário da Amazon VPC. Se você já tiver uma VPC, ignore esta etapa.

  • Reservar endereços IP

    Amazon ESO permite a conexão de uma VPC a um domínio, colocando interfaces de rede em uma sub-rede da VPC. Cada interface de rede está associada a um endereço IP. Você deve reservar um número suficiente de endereços IP na sub-rede para as interfaces de rede. Para obter mais informações, consulte Reservar endereços IP em uma sub-rede da VPC.

Reserva de endereços IP em uma sub-rede da VPC

O Amazon ES conecta um domínio a uma VPC colocando interfaces de rede em uma sub-rede da VPC (ou várias sub-redes da VPC, caso você habilite várias zonas de disponibilidade). Cada interface de rede está associada a um endereço IP. Antes de criar o domínio do Amazon ES, você deve ter um número suficiente de endereços IP disponíveis na sub-rede da VPC para acomodar as interfaces de rede.

O número de endereços IP exigidos para o Amazon ES depende do seguinte:

  • O número de nós de dados no seu domínio. (Os nós principais não são considerados.)

  • Número de zonas de disponibilidade. Se habilitar duas ou três zonas de disponibilidade, você precisará somente da metade ou de um terço do número de endereços IP por sub-rede que você precisa para uma zona de disponibilidade.

A fórmula básica é a seguinte: o número de endereços IP reservados em cada sub-rede é três vezes o número de nós, dividido pelo número de zonas de disponibilidade.

Exemplos

  • Se um domínio tiver 10 nós de dados e duas zonas de disponibilidade, a contagem de IPs será 10/2 x 3 = 15.

  • Se um domínio tiver 10 nós de dados e uma zona de disponibilidade, a contagem de IPs será 10 x 3 = 30.

Ao criar o domínio, o Amazon ES reserva os endereços IP, usa alguns para o domínio e reserva o restante para implantações azuis/verdes. Você pode ver as interfaces de rede e seus endereços IP associados na seção Network Interfaces (Interfaces de rede) do console do Amazon EC2. A coluna Description (Descrição) mostra qual domínio do Amazon ES está associado à interface de rede.

dica

Recomendamos que você crie sub-redes dedicadas para os endereços IP reservados para o Amazon ES Ao usar sub-redes dedicadas, você evita a sobreposição com outros aplicativos e serviços e garante a possibilidade de reservar endereços IP adicionais se precisar escalar seu cluster no futuro. Para saber mais, consulte Criar uma sub-rede na VPC.

Função vinculada ao serviço para acesso à VPC

Uma função vinculada ao serviço é um tipo exclusivo de função do IAM que delega permissões para um serviço para que ele possa criar e gerenciar recursos em seu nome. O Amazon ES requer uma função vinculada ao serviço para acessar sua VPC, criar o endpoint do domínio e colocar as interfaces de rede em uma sub-rede da sua VPC.

O Amazon ES cria a função automaticamente quando você usa o console do Amazon ES para criar um domínio dentro de uma VPC. Para que essa criação automática seja bem-sucedida, é necessário ter permissões para as ações es:CreateElasticsearchServiceRole e iam:CreateServiceLinkedRole Para saber mais, consulte Permissões de função vinculada ao serviço no Guia do usuário do IAM.

Depois que o Amazon ES criar a função, você poderá visualizá-la (AWSServiceRoleForAmazonElasticsearchService) usando o console do IAM

nota

Se você criar um domínio que usa um endpoint público, o Amazon ES não precisa da função vinculada ao serviço e, portanto, não a cria.

Para obter mais informações sobre as permissões dessa função e como excluí-la, consulte Usar funções vinculadas ao serviço do Amazon ES.

Migração do acesso público ao acesso via VPC

Ao criar um domínio, você especifica se deve haver um endpoint público ou residir em uma VPC. Após ter sido criado, você não poderá mudar de um para o outro. Em vez disso, você deve criar um novo domínio e reindexar ou migrar manualmente seus dados. Os snapshots representam uma maneira conveniente de migração de dados. Para obter informações sobre a realização e restauração de snapshots, consulte Trabalhar com snapshots de índice do Amazon Elasticsearch Service.