Herstellen einer Verbindung zu Ihrem mithilfe der IAM-Authentifizierung über die Befehlszeile: AWS CLI und MySQL-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 zu Ihrem mithilfe der IAM-Authentifizierung über die Befehlszeile: AWS CLI und MySQL-Client

Sie können von der Befehlszeile aus eine Verbindung zu einem herstellen, indem Sie das mysql Befehlszeilentool AWS CLI und verwenden, wie im Folgenden 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 SQL Workbench/J mit IAM-Authentifizierung finden Sie im Blogbeitrag IAM-Authentifikation zum Verbinden von SQL Workbench/J Aurora MySQL oder Amazon RDS for MySQL verwenden.

Generieren eines IAM-Authentifizierungstokens

Im folgenden Beispiel wird gezeigt, wie Sie ein signiertes Authentifizierungstoken mithilfe der erhalte AWS CLI.

aws rds generate-db-auth-token \ --hostname rdsmysql.123456789012.us-west-2.rds.amazonaws.com \ --port 3306 \ --region us-west-2 \ --username jane_doe

In diesem Beispiel lauten die Parameter 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 der läuft

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

Die ersten Zeichen des Tokens sehen folgendermaßen aus.

rdsmysql.123456789012.us-west-2.rds.amazonaws.com:3306/?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.

Herstellen der Verbindung zu einem DB-Instance-

Das allgemeine Format zur Herstellung einer Verbindung wird nachfolgend dargestellt.

mysql --host=hostName --port=portNumber --ssl-ca=full_path_to_ssl_certificate --enable-cleartext-plugin --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.

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

    Weitere Informationen zur SSL/TLS-Unterstützung für MariaDB finden Sie unter SSL/TLSUnterstützung für MariaDB-DB-Instances auf Amazon RDS.

    Weitere Informationen zur SSL/TLS-Unterstützung für MySQL finden Sie unter SSL/TLSUnterstützung für My SQL DB-Instances auf Amazon RDS.

    Zum Download eines SSL-Zertifikats siehe .

  • --enable-cleartext-plugin – Ein Wert, der angibt, dass AWSAuthenticationPlugin für diese Verbindung zu verwenden ist.

    Wenn Sie einen MariaDB-Client verwenden, ist die --enable-cleartext-plugin Option nicht erforderlich.

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

  • --password – Ein signiertes IAM-Authentifizierungstoken.

Das Authentifizierungstoken besteht aus hunderten von Zeichen. Dessen Handhabung in der Befehlszeile kann unhandlich sein. 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 ist eine Möglichkeit dargestellt, um dieses Problem zu umgehen. Im Beispiel ist /sample_dir/ der vollständige Pfad zur SSL-Zertifikatsdatei, die den öffentlichen Schlüssel enthält.

RDSHOST="mysqldb.123456789012.us-east-1.rds.amazonaws.com" TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --region us-west-2 --username jane_doe )" mysql --host=$RDSHOST --port=3306 --ssl-ca=/sample_dir/global-bundle.pem --enable-cleartext-plugin --user=jane_doe --password=$TOKEN

Wenn Sie die Verbindung mithilfe von AWSAuthenticationPlugin herstellen, wird die Verbindung mit SSL geschützt. Geben Sie an der mysql>-Eingabeaufforderung Folgendes ein, um dies zu überprüfen.

show status like 'Ssl%';

In den folgenden Linien in der Ausgabe finden Sie weitere Details.

+---------------+-------------+ | Variable_name | Value | +---------------+-------------+ | ... | ... | Ssl_cipher | AES256-SHA | | ... | ... | Ssl_version | TLSv1.1 | | ... | ... +-----------------------------+

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.