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
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 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.
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 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 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