Connexion à Neptune à l'aide de la console Gremlin avec la signature Signature Version 4 - 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 à Neptune à l'aide de la console Gremlin avec la signature Signature Version 4

La manière dont vous vous connectez à Amazon Neptune à l'aide de la console Gremlin avec l'authentification Signature version 4 varie selon que vous utilisez une version ou une TinkerPop version ultérieure, 3.4.11 ou une version antérieure. Dans les deux cas, les prérequis suivants sont nécessaires :

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. Voir Utilisation d'informations d'identification de sécurité temporaires pour demander l'accès à AWS ressources du guide de IAM l'utilisateur.

Pour obtenir de l'aide sur la connexion à l'aide deSSL/TLS, consultezSSL/TLSconfiguration.

Utilisation de la TinkerPop version 3.4.11 ou supérieure pour se connecter à Neptune avec la signature Sig4

Avec la TinkerPop version 3.4.11 ou supérieure, vous utiliserezhandshakeInterceptor(), qui permet de connecter un signataire Sigv4 à la connexion établie par la commande. :remote Comme pour l'approche utilisée pour Java, vous devez configurer l'objet Clustermanuellement, puis le transmettre à la commande :remote.

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 handshakeInterceptor() doit être défini par programmation et ne peut pas charger sa configuration à partir d'un fichier.

Connect la console Gremlin (TinkerPop 3.4.11 et versions ultérieures) à l'aide de la signature Sig4
  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 HTTP proxy, vous pouvez rencontrer des erreurs lors de cette étape où la :install commande 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 handshakeInterceptor() :

    :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 :

    cluster = Cluster.build("(host name)") \ .enableSsl(true) \ .handshakeInterceptor { 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

Utilisation d'une version TinkerPop antérieure à 3.4.11 pour se connecter à Neptune avec la signature Sig4

Avec la TinkerPop version 3.4.10 ou une version antérieure, utilisez la amazon-neptune-gremlin-java-sigv4 bibliothèque fournie par Neptune pour connecter la console à Neptune avec la signature Sigv4, comme décrit ci-dessous :

Connect la console Gkremlin (TinkerPop versions antérieures à 3.4.11) à l'aide de la signature Sig4
  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
    Note

    Si vous utilisez un HTTP proxy, vous pouvez rencontrer des erreurs lors de cette étape où la :install commande 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)")

    Il peut également être utile de consulter la TinkerPop documentation sur la configuration de Grape.

  3. Dans le sous-répertoire conf du répertoire extrait, créez un fichier nommé neptune-remote.yaml.

    Si vous avez utilisé le AWS CloudFormation modèle pour créer votre cluster de base de données Neptune, un neptune-remote.yaml fichier existera déjà. Dans ce cas, il vous suffit de modifier le fichier existant pour inclure le paramètre « channelizer » illustré ci-dessous.

    Sinon, copiez le texte suivant dans le fichier en remplaçant (host name) avec le nom d'hôte ou l'adresse IP de votre instance de base de données Neptune. Notez que les crochets ([]) encadrant le nom d'hôte sont obligatoires.

    hosts: [(host name)] port: 8182 connectionPool: { channelizer: org.apache.tinkerpop.gremlin.driver.SigV4WebSocketChannelizer, enableSsl: true } serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}
  4. Important

    Vous devez fournir des IAM informations d'identification pour signer les demandes. Saisissez les commandes suivantes pour définir vos informations d'identification en tant que variables d'environnement, en remplaçant les éléments pertinents par vos informations d'identification.

    export AWS_ACCESS_KEY_ID=access_key_id export AWS_SECRET_ACCESS_KEY=secret_access_key export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1

    Le signataire Neptune Version 4 utilise la chaîne de fournisseur d'informations d'identification par défaut. Pour d'autres méthodes de fourniture d'informations d'identification, voir Utilisation de la chaîne de fournisseurs d'informations d'identification par défaut dans AWS SDK for Java Guide du développeur.

    La variable SERVICE_REGION est obligatoire, même lors de l'utilisation d'un fichier d'informations d'identification.

  5. Établissez la connexion :remote à l'aide du fichier .yaml :

    :remote connect tinkerpop.server conf/neptune-remote.yaml
  6. Entrez la commande suivante pour passer en mode distant, ce qui enverra les requêtes Gremlin à la connexion à distance :

    :remote console