Verwenden eines Befehlszeilen-Tools zum Senden von Abfragen an Ihren Neptune-DB-Cluster - 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.

Verwenden eines Befehlszeilen-Tools zum Senden von Abfragen an Ihren Neptune-DB-Cluster

Die Verwendung eines Befehlszeilentools zum Senden von Abfragen an Ihren Neptune-DB-Cluster ist von Vorteil, wie in vielen Beispielen in dieser Dokumentation gezeigt wird. Das Tool curl ist eine hervorragende Option für die Kommunikation mit Neptune-Endpunkten, wenn die IAM-Authentifizierung nicht aktiviert ist.

Um Ihre Daten zu schützen, sollte jedoch die IAM-Authentifizierung aktiviert werden.

Wenn die IAM-Authentifizierung aktiviert ist, muss jede Anforderung mit Signature Version 4 (Sig4) signiert werden. Das externe Befehlszeilen-Tool awscurl verwendet dieselbe Syntax wie curl und kann Abfragen mithilfe der Sig4-Signierung signieren. Im folgenden Abschnitt zu Verwenden von awscurl wird die sichere Verwendung von awscurl mit temporären Anmeldeinformationen beschrieben.

Einrichten eines Befehlszeilen-Tools für die Verwendung von HTTPS

Neptune setzt voraus, dass alle Verbindungen HTTPS verwenden. Jedes Befehlszeilen-Tool wie curl oder awscurl benötigt Zugriff auf entsprechende Zertifikate, um HTTPS verwenden zu können. Solange curl oder awscurl die entsprechenden Zertifikate finden kann, werden HTTPS-Verbindungen wie HTTP-Verbindungen behandelt, ohne dass zusätzliche Parameter benötigt werden. Die Beispiele in dieser Dokumentation basieren auf diesem Szenario.

Informationen zum Abruf dieser Zertifikate und ihrer korrekten Formatierung als CA-Speicher, den curl verwenden kann, finden Sie unter SSL-Zertifikat-Verifizierung in der curl-Dokumentation.

Sie können den Speicherort des CA-Zertifikatspeichers anschließend mittels der CURL_CA_BUNDLE-Umgebungsvariable speichern. Unter Windows sucht curl automatisch in einer Datei mit dem Namen curl-ca-bundle.crt danach. Es sucht zunächst in demselben Verzeichnis wie curl.exe und anschließend an anderer Stelle im Pfad. Weitere Informationen finden Sie unter SSL Certificate Verification.

Verwenden von awscurl mit temporären Anmeldeinformationen für sichere Verbindungen zu DB-Clustern mit aktivierter IAM-Authentifizierung

Das Tool awscurl verwendet dieselbe Syntax wiecurl, benötigt jedoch auch zusätzliche Informationen:

  • --access_key   –   Gültiger Zugriffsschlüssel. Wenn nicht mit diesem Parameter angegeben, muss er in der Umgebungsvariablen AWS_ACCESS_KEY_ID oder in einer Konfigurationsdatei angegeben werden.

  • --secret_key   –   Gültiger Geheimschlüssel, der dem Zugriffsschlüssel entspricht Wenn nicht mit diesem Parameter angegeben, muss er in der Umgebungsvariablen AWS_SECRET_ACCESS_KEY oder in einer Konfigurationsdatei angegeben werden.

  • --security_token   –   Gültiges Sitzungstoken. Wenn nicht mit diesem Parameter angegeben, muss er in der Umgebungsvariablen AWS_SECURITY_TOKEN oder in einer Konfigurationsdatei angegeben werden.

In der Vergangenheit war es üblich, persistente Anmeldeinformationen mit awscurl zu verwenden, z. B. IAM-Benutzeranmeldeinformationen oder sogar Root-Anmeldeinformationen. Dies wird jedoch nicht empfohlen. Generieren Sie stattdessen temporäre Anmeldeinformationen mit einer der AWS -Security-Token-Service (STS)-APIs oder einem ihrer AWS CLI Wrapper.

Sie sollten die Werte AccessKeyId, SecretAccessKey und SessionToken, die vom STS-Aufruf zurückgegeben werden, in entsprechenden Umgebungsvariablen in Ihrer Shell-Sitzung platzieren und nicht in einer Konfigurationsdatei. Wenn die Shell beendet wird, werden die Anmeldeinformationen automatisch verworfen, anders als bei einer Konfigurationsdatei. Sie sollten auch keine längere Dauer für die temporären Anmeldeinformationen anfordern als wahrscheinlich benötigt.

Das folgende Beispiel zeigt die Schritte, die Sie in einer Linux-Shell ausführen könnten, um mittels sts assume-role temporäre, für eine halbe Stunde gültige Anmeldeinformationen zu erhalten und sie dann in Umgebungsvariablen zu platzieren, in denen awscurl sie finden kann:

aws sts assume-role \ --duration-seconds 1800 \ --role-arn "arn:aws:iam::(account-id):role/(rolename)" \ --role-session-name AWSCLI-Session > $output AccessKeyId=$(cat $output | jq '.Credentials''.AccessKeyId') SecretAccessKey=$(cat $output | jq '.Credentials''.SecretAccessKey') SessionToken=$(cat $output | jq '.Credentials''.SessionToken') export AWS_ACCESS_KEY_ID=$AccessKeyId export AWS_SECRET_ACCESS_KEY=$SecretAccessKey export AWS_SESSION_TOKEN=$SessionToken

Sie könnten dann awscurl verwenden, um eine signierte Anforderung ähnlich dieser an Ihren DB-Cluster zu senden:

awscurl (your cluster endpoint):8182/status \ --region us-east-1 \ --service neptune-db