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.
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
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 awscurlcurl
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-Verifizierungcurl
-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 awscurlcurl
, benötigt jedoch auch zusätzliche Informationen:
-
--access_key
– Gültiger Zugriffsschlüssel. Wenn nicht mit diesem Parameter angegeben, muss er in der UmgebungsvariablenAWS_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 UmgebungsvariablenAWS_SECRET_ACCESS_KEY
oder in einer Konfigurationsdatei angegeben werden. -
--security_token
– Gültiges Sitzungstoken. Wenn nicht mit diesem Parameter angegeben, muss er in der UmgebungsvariablenAWS_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 einem der AWS
Security Token Service (STS) oder einem ihrer APIs Wrapper.AWS CLI
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