Herstellen einer Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung von der Befehlszeile aus: AWS CLI und psql-Client - Amazon Relational Database Service

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 mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung von der Befehlszeile aus: AWS CLI und psql-Client

Sie können über die Befehlszeile eine Verbindung mit einer Amazon-RDS-for-PostgreSQL-DB-Instance einem mit der AWS CLI und dem psql-Befehlszeilen-Tool herstellen, wie nachfolgend beschrieben.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:

Anmerkung

Informationen zum Herstellen einer Verbindung mit Ihrer Datenbank mithilfe von pgAdmin mit IAM-Authentifizierung finden Sie im Blogbeitrag Using IAM authentication to connect with pgAdmin Amazon Aurora PostgreSQL or Amazon RDS for PostgreSQL.

Generieren eines IAM-Authentifizierungstokens

Das Authentifizierungstoken besteht aus hunderten von Zeichen, wodurch es in der Befehlszeile unhandlich wird. Eine Möglichkeit zur Umgehung dieses Problems besteht darin, das Token in einer Umgebungsvariable zu speichern und dann bei der Verbindungsherstellung diese Variable zu verwenden. Im folgenden Beispiel wird gezeigt, wie Sie die AWS CLI verwenden, um ein signiertes Authentifizierungstoken mithilfe des generate-db-auth-token-Befehls zu erzeugen und dieses anschließend in einer PGPASSWORD-Umgebungsvariablen zu speichern.

export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )"

In diesem Beispiel lauten die Parameter für den generate-db-auth-token-Befehl folgendermaßen:

  • --hostname– Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.

  • --port – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.

  • --region – Die AWS-Region, in der die DB-Instance ausgeführt wird.

  • --username – Das Datenbankkonto, auf das Sie zugreifen möchten.

Die ersten Zeichen des generierten Tokens sehen folgendermaßen aus.

rdspostgres.123456789012.us-west-2.rds.amazonaws.com:5432/?Action=connect&DBUser=jane_doe&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900...
Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

Verbinden mit einem Amazon RDS-PostgreSQL-Instance und

Das allgemeine Format zur Herstellung einer Verbindung mithilfe von psql wird nachfolgend dargestellt.

psql "host=hostName port=portNumber sslmode=verify-full sslrootcert=full_path_to_ssl_certificate dbname=DBName user=userName password=authToken"

Dabei werden die folgenden Parameter verwendet:

  • host– Der Hostname des DB-Instance-, auf den Sie zugreifen möchten.

  • port – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.

  • sslmode – Der zu verwendende SSL-Modus.

    Wenn Sie sslmode=verify-full verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats.

  • sslrootcert – Die SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält

    Weitere Informationen finden Sie unter Verwendung SSL mit einer SQL Postgre-DB-Instance.

    Zum Download eines SSL-Zertifikats siehe .

  • dbname – Die Datenbank, auf die Sie zugreifen möchten.

  • user – Das Datenbankkonto, auf das Sie zugreifen möchten.

  • password – Ein signiertes IAM-Authentifizierungstoken.

Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

Das folgende Beispiel zeigt die Verwendung von psql für die Verbindung. Im Beispiel verwendet psql die Umgebungsvariable RDSHOST für den Host und die Umgebungsvariable PGPASSWORD für das generierte Token. Zudem ist /sample_dir/ der vollständige Pfad zur SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält.

export RDSHOST="rdspostgres.123456789012.us-west-2.rds.amazonaws.com" export PGPASSWORD="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 5432 --region us-west-2 --username jane_doe )" psql "host=$RDSHOST port=5432 sslmode=verify-full sslrootcert=/sample_dir/global-bundle.pem dbname=DBName user=jane_doe password=$PGPASSWORD"

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter Herstellen einer Verbindung mit einem Proxy mithilfe der IAM-Authentifizierung.