Conexión a una base de datos mediante RDS Proxy
Se conecta a un clúster de base de datos de Aurora o a un clúster que usa Aurora Serverless v2 a través de un proxy, generalmente de la misma manera que se conecta directamente a la base de datos. La principal diferencia es que se especifica el punto de conexión del proxy en lugar del punto de conexión del clúster. De forma predeterminada, todas las conexiones del proxy tienen capacidad de lectura o escritura y utilizan la instancia de escritor. Si normalmente utiliza el punto de conexión del lector para conexiones de solo lectura, puede crear un punto de conexión de solo lectura adicional para el proxy. Puede usar ese punto de conexión de la misma manera. Para obtener más información, consulte Información general de los puntos de enlace de proxy.
Temas
Conexión a una base de datos mediante credenciales de base de datos
Siga los siguientes pasos para conectarse a un proxy mediante credenciales de base de datos:
-
Buscar el punto de enlace del proxy. En la Consola de administración de AWS, puede encontrar el punto de enlace en la página de detalles del proxy correspondiente. Con la AWS CLI, puede usar el comando describe-db-proxies. El siguiente ejemplo muestra cómo.
# 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" } ] ] -
Especifique el punto de conexión como parámetro del host en la cadena de conexión de la aplicación cliente. Por ejemplo, especifique el punto de enlace del proxy como el valor para la opción
mysql -ho la opciónpsql -h. -
Proporcione el mismo nombre de usuario y contraseña de la base de datos como suele hacer.
Conexión a una base de datos mediante autenticación de IAM
Cuando utilice la autenticación de IAM con RDS Proxy, tendrá dos opciones de autenticación entre el cliente y el proxy:
-
Configure los usuarios de la base de datos para que se autentiquen con nombres de usuario y contraseñas normales. El RDS Proxy recupera el nombre de usuario y las credenciales de contraseña de Secrets Manager. La conexión desde RDS Proxy a la base de datos subyacente no pasa a través de IAM.
-
También puede utilizar la autenticación de IAM integral, que se conecta a la base de datos a través del proxy mediante IAM sin necesidad de credenciales de base de datos.
Para conectarse a RDS Proxy utilizando la autenticación de IAM, utilice el mismo procedimiento general de conexión que para la autenticación de IAM con un clúster de bases de datos de Aurora. Para obtener más información acerca del uso de la IAM, consulte Seguridad en Amazon Aurora. Si utiliza la autenticación de IAM integral, proporcione el complemento de autenticación de IAM al usuario de base de datos. Consulte Creación de cuentas de base de datos utilizando autenticación de IAM.
Las principales diferencias en el uso de IAM para RDS Proxy incluyen las siguientes:
-
Con la autenticación de IAM estándar, los usuarios de la base de datos disponen de credenciales habituales en la base de datos. Se configuran los secretos de Secrets Manager que contienen estos nombres de usuario y contraseñas y se autoriza al RDS Proxy para recuperar las credenciales de Secrets Manager. La autenticación IAM se aplica a la conexión entre el programa cliente y el proxy. A continuación, el proxy se autentica en la base de datos utilizando las credenciales de nombre de usuario y contraseña recuperadas de Secrets Manager.
-
Con la autenticación de IAM integral, no es necesario configurar los secretos de Secrets Manager para las credenciales de la base de datos. La autenticación de IAM se aplica a la conexión entre el cliente y el proxy y el proxy y la base de datos.
-
En lugar del punto de enlace de instancia, clúster o lector, se especifica el punto de enlace del proxy. Para obtener detalles sobre el punto de enlace del proxy, consulte Conexión a al clúster de bases de datos con la autenticación de IAM.
-
Asegúrese de que usa Transport Layer Security (TLS)/Capa de sockets seguros (SSL) cuando se conecte a un proxy mediante la autenticación de IAM.
Puede conceder acceso al proxy a un usuario específico modificando la política de IAM. Ejemplo:
"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
sugerencia
Al configurar la autenticación de IAM para las conexiones de RDS Proxy, siga estas instrucciones importantes para evitar problemas de conexión:
-
No conceda el rol de
rds_iammientras mantenga la autenticación de contraseña general para el mismo usuario o rol de la base de datos. -
Recuerde que, mientras los clientes se conectan a RDS Proxy mediante la autenticación de IAM, RDS Proxy siempre se conecta a la base de datos mediante la autenticación de contraseña a través de Secrets Manager.
-
Si la conexión se termina o se vuelve a conectar con frecuencia, elimine cualquier concesión de
rds_iamexistente del usuario o rol y utilice solo la autenticación con contraseña. -
Asegúrese de que la política de contraseñas cumpla con los requisitos de caracteres seguros de SCRAM-SHA-256.
La combinación de métodos de autenticación de IAM y contraseña para el mismo usuario de la base de datos puede provocar inestabilidad de conexión.
Consideraciones para conectarse a PostgreSQL
Si crea un nuevo usuario de base de datos de PostgreSQL para conectarse a RDS Proxy, asegúrese de conceder al usuario el privilegio CONNECT en la base de datos. Sin esto, el usuario no puede establecer una conexión. Para obtener más información, consulte Cómo añadir un nuevo usuario de base de datos a una base de datos PostgreSQL al usar RDS Proxy.
Cuando un cliente comienza una conexión a una base de datos de PostgreSQL, envía un mensaje de inicio. Este mensaje incluye pares de cadenas de nombres y valores de parámetros. Para obtener detalles, consulte StartupMessage en Formatos de mensaje de PostgreSQL
Al conectarse a través de un proxy de RDS, el mensaje de inicio puede incluir los siguientes parámetros reconocidos actualmente:
-
user -
database
El mensaje de inicio también puede incluir los siguientes parámetros de tiempo de ejecución adicionales:
Para obtener más información acerca de la mensajería de PostgreSQL, consulte el Protocolo Frontend/Backend
Para PostgreSQL, si usa JDBC, recomendamos lo siguiente para evitar la fijación:
-
Establezca el parámetro de conexión JDBC
assumeMinServerVersionen al menos9.0para evitar la fijación. Esto evita que el controlador JDBC realice un viaje de ida y vuelta adicional durante el inicio de la conexión cuando se ejecutaSET extra_float_digits = 3. -
Establezca el parámetro de conexión JDBC
ApplicationNameenpara evitar la fijación. Al hacerlo, se evita que el JDBC driver realice un viaje de ida y vuelta adicional durante el inicio de la conexión cuando se ejecutaany/your-application-nameSET application_name = "PostgreSQL JDBC Driver". Tenga en cuenta que el parámetro JDBC esApplicationNamepero el parámetroStartupMessagede PostgreSQL esapplication_name.
Para obtener más información, consulte Cómo evitar la fijación de RDS Proxy. Para obtener más información acerca de la conexión mediante JDBC, consulte Conexión a la base de datos