View a markdown version of this page

Configura reti, gruppi di sicurezza e autenticazione IAM - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura reti, gruppi di sicurezza e autenticazione IAM

Le distribuzioni containerizzate su Amazon ECS o Amazon EKS richiedono una corretta configurazione di rete e una gestione delle credenziali IAM per connettersi a Neptune.

Elenco di controllo dei gruppi di sicurezza

  • Il gruppo di sicurezza del cluster Neptune deve consentire il protocollo TCP in entrata sulla porta 8182 (o sulla porta personalizzata configurata per il cluster Neptune) dal nodo Amazon EKS o dall'intervallo CIDR del pod.

  • Se utilizzi il plug-in Amazon VPC CNI con reti personalizzate, verifica che la sottorete pod abbia un percorso verso la sottorete Neptune.

  • Neptune deve trovarsi nello stesso Amazon VPC del cluster Amazon ECS o Amazon EKS oppure deve essere connesso tramite Amazon VPC peering o Transit Gateway.

Verifica la connettività dall'interno del contenitore

Prima di eseguire il debug dei problemi a livello di applicazione, conferma il percorso di rete eseguendo uno dei seguenti comandi dall'interno del contenitore:

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

Per ulteriori informazioni, consulta get-engine-status nel Command Reference. 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

Questo esempio presuppone che le AWS credenziali siano configurate nell'ambiente in uso. Sostituisci us-east-1 con la regione del tuo cluster Neptune.

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

Il -k flag salta la verifica del certificato. Utilizzalo solo per i test di connettività, non nel codice di produzione.

Una risposta corretta conferma che i gruppi di sicurezza, il routing e la risoluzione DNS funzionano tutti. Un timeout indica un problema a livello di rete.

Aggiornamento delle credenziali IAM

Se utilizzi l'autenticazione IAM con Neptune, i tuoi pod devono aggiornare le credenziali prima che scadano. Consigliamo Amazon EKS Pod Identity per nuove implementazioni. Anche IAM Roles for Service Accounts (IRSA) è supportato e ampiamente utilizzato.

Con entrambi gli approcci, recupera le credenziali all'interno della funzione del generatore di autenticazione, non una volta all'avvio. I token IRSA e Pod Identity scadono dopo 1 ora. Se si memorizzano nella cache le credenziali al momento dell'inizializzazione, le richieste avranno esito negativo dopo la scadenza del tokenAccessDeniedException: security token expired.

  • Per gremlin-go: chiamata all'interno della funzione passata a. cfg.Credentials.Retrieve(ctx) gen NewDynamicAuth

  • Per Java: da utilizzare NeptuneGremlinClient con un HandshakeInterceptor che aggiorna la firma SigV4 su ogni nuova connessione.

Cross-account accesso

Neptune non supporta l'autenticazione IAM diretta tra account. Se il cluster Amazon EKS si trova in un AWS account diverso da quello del cluster Neptune, il pod deve prima assumere un ruolo nell'account Neptune prima dell'autenticazione.

Configurazione di ingresso per Graph Explorer

Se esegui Graph Explorer in un ambiente containerizzato, assicurati che tutti i percorsi siano accessibili al proxy, non solo. /explorer Su Amazon EKS, configura le regole del controller di ingresso per consentire tutti i percorsi. Su Amazon ECS, configura il gruppo target di Application Load Balancer e le regole del listener per inoltrare tutti i percorsi al contenitore Graph Explorer. Il proxy di Graph Explorer effettua chiamate a/summary,/gremlin, /openCypher e. /sparql Path-restricted le regole di routing interrompono il proxy in modo silenzioso.