

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
<a name="iam-auth-connecting-gremlin-console"></a>

Um über die Gremlin-Konsole mit Signature Version 4-Authentifizierung eine Verbindung zu Amazon Neptune herzustellen, schließen Sie einen Sigv4-Signaturer `requestInterceptor()` an die durch den Befehl hergestellte Verbindung an. `:remote` Dazu müssen Sie das `Cluster` Objekt manuell konfigurieren und es dann an den Befehl übergeben. `:remote`

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.

**Anmerkung**  
Die folgenden Beispiele verwenden`requestInterceptor()`, was in TinkerPop 3.6.6 eingeführt wurde. Wenn Sie eine frühere TinkerPop Version als 3.6.6 (aber 3.5.5 oder höher) verwenden, verwenden Sie `handshakeInterceptor()` statt `requestInterceptor()` in den folgenden Codebeispielen.

Die folgenden Voraussetzungen sind erforderlich:
+ 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](https://docs.aws.amazon.com//sdk-for-java/latest/developer-guide/credentials-chain.html) im AWS SDK für Java Entwicklerhandbuch.
+ 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html).

Hilfe zum Herstellen von Verbindungen über SSL/TLS finden Sie unter [SSL/TLS-Konfiguration](access-graph-gremlin-java.md#access-graph-gremlin-java-ssl).

**Connect die Gremlin-Konsole mit Sig4-Signatur**

1. Starten Sie die Gremlin-Konsole:

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

1. 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](https://tinkerpop.apache.org/docs/current/reference/#gremlin-applications) zur Grape-Konfiguration zu lesen.](http://docs.groovy-lang.org/latest/html/documentation/grape.html)
**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)")
   ```

1. Importieren Sie die Klasse, die für die Verarbeitung der Signierung erforderlich ist, in `requestInterceptor()`:

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

1. Wenn Sie temporäre Anmeldeinformationen verwenden, müssen Sie auch Ihr Sitzungstoken wie folgt angeben:

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

1. 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)")
   ```

1. Konstruieren Sie das `Cluster`-Objekt manuell, um eine Verbindung zu Neptune herzustellen:

   ```
   cluster = Cluster.build("(host name)")  \
                    .enableSsl(true) \
                    .requestInterceptor { r ->  \
                      def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)", \
                                        DefaultCredentialsProvider.create()); \
                      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](feature-overview-endpoints.md).

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

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

1. Geben Sie den folgenden Befehl ein, um zum Remote-Modus zu wechseln. Dies sendet alle Gremlin-Abfragen an die Remote-Verbindung.

   ```
   :remote console
   ```