

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec la console Gremlin
<a name="iam-auth-connecting-gremlin-console"></a>

Pour vous connecter à Amazon Neptune à l'aide de la console Gremlin avec authentification Signature Version 4, vous devez `requestInterceptor()` connecter un signataire SigV4 à la connexion établie par la commande. `:remote` Cela nécessite que vous configuriez l'`Cluster`objet manuellement, puis que vous le transmettiez à la `:remote` commande.

Notez que cela est très différent de la situation typique où la commande `:remote` utilise un fichier de configuration pour établir la connexion. L'approche utilisant le fichier de configuration ne fonctionne pas, car `requestInterceptor()` doit être défini par programmation et ne peut pas charger sa configuration à partir d'un fichier.

**Note**  
Les exemples suivants utilisent`requestInterceptor()`, qui a été introduit dans la version TinkerPop 3.6.6. Si vous utilisez une TinkerPop version antérieure à 3.6.6 (mais 3.5.5 ou supérieure), utilisez `handshakeInterceptor()` plutôt que `requestInterceptor()` dans les exemples de code ci-dessous.

Les prérequis suivants sont nécessaires :
+ Vous devez fournir les informations d'identification IAM nécessaires pour signer les demandes. Consultez la section [Utilisation de la chaîne de fournisseurs d'informations d'identification par défaut](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/credentials-chain.html) dans le Guide du AWS SDK pour Java développeur.
+ Vous devez avoir installé une version de la console Gremlin compatible avec la version du moteur Neptune utilisée par le cluster de bases de données.

Si vous utilisez des informations d'identification temporaires, elles expirent après un intervalle spécifié, tout comme le jeton de session. Vous devez donc mettre à jour le jeton de session lorsque vous demandez de nouvelles informations d'identification. Consultez la section [Utilisation d'informations d'identification de sécurité temporaires pour demander l'accès aux AWS ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) dans le guide de l'utilisateur IAM.

Pour obtenir de l'aide concernant la connexion à l'aide SSL/TLS, voir[SSL/TLS configuration](access-graph-gremlin-java.md#access-graph-gremlin-java-ssl).

**Connect la console G705 avec la signature Sig4**

1. Démarrez la console Gremlin :

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

1. À l'invite `gremlin>`, installez la bibliothèque `amazon-neptune-sigv4-signer` (cette opération ne doit être effectuée qu'une seule fois pour la console) :

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

   Si vous rencontrez des problèmes lors de cette étape, il peut être utile de consulter la [TinkerPop documentation relative](https://tinkerpop.apache.org/docs/current/reference/#gremlin-applications) à la configuration de [Grape](http://docs.groovy-lang.org/latest/html/documentation/grape.html).
**Note**  
Si vous utilisez un proxy HTTP, vous risquez de rencontrer des erreurs lors de cette étape où la commande `:install` ne s’exécute pas. Afin de résoudre ce problème, exécutez les commandes suivantes pour informer la console de l’existence du proxy :  

   ```
   System.setProperty("https.proxyHost", "{{(the proxy IP address)}}")
   System.setProperty("https.proxyPort", "{{(the proxy port)}}")
   ```

1. Importez la classe requise pour gérer la signature dans `requestInterceptor()` :

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

1. Si vous utilisez des informations d'identification temporaires, vous devrez également fournir votre jeton de session comme suit :

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

1. Si vous n'avez pas encore établi les informations d'identification de votre compte, vous pouvez les attribuer comme suit :

   ```
   System.setProperty("aws.accessKeyId","{{{{(your access key)}}}}")
   System.setProperty("aws.secretKey","{{(your secret key)}}")
   ```

1. Construisez manuellement l'objet `Cluster` à connecter à Neptune :

   ```
   cluster = Cluster.build("{{(host name)}}")  \
                    .enableSsl(true) \
                    .requestInterceptor { r ->  \
                      def sigV4Signer = new NeptuneNettyHttpSigV4Signer("{{(Amazon region)}}", \
                                        DefaultCredentialsProvider.create()); \
                      sigV4Signer.signRequest(r); \
                      return r; } \
                    .create()
   ```

   Pour découvrir comment trouver le nom d'hôte de l'instance de base de données Neptune, consultez [Connexion aux points de terminaison Amazon Neptune](feature-overview-endpoints.md).

1. Pour établir la connexion `:remote`, utilisez le nom de variable de l'objet `Cluster` à l'étape précédente :

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

1. Entrez la commande suivante pour passer en mode distant. Toutes les requêtes Gremlin sont alors envoyées à la connexion distante.

   ```
   :remote console
   ```