

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
<a name="iam-auth-connecting-gremlin-console"></a>

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'`Cluster`oggetto 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 utilizzano`requestInterceptor()`, 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](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/credentials-chain.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) l'utente IAM.

Per informazioni sulla connessione tramite SSL/TLS, consulta [Configurazione SSL/TLS](access-graph-gremlin-java.md#access-graph-gremlin-java-ssl).

**Connect la console Gremlin con la firma Sig4**

1. Avviare la console Gremlin:

   ```
   $ bin/gremlin.sh
   ```

1. 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](https://tinkerpop.apache.org/docs/current/reference/#gremlin-applications) sulla configurazione di Grape.](http://docs.groovy-lang.org/latest/html/documentation/grape.html)
**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)")
   ```

1. Importare la classe richiesta per gestire l'accesso a `requestInterceptor()`:

   ```
   :import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider
   :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
   ```

1. Se si utilizzano credenziali temporanee, è necessario fornire anche il token di sessione come segue:

   ```
   System.setProperty("aws.sessionToken","(your session token)")
   ```

1. 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)")
   ```

1. Costruire manualmente l'oggetto `Cluster` da 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](feature-overview-endpoints.md).

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

   ```
   :remote connect tinkerpop.server cluster
   ```

1. Immettere il seguente comando per passare alla modalità remota. In questo modo tutte le query Gremlin vengono inviate alla connessione remota:

   ```
   :remote console
   ```