Como iniciar seus domínios do Amazon OpenSearch Service em uma VPC - Amazon OpenSearch Service

Como iniciar seus domínios do Amazon OpenSearch Service em uma VPC

Você pode iniciar recursos da AWS, como domínios do Amazon OpenSearch Service, em uma nuvem privada virtual (VPC). Uma VPC é uma rede virtual dedicada à sua Conta da AWS. Ela é isolada de maneira lógica das outras redes virtuais na Nuvem AWS. Colocar um domínio do OpenSearch em uma VPC permite uma comunicação segura entre o OpenSearch Service e os outros serviços na VPC, sem que seja necessário usar um gateway da Internet, dispositivo NAT ou conexão VPN. Todo o tráfego permanece com segurança na Nuvem AWS.

nota

Se você colocar o domínio do OpenSearch Service em uma VPC, seu computador deverá ser capaz de se conectar à VPC. Essa conexão geralmente assume a forma de VPN, gateway de transito, rede gerenciada ou servidor de proxy. Você não pode acessar seus domínios diretamente de fora da VPC.

VPC versus domínios públicos

A seguir estão algumas das maneiras pelas quais os domínios da VPC diferem dos domínios públicos. Cada diferença é descrita posteriormente em mais detalhes.

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

  • Embora os domínios públicos sejam acessíveis a partir de qualquer dispositivo conectado à Internet, os domínios da VPC exigem alguma forma de VPN ou proxy.

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

  • Os endpoits de domínio assumem formas diferentes (https://search-domain-name vs. https://vpc-domain-name).

  • Não é possível aplicar políticas de acesso baseadas em IP aos domínios que residem em uma VPC porque o grupo de segurança já impõe políticas de acesso baseadas em IP.

Limitações

Operar um domínio do OpenSearch Service em uma VPC apresenta as seguintes limitações:

  • 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ê 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.

  • 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, mas será possível alterar as sub-redes e as configurações do grupo de segurança.

  • Para acessar a instalação padrão do OpenSearch Dashboards em um domínio que reside em uma VPC, os usuários devem ter acesso à VPC. Esse 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 ou gateway de trânsito. Para saber mais, consulte Sobre políticas de acesso em domínios da VPC, o Manual do usuário da Amazon VPC e o Controle do acesso ao OpenSearch Dashboards.

Arquitetura

Para oferecer suporte a VPCs, o OpenSearch Service 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 OpenSearch Service 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 OpenSearch Service também coloca uma interface de rede elástica (ENI) na VPC para cada um dos seus nós de dados. O OpenSearch Service atribui a cada ENI um endereço IP privado do intervalo de endereços IPv4 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 OpenSearch Service 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 OpenSearch Service 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 OpenSearch Service 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.

Migração do acesso público para o 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 Criação de snapshots de índices no Amazon OpenSearch Service.

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

Colocar seu domínio do OpenSearch Service 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 VPN, gateway de transito, rede gerenciada ou servidor de proxy. Para obter detalhes sobre as várias formas que podem ser apresentadas, consulte Exemplos de VPC no Manual 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 OpenSearch Service. Ao contrário, o domínio só aceitará solicitações de acesso ao domínio do OpenSearch Service quando estas forem aprovadas pelos grupos de segurança associados. A única exceção é no caso de você estar usando o controle de acesso refinado ou uma política de acesso que especifique usuários ou funções do IAM. Nessas situações, 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 grupos de segurança 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 OpenSearch Service que residem em uma VPC. Se você usa o acesso público, as políticas baseadas em IP ainda estão disponíveis.

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

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

  • Crie uma VPC

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

  • Reservar endereços IP

    O OpenSearch Service permite conectar 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 Reserva de endereços IP em uma sub-rede da VPC.

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 desafio. Se você já tiver um domínio de VPC do OpenSearch Service e preferir não criar um servidor VPN, tente o processo a seguir:

  1. Para a política de acesso do domínio, escolha Only use fine-grained access control (Use somente o controle de acesso refinado). Sempre é possível atualizar essa configuração depois de concluir o teste.

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

    Como essa instância é para fins de teste e precisa fazer muito pouco trabalho, escolha um tipo de instância de custo reduzido, como o 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 Amazon EC2 Linux.

  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 Port Range (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 OpenSearch Service via 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-domain-name.region.es.amazonaws.com:443

    Esse comando cria um túnel SSH que encaminha solicitações para https://localhost:9200 ao seu domínio do OpenSearch Service por meio da instância do EC2. A especificação da porta 9200 no comando simula uma instalação do OpenSearch local, mas use qualquer porta que você desejar. O OpenSearch Service só aceita conexões pela porta 80 (HTTP) ou 443 (HTTPS).

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

  7. Navegue até https://localhost:9200/_dashboards/ 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.

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

O OpenSearch Service 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 OpenSearch Service, você deverá ter um número suficiente de endereços IP disponíveis em cada sub-rede para acomodar as interfaces de rede.

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

Exemplos

  • Se um domínio tiver nove nós de dados por três zonas de disponibilidade, a quantidade de IPs por sub-rede será 9 * 3 / 3 = 9.

  • Se um domínio tiver oito nós de dados por duas zonas de disponibilidade, a quantidade de IPs por sub-rede será 8 * 3 / 2 = 12.

  • Se um domínio tiver seis nós de dados por uma zona de disponibilidade, a quantidade de IPs por sub-rede será 6 * 3 / 1 = 18.

Quando você cria o domínio, o OpenSearch Service 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 OpenSearch Service está associado à interface de rede.

dica

Recomendamos criar sub-redes dedicadas para os endereços IP reservados para o OpenSearch Service. 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 Criação de 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 OpenSearch Service 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 OpenSearch Service cria a função automaticamente quando você usa o console do OpenSearch Service para criar um domínio dentro de uma VPC. Para que essa criação automática seja bem-sucedida, você precisa ter permissões para a ação iam:CreateServiceLinkedRole. Para saber mais, consulte Permissões de funções vinculadas ao serviço no Manual do usuário do IAM.

Depois que o OpenSearch Service criar a função, você poderá visualizá-la (AWSServiceRoleForAmazonOpenSearchService) usando o console do IAM.

Para obter mais informações sobre as permissões dessa função e como excluí-la, consulte Usar perfis vinculados ao serviço com o Amazon OpenSearch Service.