Connessione ai database Amazon Neptune utilizzando l'autenticazione IAM con la console Gremlin - 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à.

Connessione ai database Amazon Neptune utilizzando l'autenticazione IAM con la console Gremlin

Esistono due prerequisiti per connettere Amazon Neptune tramite Gremlin Console con autenticazione Signature Version 4:

  • È necessario disporre delle credenziali IAM necessarie per firmare le richieste. Vedi Utilizzo della catena di provider di credenziali predefinita nella Guida per gli sviluppatori. AWS SDK per Java

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

Il :remote comando viene utilizzato per creare una connessione dalla console Gremlin a Neptune. Utilizzerai il requestInterceptor() per collegare un firmatario Sigv4 a quella connessione per autenticarlo tramite IAM.

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.

Connect la console Gremlin con la firma Sigv4
  1. Avviare la console Gremlin:

    $ bin/gremlin.sh
  2. Al prompt gremlin>, installare la libreria amazon-neptune-sigv4-signer (questa operazione deve essere eseguita solo una volta per la console):

    :install com.amazonaws amazon-neptune-sigv4-signer 2.4.0

    Se 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 :install non 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)")
  3. Importare la classe richiesta per gestire l'accesso a requestInterceptor():

    :import com.amazonaws.auth.DefaultAWSCredentialsProviderChain :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
  4. Se si utilizzano credenziali temporanee, è necessario fornire anche il token di sessione come segue:

    System.setProperty("aws.sessionToken","(your session token)")
  5. Se non si sono ancora stabilite le credenziali dell'account, è possibile assegnarle come segue:

    System.setProperty("aws.accessKeyId","(your access key)") System.setProperty("aws.secretKey","(your secret key)")
  6. Costruire manualmente l'oggetto Cluster da connettere a Neptune:

    Nota

    L'esempio seguente è stato aggiornato per includere l'uso di requestInterceptor (). Questo è stato aggiunto nella versione 3.6.6. TinkerPop Prima della TinkerPop versione 3.6.6, l'esempio di codice utilizzava handshakeInterceptor (), che era obsoleto in quella versione.

    cluster = Cluster.build("(host name)") \ .enableSsl(true) \ .requestInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)", \ new DefaultAWSCredentialsProviderChain()); \ 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.

  7. Stabilire la connessione :remote utilizzando il nome della variabile dell'oggetto Cluster nel passaggio precedente:

    :remote connect tinkerpop.server cluster
  8. Immettere il seguente comando per passare alla modalità remota. In questo modo tutte le query Gremlin vengono inviate alla connessione remota:

    :remote console