Connexion aux bases de données Amazon Neptune à l'aide de l'authentification IAM avec la console Gkremlin - Amazon Neptune

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 Gkremlin

Deux conditions préalables sont requises pour connecter Amazon Neptune à l'aide de la console Gremlin avec l'authentification Signature Version 4 :

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 dans le guide de l'utilisateur IAM.

Pour obtenir de l'aide sur la connexion via SSL/TLS, consultez Configuration SSL/TLS.

La :remote commande est utilisée pour créer une connexion entre la console G705 et Neptune. Vous utiliserez le requestInterceptor() pour connecter un signataire Sigv4 à cette connexion afin de l'authentifier via IAM.

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.

Connect la console G705 avec la signature Sigv4
  1. Démarrez la console Gremlin :

    $ bin/gremlin.sh
  2. À 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 à la configuration de Grape.

    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)")
  3. Importez la classe requise pour gérer la signature dans requestInterceptor() :

    :import com.amazonaws.auth.DefaultAWSCredentialsProviderChain :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
  4. 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)")
  5. 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)")
  6. Construisez manuellement l'objet Cluster à connecter à Neptune :

    Note

    L'exemple suivant a été mis à jour pour inclure l'utilisation de RequestInterceptor (). Cela a été ajouté dans la version TinkerPop 3.6.6. Avant la TinkerPop version 3.6.6, l'exemple de code utilisait HandshakeInterceptor (), qui était obsolète avec cette version.

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

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

    :remote connect tinkerpop.server cluster
  8. Entrez la commande suivante pour passer en mode distant. Toutes les requêtes Gremlin sont alors envoyées à la connexion distante.

    :remote console