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 sind alle Proxyverbindungen read/write fähig und verwenden die Writer-Instanz. 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.
Themen
Mit Datenbankanmeldeinformationen eine Verbindung zu einer Datenbank herstellen
Gehen Sie wie folgt vor, um mithilfe von Datenbankanmeldedaten eine Verbindung zu einem Proxy herzustellen:
-
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" } ] ] -
Geben Sie den Endpunkt als Hostparameter in der Verbindungszeichenfolge für Ihre Clientanwendung an. Geben Sie beispielsweise den Proxy-Endpunkt als Wert für die Option
mysql -hoderpsql -han. -
Geben Sie denselben Datenbankbenutzernamen und dasselbe Passwort an, die Sie normalerweise verwenden.
Mithilfe der IAM-Authentifizierung eine Verbindung zu einer Datenbank herstellen
Wenn Sie die IAM-Authentifizierung mit RDS Proxy verwenden, haben Sie zwei Optionen für die Authentifizierung zwischen Ihrem Client und dem Proxy:
-
Richten Sie Ihre Datenbankbenutzer so ein, dass sie sich mit normalen Benutzernamen und Passwörtern authentifizieren. RDS Proxy ruft den Benutzernamen und das Passwort von Secrets Manager ab. Die Verbindung von RDS-Proxy zur zugrunde liegenden Datenbank erfolgt nicht über IAM.
-
Sie können auch die end-to-end IAM-Authentifizierung verwenden, bei der über den Proxy mithilfe von IAM eine Verbindung zu Ihrer Datenbank hergestellt wird, ohne dass Datenbankanmeldeinformationen erforderlich sind.
Um mittels IAM-Authentifizierung eine Verbindung mit dem RDS-Proxy herzustellen, befolgen Sie das gleiche allgemeine Verfahren wie für die IAM-Authentifizierung mit einem Aurora-DB-Cluster. Allgemeine Informationen zur Verwendung von IAM finden Sie unter Sicherheit in Amazon Aurora. Wenn Sie die end-to-end IAM-Authentifizierung verwenden, stellen Sie Ihrem DB-Benutzer das IAM-Authentifizierungs-Plugin zur Verfügung. Siehe Erstellen eines Datenbankkontos mithilfe der IAM-Authentifizierung.
Zu den Hauptunterschieden bei der IAM-Nutzung für RDS-Proxy gehören die folgenden:
-
Bei der Standard-IAM-Authentifizierung verfügen Datenbankbenutzer über reguläre Anmeldeinformationen in 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.
-
Mit der end-to-end IAM-Authentifizierung müssen Sie Secrets Manager nicht für Datenbankanmeldedaten konfigurieren. Die IAM-Authentifizierung gilt für die Verbindung zwischen dem Client zum Proxy und dem Proxy zur Datenbank.
-
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.
-
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"
Tipp
Beachten Sie bei der Konfiguration der IAM-Authentifizierung für RDS-Proxyverbindungen die folgenden wichtigen Richtlinien, um Verbindungsprobleme zu vermeiden:
-
Gewähren Sie die
rds_iamRolle nicht und behalten Sie gleichzeitig die allgemeine Passwortauthentifizierung für denselben Datenbankbenutzer oder dieselbe Rolle bei. -
Denken Sie daran, dass Clients zwar mithilfe der IAM-Authentifizierung eine Verbindung zum RDS-Proxy herstellen, RDS-Proxy jedoch immer mithilfe der Kennwortauthentifizierung über Secrets Manager eine Verbindung zur Datenbank herstellt.
-
Wenn Sie häufig Verbindungsabbrüche und Verbindungswiederverbindungen feststellen, entfernen Sie alle vorhandenen
rds_iamBerechtigungen für den Benutzer oder die Rolle und verwenden Sie nur die Kennwortauthentifizierung. -
Stellen Sie sicher, dass Ihre Passwortrichtlinie die SCRAM-SHA-256-Anforderungen für sichere Zeichen erfüllt.
Die Kombination von IAM- und Kennwortauthentifizierungsmethoden für denselben Datenbankbenutzer kann zu Verbindungsinstabilität führen.
Überlegungen zum Herstellen einer Verbindung zu PostgreSQL
Stellen Sie beim Erstellen eines neuen PostgreSQL-Datenbankbenutzers für die Verbindung mit dem RDS-Proxy sicher, dass Sie die Benutzerberechtigung CONNECT für die Datenbank gewähren. Ohne diese kann der Benutzer keine Verbindung herstellen. Weitere Informationen finden Sie unter Hinzufügen eines neuen Datenbankbenutzers zu einer PostgreSQL-Datenbank bei Verwendung von RDS-Proxy.
Wenn ein Client beginnt, eine Verbindung mit einer PostgreSQL-Datenbank herzustellen, sendet er eine Startmeldung. Diese Nachricht enthält Paare von Parameternamen und Wertzeichenfolgen. Weitere Informationen finden Sie unter StartupMessage in den PostgreSQL-Nachrichtenformaten
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
Für PostgreSQL empfehlen wir bei Verwendung von JDBC Folgendes, um Pinning zu vermeiden:
-
Stellen Sie den JDBC-Verbindungsparameter
assumeMinServerVersionmindestens auf9.0ein, um Pinning zu vermeiden. Dadurch wird verhindert, dass der JDBC-Treiber beim Starten der Verbindung einen zusätzlichen Roundtrip durchführt, wennSET extra_float_digits = 3ausgeführt wird. -
Setzen Sie den JDBC-Verbindungsparameter
ApplicationNameauf, um Pinning zu vermeiden. Dadurch wird verhindert, dass der JDBC-Treiber beim Starten der Verbindung einen zusätzlichen Roundtrip ausführt, wenn er ausführany/your-application-nameSET application_name = "PostgreSQL JDBC Driver". Beachten Sie, dass der JDBC-ParameterApplicationName, der PostgreSQL-StartupMessage-Parameter aberapplication_nameist.
Weitere Informationen finden Sie unter Vermeiden von Pinning beim RDS-Proxy. Weitere Informationen zum Herstellen einer Verbindung mit JDBC finden Sie unter Verbinden mit der Datenbank