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à.
Connessione ai database Amazon Neptune utilizzando l'autenticazione IAM con la console Gremlin
Per connetterti ad Amazon Neptune utilizzando la console Gremlin con autenticazione Signature Version 4, devi requestInterceptor() collegare un firmatario SigV4 alla connessione stabilita dal comando. :remote Ciò richiede di configurare l'Clusteroggetto manualmente e poi passarlo al comando. :remote
Tenere presente che questo è molto diverso dalla situazione tipica in cui il comando :remote richiede un file di configurazione per formare la connessione. L'approccio del file di configurazione non funzionerà perché requestInterceptor() deve essere impostato a livello di codice e non può caricare la configurazione da un file.
Nota
Gli esempi seguenti utilizzanorequestInterceptor(), che è stato introdotto nella versione TinkerPop 3.6.6. Se stai usando una TinkerPop versione precedente alla 3.6.6 (ma 3.5.5 o successiva), usa handshakeInterceptor() invece che negli esempi di requestInterceptor() codice seguenti.
Sono necessari i seguenti prerequisiti:
È necessario disporre delle credenziali IAM necessarie per firmare le richieste. Vedi Utilizzo della catena di fornitori di credenziali predefinita nella Guida per gli AWS SDK per Java sviluppatori.
È necessario aver installato una versione della console Gremlin compatibile con la versione del motore Neptune utilizzata dal cluster database.
Se si utilizzano credenziali temporanee, queste scadono dopo un intervallo specificato, così come il token di sessione, quindi è necessario aggiornare il token di sessione quando si richiedono nuove credenziali. Vedi Utilizzo di credenziali di sicurezza temporanee per richiedere l'accesso alle AWS risorse nella Guida per l'utente IAM.
Per informazioni sulla connessione tramite SSL/TLS, consulta Configurazione SSL/TLS.
Connect la console Gremlin con la firma Sig4
-
Avviare la console Gremlin:
$ bin/gremlin.sh -
Al prompt
gremlin>, installare la libreriaamazon-neptune-sigv4-signer(questa operazione deve essere eseguita solo una volta per la console)::install com.amazonaws amazon-neptune-sigv4-signer 2.4.0Se riscontri problemi con questo passaggio, può essere utile consultare la TinkerPop documentazione
sulla configurazione di Grape. Nota
Se si utilizza un proxy HTTP, è possibile che si verifichino errori in questo passaggio in cui il comando
:installnon viene completato. Per risolvere questo problema, esegui i comandi seguenti per fornire alla console informazioni sul proxy:System.setProperty("https.proxyHost", "(the proxy IP address)") System.setProperty("https.proxyPort", "(the proxy port)") -
Importare la classe richiesta per gestire l'accesso a
requestInterceptor()::import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer -
Se si utilizzano credenziali temporanee, è necessario fornire anche il token di sessione come segue:
System.setProperty("aws.sessionToken","(your session token)") -
Se non si sono ancora stabilite le credenziali dell'account, è possibile assegnarle come segue:
System.setProperty("aws.accessKeyId","") System.setProperty("aws.secretKey","(your access key)(your secret key)") -
Costruire manualmente l'oggetto
Clusterda connettere a Neptune:cluster = Cluster.build("(host name)") \ .enableSsl(true) \ .requestInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)", \ DefaultCredentialsProvider.create()); \ sigV4Signer.signRequest(r); \ return r; } \ .create()Per informazioni su come trovare il nome host di un'istanza database Neptune, consulta Connessione agli endpoint Amazon Neptune.
-
Stabilire la connessione
:remoteutilizzando il nome della variabile dell'oggettoClusternel passaggio precedente::remote connect tinkerpop.server cluster -
Immettere il seguente comando per passare alla modalità remota. In questo modo tutte le query Gremlin vengono inviate alla connessione remota:
:remote console