View a markdown version of this page

Configurar redes, grupos de segurança e autenticação do IAM - Amazon Neptune

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

Configurar redes, grupos de segurança e autenticação do IAM

Implantações em contêineres no Amazon ECS ou no Amazon EKS exigem a configuração correta da rede e o gerenciamento de credenciais do IAM para se conectar ao Neptune.

Lista de verificação de grupos de segurança

  • O grupo de segurança do cluster Neptune deve permitir a entrada de TCP na porta 8182 (ou na porta personalizada configurada para seu cluster Neptune) a partir do nó ou do pod CIDR do Amazon EKS.

  • Se você usa o plug-in CNI da Amazon VPC com rede personalizada, verifique se a sub-rede do pod tem uma rota para a sub-rede Neptune.

  • O Neptune deve estar na mesma Amazon VPC que seu cluster Amazon ECS ou Amazon EKS, ou conectado por meio do emparelhamento do Amazon VPC ou do Transit Gateway.

Verifique a conectividade de dentro do contêiner

Antes de depurar problemas no nível do aplicativo, confirme o caminho da rede executando um dos seguintes comandos de dentro do contêiner:

AWS CLI
aws neptunedata get-engine-status \ --endpoint-url https://your-neptune-endpoint:8182

Para obter mais informações, consulte get-engine-status na Referência de comandos. AWS CLI

SDK
import boto3 from botocore.config import Config client = boto3.client( 'neptunedata', region_name='us-east-1', endpoint_url='https://your-neptune-endpoint:8182', config=Config(read_timeout=10) ) response = client.get_engine_status() print(response['status'])
awscurl
awscurl https://your-neptune-endpoint:8182/status \ --region us-east-1 \ --service neptune-db
nota

Este exemplo pressupõe que suas AWS credenciais estejam configuradas em seu ambiente. us-east-1Substitua pela região do seu cluster Neptune.

curl
curl -k https://your-neptune-endpoint:8182/status
nota

A -k bandeira ignora a verificação do certificado. Use isso somente para testes de conectividade, não no código de produção.

Uma resposta bem-sucedida confirma que os grupos de segurança, o roteamento e a resolução de DNS estão funcionando. Um tempo limite indica um problema no nível da rede.

Atualização de credenciais do IAM

Se você usa a autenticação do IAM com o Neptune, seus pods precisam atualizar as credenciais antes que elas expirem. Recomendamos o Amazon EKS Pod Identity para novas implantações. O IAM Roles for Service Accounts (IRSA) também é suportado e amplamente usado.

Com qualquer uma das abordagens, recupere as credenciais dentro da função do gerador de autenticação, não uma vez na inicialização. Os tokens IRSA e Pod Identity expiram após 1 hora. Se você armazenar as credenciais em cache na inicialização, as solicitações falharão AccessDeniedException: security token expired depois que o token expirar.

  • Para gremlin-go: chame cfg.Credentials.Retrieve(ctx) dentro da função passada para. gen NewDynamicAuth

  • Para Java: use NeptuneGremlinClient com um HandshakeInterceptor que atualize a assinatura SigV4 em cada nova conexão.

Cross-account access

O Neptune não oferece suporte à autenticação IAM direta entre contas. Se seu cluster Amazon EKS estiver em uma AWS conta diferente do seu cluster Neptune, o pod deve primeiro assumir uma função na conta Neptune antes de se autenticar.

Configuração de entrada para o Graph Explorer

Se você executar o Graph Explorer em um ambiente em contêiner, certifique-se de que todos os caminhos estejam acessíveis ao proxy, não apenas. /explorer No Amazon EKS, configure as regras do controlador de entrada para permitir todos os caminhos. No Amazon ECS, configure seu grupo-alvo do Application Load Balancer e as regras de ouvinte para encaminhar todos os caminhos para o contêiner do Graph Explorer. O proxy do Graph Explorer faz chamadas para /summary /gremlin/openCypher,, /sparql e. Path-restricted as regras de roteamento quebram o proxy silenciosamente.