

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 über die Befehlszeile
<a name="iam-auth-connect-command-line"></a>

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](https://curl.haxx.se/) 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)](https://docs.aws.amazon.com/general/latest/gr/signing-aws-api-requests.html) signiert werden. Das externe Befehlszeilen-Tool [awscurl](https://github.com/okigan/awscurl) verwendet dieselbe Syntax wie `curl` und kann Abfragen mithilfe der Sig4-Signierung signieren. Im folgenden Abschnitt zu [Verwenden von `awscurl`](#iam-auth-connect-awscurl) wird die sichere Verwendung von `awscurl` mit temporären Anmeldeinformationen beschrieben.

## Einrichten eines Befehlszeilen-Tools für die Verwendung von HTTPS
<a name="iam-auth-connect-command-line-https"></a>

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](https://curl.haxx.se/docs/sslcerts.html) 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](https://curl.haxx.se/docs/sslcerts.html).

## Verwenden von `awscurl` mit temporären Anmeldeinformationen für sichere Verbindungen zu DB-Clustern mit aktivierter IAM-Authentifizierung
<a name="iam-auth-connect-awscurl"></a>

Das Tool [awscurl](https://github.com/okigan/awscurl) verwendet dieselbe Syntax wie`curl`, 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 einem der [AWS Security Token Service (STS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) oder einem ihrer APIs Wrapper.AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/sts/index.html)

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](https://docs.aws.amazon.com/cli/latest/reference/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=$(echo $output | jq '.Credentials''.AccessKeyId')
SecretAccessKey=$(echo $output | jq '.Credentials''.SecretAccessKey')
SessionToken=$(echo $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
```