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

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 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 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 G705 (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 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)")

    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 existe 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) par le nomd'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 informations d'identification IAM 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 obtenir d'autres méthodes de mise à disposition d'informations d'identification, consultez Utilisation de la chaîne de fournisseur d'informations d'identification par défaut dans le Guide du développeur AWS SDK for Java .

    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