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 Curl-Tool ist eine hervorragende Option für die Kommunikation mit Neptune-Endpunkten, wenn die IAM Authentifizierung nicht aktiviert ist.

Um Ihre Daten zu schützen, ist es jedoch am besten, die Authentifizierung zu aktivieren. IAM

Wenn die IAM Authentifizierung aktiviert ist, muss jede Anfrage 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.

Ein zu verwendendes Befehlszeilentool einrichten HTTPS

Neptune setzt voraus, dass alle Verbindungen verwendet werden. HTTPS Jedes Befehlszeilentool wie curl oder awscurl benötigt Zugriff auf entsprechende Zertifikate, um es verwenden zu können. HTTPS Solange die entsprechenden Zertifikate gefunden awscurl werden curl oder gefunden werden können, behandeln sie HTTPS Verbindungen genauso wie HTTP Verbindungen, ohne dass zusätzliche Parameter erforderlich sind. Die Beispiele in dieser Dokumentation basieren auf diesem Szenario.

Informationen darüber, wie Sie solche Zertifikate erhalten und sie ordnungsgemäß in einen Zertifikatsspeicher der Zertifizierungsstelle (CA) formatieren, den Sie verwenden curl können, finden Sie in der curl Dokumentation unter SSLZertifikatsüberprüfung.

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 SSLZertifikatsüberprüfung.

Verwendung awscurl mit temporären Anmeldeinformationen für eine sichere Verbindung zu einem DB-Cluster 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 wie IAM Benutzeranmeldedaten oder sogar Root-Anmeldeinformationen zu verwenden, was jedoch nicht empfohlen wird. awscurl Generieren Sie stattdessen temporäre Anmeldeinformationen mit einem der AWS Security Token Service (STS) APIs oder einen ihrer AWS CLI Wrapper.

Es empfiehlt sichAccessKeyId, die SessionToken Werte, undSecretAccessKey, die durch den STS Aufruf zurückgegeben werden, in entsprechenden Umgebungsvariablen in Ihrer Shell-Sitzung zu 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