Herstellen einer Verbindung zu Amazon Neptune Neptune-Datenbanken mithilfe der IAM-Authentifizierung mit der Gremlin-Konsole - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Herstellen einer Verbindung zu Amazon Neptune Neptune-Datenbanken mithilfe der IAM-Authentifizierung mit der Gremlin-Konsole

Es gibt zwei Voraussetzungen, um Amazon Neptune mithilfe der Gremlin Console mit Signature Version 4-Authentifizierung zu verbinden:

  • Sie müssen die nötigen IAM-Anmeldeinformationen zum Signieren der Anforderungen besitzen. Weitere Informationen finden Sie unter Verwenden der standardmäßigen Anbieterkette für Anmeldeinformationen im Entwicklerhandbuch. AWS SDK for Java

  • Sie müssen eine Version der Gremlin-Konsole installieren, die mit der Version der Neptune-Engine kompatibel ist, die von Ihrem DB-Cluster verwendet wird.

Wenn Sie temporäre Anmeldeinformationen verwenden, laufen diese nach einem bestimmten Intervall ab, ebenso wie das Sitzungstoken. Sie müssen Ihr Sitzungstoken daher aktualisieren, wenn Sie neue Anmeldeinformationen anfordern. Weitere Informationen finden Sie im IAM-Benutzerhandbuch unter Verwenden temporärer Sicherheitsanmeldedaten, um Zugriff auf AWS Ressourcen anzufordern.

Hilfe zum Herstellen von Verbindungen über SSL/TLS finden Sie unter SSL/TLS-Konfiguration.

Der :remote Befehl wird verwendet, um eine Verbindung von der Gremlin Console zu Neptune herzustellen. Sie werden den verwendenrequestInterceptor(), um einen Sigv4-Signaturer an diese Verbindung anzuschließen, um sie über IAM zu authentifizieren.

Beachten Sie, dass sich dies deutlich von der typischen Situation unterscheidet, in der für den Befehl :remote eine Konfigurationsdatei benötigt wird, um die Verbindung herzustellen. Der Ansatz mit einer Konfigurationsdatei funktioniert nicht, da requestInterceptor() programmgesteuert festgelegt werden muss und daher die Konfiguration nicht aus einer Datei laden kann.

Connect die Gremlin-Konsole mit Sigv4-Signatur
  1. Starten Sie die Gremlin-Konsole:

    $ bin/gremlin.sh
  2. Installieren Sie bei der Eingabeaufforderung gremlin> die amazon-neptune-sigv4-signer-Bibliothek. (Sie müssen dies nur einmal für die Konsole ausführen):

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

    Wenn Sie bei diesem Schritt auf Probleme stoßen, kann es hilfreich sein, die TinkerPop Dokumentation zur Grape-Konfiguration zu lesen.

    Anmerkung

    Wenn Sie einen HTTP-Proxy verwenden, können bei diesem Schritt Fehler auftreten, durch die der :install-Befehl nicht abgeschlossen wird. Führen Sie zur Problembehebung die folgenden Befehle aus, um der Konsole den Proxy mitzuteilen:

    System.setProperty("https.proxyHost", "(the proxy IP address)") System.setProperty("https.proxyPort", "(the proxy port)")
  3. Importieren Sie die Klasse, die für die Verarbeitung der Signierung erforderlich ist, in requestInterceptor():

    :import com.amazonaws.auth.DefaultAWSCredentialsProviderChain :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
  4. Wenn Sie temporäre Anmeldeinformationen verwenden, müssen Sie auch Ihr Sitzungstoken wie folgt angeben:

    System.setProperty("aws.sessionToken","(your session token)")
  5. Wenn Sie Ihre Kontoanmeldeinformationen nicht anderweitig eingerichtet haben, können Sie sie wie folgt zuweisen:

    System.setProperty("aws.accessKeyId","(your access key)") System.setProperty("aws.secretKey","(your secret key)")
  6. Konstruieren Sie das Cluster-Objekt manuell, um eine Verbindung zu Neptune herzustellen:

    Anmerkung

    Das folgende Beispiel wurde aktualisiert und beinhaltet nun die Verwendung von requestInterceptor (). Dies wurde in 3.6.6 hinzugefügt. TinkerPop Vor TinkerPop Version 3.6.6 verwendete das Codebeispiel HandshakeInterceptor (), das in dieser Version veraltet war.

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

    Hilfe bei der Suche nach dem Hostnamen einer Neptune-DB-Instance finden Sie unter Verbinden mit Amazo-Neptune-Endpunkten.

  7. Stellen Sie die :remote-Verbindung mithilfe des Variablennamens des Cluster-Objekts im vorherigen Schritt her:

    :remote connect tinkerpop.server cluster
  8. Geben Sie den folgenden Befehl ein, um zum Remote-Modus zu wechseln. Dies sendet alle Gremlin-Abfragen an die Remote-Verbindung.

    :remote console