Verbinden mit einer Datenbank über RDS Proxy - Amazon Aurora

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.

Verbinden mit einer Datenbank über RDS Proxy

Sie stellen eine Verbindung mit einem Aurora-DB-Cluster oder einem Cluster, der Aurora Serverless v2 verwendet, über einen Proxy in der Regel auf die gleiche Weise her, wie Sie eine direkte Verbindung mit der Datenbank herstellen. Der Hauptunterschied besteht darin, dass Sie anstelle des Cluster-Endpunkts den Proxy-Endpunkt angeben. Standardmäßig verfügen alle Proxy-Verbindungen über Lese-/Schreibfunktionen und verwenden die Writer-Instance. Wenn Sie den Reader-Endpunkt normalerweise für schreibgeschützte Verbindungen verwenden, können Sie einen zusätzlichen schreibgeschützten Endpunkt für den Proxy erstellen. Diesen Endpunkt können Sie auf die gleiche Weise verwenden. Weitere Informationen finden Sie unter Überblick über Proxy-Endpunkte.

Herstellen einer Verbindung mit einem Proxy mithilfe der systemeigenen Authentifizierung

Gehen Sie wie folgt vor, um mithilfe der systemeigenen Authentifizierung eine Verbindung zu einem Proxy herzustellen:

  1. Suchen Sie den Proxy-Endpunkt. Im finden Sie den AWS Management Console Endpunkt auf der Detailseite für den entsprechenden Proxy. Mit dem AWS CLI können Sie den describe-db-proxiesBefehl verwenden. Im folgenden Beispiel wird gezeigt, wie dies geschieht.

    # Add --output text to get output as a simple tab-separated list. $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}' [ [ { "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy" }, { "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-other-secret" }, { "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-rds-secret" }, { "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-t3" } ] ]
  2. Geben Sie den Endpunkt als Hostparameter in der Verbindungszeichenfolge für Ihre Client-Anwendung an. Geben Sie beispielsweise den Proxy-Endpunkt als Wert für die Option mysql -h oder psql -h an.

  3. Geben Sie denselben Datenbankbenutzernamen und dasselbe Passwort an, die Sie normalerweise verwenden.

Herstellen einer Verbindung mit einem Proxy mithilfe der IAM-Authentifizierung

Wenn Sie die IAM-Authentifizierung für RDS Proxy verwenden, müssen Sie die Benutzer Ihrer Datenbank auf die Authentifizierung mit ihrem regulären Benutzernamen und Passwort festlegen. Die IAM-Authentifizierung gilt für den Abruf von Benutzername und Passwort aus Secrets Manager durch RDS Proxy. Die Verbindung von RDS Proxy zur zugrunde liegenden Datenbank erfolgt nicht über IAM.

Um mithilfe der IAM-Authentifizierung eine Verbindung zum RDS-Proxy herzustellen, verwenden Sie dasselbe allgemeine Verbindungsverfahren wie für die IAM-Authentifizierung mit einem Aurora DB-Cluster einer . Allgemeine Informationen zur Verwendung von IAM finden Sie unter Sicherheit bei Amazon Aurora.

Zu den Hauptunterschieden bei der IAM-Nutzung für RDS Proxy gehören die folgenden:

  • Sie konfigurieren nicht jeden einzelnen Datenbankbenutzer mit einem Autorisierungs-Plugin. Die Datenbankbenutzer haben weiterhin normale Benutzernamen und Passwörter innerhalb der Datenbank. Sie richten Secrets Manager-Geheimnisse ein, die diese Benutzernamen und Passwörter enthalten, und autorisieren RDS Proxy, die Anmeldeinformationen von Secrets Manager abzurufen.

    Die IAM-Authentifizierung gilt für die Verbindung zwischen Ihrem Clientprogramm und dem Proxy. Der Proxy authentifiziert sich dann bei der Datenbank mit den Anmeldeinformationen aus Benutzername und Passwort, die von Secrets Manager abgerufen wurden.

  • Anstelle des Instance-, Cluster- oder Leser-Endpunkts geben Sie den Proxy-Endpunkt an. Weitere Informationen zum Proxy-Endpunkt finden Sie unter Herstellen einer Verbindung zu Ihrem DB--Cluster mithilfe der IAM-Authentifizierung.

  • Im Anwendungsfall mit direkter Datenbank-IAM-Authentifizierung wählen Sie Datenbankbenutzer selektiv aus und konfigurieren sie so, dass sie mit einem speziellen Authentifizierungs-Plug-In identifiziert werden. Sie können dann mit IAM-Authentifizierung eine Verbindung zu diesen Benutzern herstellen.

    Im Proxy-Anwendungsfall müssen Sie dem Proxy die Geheimnisse bereitstellen, die den Benutzernamen und das Passwort eines Benutzers enthalten (native Authentifizierung). Anschließend stellen Sie mithilfe der IAM-Authentifizierung eine Verbindung mit dem Proxy her. Hierzu generieren Sie ein Authentifizierungstoken mit dem Proxy-Endpunkt und nicht mit dem Datenbankendpunkt. Sie verwenden auch einen Benutzernamen, der mit einem der Benutzernamen für die von Ihnen angegebenen Geheimnisse übereinstimmt.

  • Sie müssen Transport Layer Security (TLS)/Secure Sockets Layer (SSL) verwenden, wenn Sie mit IAM-Authentifizierung eine Verbindung zu einem Proxy herstellen.

Sie können einem bestimmten Benutzer Zugriff auf den Proxy gewähren, indem Sie die IAM-Richtlinie ändern. Ein Beispiel folgt.

"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"

Überlegungen zum Herstellen einer Verbindung mit einem Proxy mit PostgreSQL

Wenn ein Client in PostgreSQL eine Verbindung mit einer PostgreSQL-Datenbank startet, sendet er eine Startup-Meldung. Diese Nachricht enthält Paare von Parameternamen und Wertzeichenfolgen. Weitere Informationen finden Sie unter StartupMessage in den PostgreSQL-Nachrichtenformaten in der PostgreSQL-Dokumentation.

Wenn Sie eine Verbindung über einen RDS Proxy herstellen, kann die Startmeldung die folgenden aktuell erkannten Parameter enthalten:

  • user

  • database

Die Startmeldung kann auch die folgenden zusätzlichen Laufzeitparameter enthalten:

Weitere Informationen zum PostgreSQL-Messaging finden Sie im Frontend/Backend-Protokoll in der PostgreSQL-Dokumentation.

Wenn Sie für PostgreSQL JDBC verwenden, empfehlen wir Folgendes, um Pinning zu vermeiden:

  • Stellen Sie den JDBC-Verbindungsparameter assumeMinServerVersion mindestens auf 9.0 ein, um Pinning zu vermeiden. Dadurch wird verhindert, dass der JDBC-Treiber beim Verbindungsstart, wenn er ausgeführt wird, einen zusätzlichen Roundtrip durchführt. SET extra_float_digits = 3

  • Setzen Sie den JDBC-Verbindungsparameter ApplicationName auf any/your-application-name, um Pinning zu vermeiden. Dadurch wird verhindert, dass der JDBC-Treiber beim Starten der Verbindung einen zusätzlichen Roundtrip ausführt, wenn er ausführ SET application_name = "PostgreSQL JDBC Driver". Beachten Sie, dass der JDBC-Parameter ApplicationName, der PostgreSQL-StartupMessage-Parameter aber application_name ist.

Weitere Informationen finden Sie unter Vermeiden Sie das Anheften eines Proxys RDS. Weitere Informationen zum Herstellen einer Verbindung mit JDBC finden Sie unter Verbinden mit der Datenbank in der PostgreSQL-Dokumentation.