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 virtual private cloud (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 a VPCs, o Amazon ES coloca um endpoint em uma, duas ou três sub-redes da VPC. Uma sub-rede é uma gama de endereços IP na 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ástica (ENI) na VPC de cada um dos seus nós de dados. O Amazon ES atribui a cada ENI um endereço IP privado do intervalo de endereço IPv4 da 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 não oferece suporte a endereços IPv6 com uma VPC. Você pode usar uma VPC com IPv6 ativado, mas o domínio usará endereços 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 criar um domínio com um parâmetro de avaliação público, não pode posteriormente colocá-lo num 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. 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. Este processo varia de acordo com a configuração de rede, mas geralmente envolve a conexão a uma VPN ou rede gerenciada ou o uso de um servidor de proxy. 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 uma rede gerenciada ou de um 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 deste requisito de conectividade, as VPCs permitem 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 uma camada adicional de segurança, recomendamos o uso de políticas de acesso que especifiquem usuários ou funções do IAM. A aplicação de uma dessas políticas significa que, para que o domínio aceite uma solicitação, os grupos de segurança devem permiti-la e assiná-la 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 EC2 do Amazon Linux na mesma VPC, sub-rede e grupo de segurança como o domínio do Amazon ES.

    Uma vez que esta instância é para fins de teste e precisa de fazer muito trabalho, escolha um tipo de instância económico como t2.micro. Atribua a instância um endereço IP público e crie um novo par de chaves ou escolha um novo. 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 contém 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 navegador da web. Talvez você precise confirmar uma exceção de segurança.

    Como alternativa, você pode enviar solicitações para 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.

Como uma alternativa a essa abordagem, se o domínio estiver em uma região compatível com o AWS Cloud9, você poderá criar um ambiente do EC2 na mesma VPC do seu domínio, adicionar o grupo de segurança do ambiente à configuração do domínio do Amazon ES, adicionar a regra HTTPS da etapa 5 ao grupo de segurança e usar o Bash baseado na web no AWS Cloud9 para emitir comandos curl.

Antes de começar Pré-requisitos para acesso VPC

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

  • Crie 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 mais informações, leia Criação de uma VPC. Se você já tiver uma VPC, ignore esta etapa.

  • Endereços IP de reserva

    O Amazon ES 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.

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. A VPC deve ter entre uma e três sub-redes, dependendo do número de zonas de disponibilidade para seu domínio.

O procedimento a seguir mostra como usar o console da Amazon VPC para criar uma VPC com uma sub-rede pública, reservar endereços IP para a sub-rede e criar um grupo de segurança para controlar o acesso ao domínio do Amazon ES. Para outras configurações da VPC, consulte Cenários e exemplos no Guia do usuário da Amazon VPC.

Para criar uma VPC (console)

  1. Faça login no Console de Gerenciamento da AWS e abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha VPC Dashboard (Painel da VPC).

  3. Escolha Start VPC Wizard.

  4. Na página Select a VPC Configuration, selecione VPC with a Single Public Subnet.

  5. Na página VPC with a Single Public Subnet, mantenha as opções padrão e escolha Create VPC.

  6. Na mensagem de confirmação exibida, escolha Close.

  7. Se pretender habilitar várias zonas de disponibilidade para seu domínio do Amazon ES, você deverá criar sub-redes adicionais. Caso contrário, vá para a etapa 8.

    1. No painel de navegação, escolha Subnets (Sub-redes).

    2. Selecione Create Subnet (Criar sub-rede).

    3. Na caixa de diálogo Create Subnet, você pode criar uma tag de nome para ajudar a identificar a sub-rede posteriormente.

    4. Em VPC, escolha a VPC recém-criada.

    5. Em Availability Zone, escolha uma zona de disponibilidade diferente da escolhida para a primeira sub-rede. As zonas de disponibilidade para todas as sub-redes devem estar na mesma região.

    6. Para IPv4 CIDR block, configure um bloco CIDR grande o suficiente para fornecer endereços IP suficientes para o Amazon ES para uso durante as atividades de manutenção. Para obter mais informações, consulte Reservar endereços IP em uma sub-rede da VPC.

      nota

      Os domínios do Amazon ES que usam o acesso a VPC não oferecem suporte a endereços IPv6. Você pode usar uma VPC com IPv6 ativado, mas os ENIs terão endereços IPv4.

    7. Escolha Yes, Create (Sim, criar).

  8. No painel de navegação, escolha Subnets (Sub-redes).

  9. Na lista de sub-redes, localize sua sub-rede (ou sub-redes, se você criou uma segunda sub-rede na etapa 7). Na coluna Available IPv4 (IPv4 disponível), confirme se você possui um número suficiente de endereços IPv4.

  10. Anote o ID da sub-rede e a zona de disponibilidade. Você precisará dessas informações mais tarde quando iniciar o domínio do Amazon ES e adicionar uma instância do Amazon EC2 à sua VPC.

  11. Crie um grupo de segurança de Amazon VPC. Use esse security group para controlar o acesso ao domínio do Amazon ES.

    1. No painel de navegação, escolha Security Groups (Grupos de segurança).

    2. Escolha Create Security Group (Criar grupo de segurança).

    3. Na caixa de diálogo Create Security Group (Criar grupo de segurança), digite uma tag de nome, um nome de grupo e forneça uma descrição. Para VPC, escolha o ID de sua VPC.

    4. Escolha Yes, Create (Sim, criar).

  12. Defina uma regra de entrada de rede para seu security group. Esta regra permite que você se conecte ao domínio do Amazon ES.

    1. No painel de navegação, escolha Security Groups (Grupos de segurança) e selecione o security group recém-criado.

    2. Na parte inferior da página, escolha a guia Inbound Rules.

    3. Selecione Edit (Editar) e HTTPS (443).

    4. Selecione Save (Salvar).

Agora você já pode iniciar um domínio do Amazon ES na sua Amazon 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.

Eis a fórmula básica: O número de endereços IP reservados em cada subrede é 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 do console do Amazon EC2 em https://console.aws.amazon.com/ec2/. A coluna Description 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 obter mais informações, consulte Como 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 de forma 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.

Documentação do Amazon VPC

A Amazon VPC tem seu próprio conjunto de documentação para descrever como criar e usar sua Amazon VPC. A tabela a seguir disponibiliza links para guias sobre Amazon VPC.

Description (Descrição) Documentação
Como começar a usar a Amazon VPC Guia de conceitos básicos do Amazon VPC
Como usar a Amazon VPC por meio do Console de gerenciamento da AWS Guia do usuário da Amazon VPC
Descrições completas de todos os comandos da Amazon VPC Referência de linha de comando do Amazon EC2 (Os comandos da Amazon VPC fazem parte da referência do Amazon EC2.)
Descrições completas das ações de API, tipos de dados e erros da Amazon VPC Amazon EC2 API Reference (As ações de API da Amazon VPC fazem parte da referência do Amazon EC2.)

Para obter informações mais detalhadas sobre o Amazon Virtual Private Cloud, consulte Amazon Virtual Private Cloud.