Conexión a clústeres de Aurora DSQL con un conector de JDBC - Amazon Aurora DSQL

Conexión a clústeres de Aurora DSQL con un conector de JDBC

El conector de Aurora DSQL para JDBC está diseñado como un complemento de autenticación que amplía la funcionalidad del controlador JDBC de PostgreSQL para permitir que las aplicaciones se autentiquen con Aurora DSQL mediante credenciales de IAM. El conector no se conecta directamente a la base de datos, pero proporciona una autenticación de IAM perfecta además del controlador JDBC de PostgreSQL subyacente.

El conector de Aurora DSQL para JDBC está diseñado para funcionar con el controlador JDBC de PostgreSQL y proporciona una integración perfecta con los requisitos de autenticación de IAM de Aurora DSQL.

Junto con el controlador JDBC de PostgreSQL, el conector de Aurora DSQL para JDBC permite la autenticación basada en IAM para Aurora DSQL. Ingresa una profunda integración con servicios de autenticación de AWS como AWS Identity and Access Management (IAM).

Acerca del conector

Aurora DSQL es un servicio de base de datos SQL distribuido que proporciona alta disponibilidad y escalabilidad para aplicaciones compatibles con PostgreSQL. Aurora DSQL requiere una autenticación basada en IAM con tokens de tiempo limitado que los controladores JDBC existentes no admiten de forma nativa.

La idea principal del conector de Aurora DSQL para JDBC es agregar una capa de autenticación sobre el controlador JDBC de PostgreSQL que gestione la generación de los tókenes de IAM, lo que permite a los usuarios conectarse a Aurora DSQL sin cambiar sus flujos de trabajo de JDBC existentes.

¿Qué es la autenticación de Aurora DSQL?

En Aurora DSQL, la autenticación implica:

  • Autenticación de IAM: todas las conexiones utilizan la autenticación basada en IAM con tokens de tiempo limitado

  • Generación de tokens: los tokens de autenticación se generan mediante credenciales de AWS y tienen una vida útil configurable

El conector de Aurora DSQL para JDBC está diseñado para comprender estos requisitos y generar automáticamente los tókenes de autenticación de IAM al establecer las conexiones.

Beneficios del conector de Aurora DSQL para JDBC

Aunque Aurora DSQL proporciona una interfaz compatible con PostgreSQL, los controladores de PostgreSQL existentes actualmente no admiten los requisitos de autenticación de IAM de Aurora DSQL. El conector de Aurora DSQL para JDBC permite a los clientes seguir utilizando los flujos de trabajo de PostgreSQL existentes y, al mismo tiempo, habilitar la autenticación de IAM mediante:

  • Generación automática de tokens: los tokens de IAM se generan automáticamente mediante credenciales de AWS

  • Integración perfecta: funciona con los patrones de conexión JDBC existentes

  • Soporte de credenciales de AWS: admite varios proveedores de credenciales de AWS (predeterminados, basados en perfiles, etc.)

Uso del conector de Aurora DSQL para JDBC con agrupación de conexiones

El conector de Aurora DSQL para JDBC funciona con bibliotecas de agrupamiento de conexiones como HikariCP. El conector gestiona la generación del token de IAM durante el establecimiento de la conexión, lo que permite que los grupos de conexiones funcionen con normalidad.

Características principales de

Generación automática de token

Los tokens de IAM se generan automáticamente mediante credenciales de AWS.

Integración sin problemas

Funciona con los patrones de conexión de JDBC existentes sin requerir cambios en el flujo de trabajo.

Soporte de credenciales de AWS

Admite varios proveedores de credenciales de AWS (predeterminados, basados en perfiles, etc.).

Compatibilidad de grupo de conexiones

Funciona a la perfección con bibliotecas de agrupación de conexiones como HikariCP.

Requisitos previos

Antes de comenzar, asegúrese de que cumple los siguientes requisitos previos:

  • Se ha creado un clúster en Aurora DSQL.

  • Se ha instalado el kit de desarrollo de Java (JDK). Asegúrese de tener la versión 17 o superior.

  • Configure los permisos de IAM adecuados para permitir que la aplicación se conecte a Aurora DSQL.

  • Credenciales de AWS configuradas (mediante AWS CLI, variables de entorno o roles de IAM).

Uso del conector de Aurora DSQL para JDBC

Para usar el conector de Aurora DSQL para JDBC en la aplicación de Java, siga estos pasos:

  1. Agregue las siguientes dependencias al proyecto de Maven:

    <dependencies> <!-- Aurora DSQL Connector for JDBC --> <dependency> <groupId>software.amazon.dsql</groupId> <artifactId>aurora-dsql-jdbc-connector</artifactId> <version>1.0.0</version> </dependency> </dependencies>

    Para los proyectos de Gradle, agregue esta dependencia:

    implementation("software.amazon.dsql:aurora-dsql-jdbc-connector:1.0.0")
  2. Cree una conexión básica al clúster de Aurora DSQL mediante el formato de conector de AWS DSQL PostgreSQL:

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DsqlJdbcConnectorExample { public static void main(String[] args) { // Using AWS DSQL PostgreSQL Connector prefix String jdbcUrl = "jdbc:aws-dsql:postgresql://your-cluster.dsql.us-east-1.on.aws/postgres?user=admin"; try (Connection connection = DriverManager.getConnection(jdbcUrl)) { // Use the connection try (Statement statement = connection.createStatement()) { // Create a table statement.execute("CREATE TABLE IF NOT EXISTS test_table (id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(100))"); // Insert data statement.execute("INSERT INTO test_table (name) VALUES ('Test Name')"); // Query data try (ResultSet resultSet = statement.executeQuery("SELECT * FROM test_table")) { while (resultSet.next()) { System.out.println("ID: " + resultSet.getInt("id") + ", Name: " + resultSet.getString("name")); } } } } catch (SQLException e) { e.printStackTrace(); } } }

Propiedades de configuración

El conector de Aurora DSQL para JDBC admite las siguientes propiedades de conexión:

usuario

Determina el usuario de la conexión y el método de generación del token utilizado. Ejemplo:: admin

token-duration-secs

Duración en segundos de la validez del token. Para obtener más información sobre los límites de los tokens, consulte Generación de un token de autenticación en Amazon Aurora DSQL.

profile

Se utiliza para crear una instancia de ProfileCredentialsProvider para la generación de un token con el nombre de perfil proporcionado.

region

Región de AWS para conexiones de Aurora DSQL. Es opcional. Cuando se proporcione, invalidará la región extraída de la URL.

database

El nombre de la base de datos a la que se va a conectar. El valor predeterminado es postgres.

Registro

Habilite el registro para solucionar cualquier problema que pueda surgir al utilizar el conector JDBC de Aurora DSQL.

El conector utiliza el sistema de registro integrado (java.util.logging) de Java. Puede configurar los niveles de registro creando un archivo de logging.properties:

# Set root logger level to INFO for clean output .level = INFO # Show Aurora DSQL Connector for JDBC FINE logs for detailed debugging software.amazon.dsql.level = FINE # Console handler configuration handlers = java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter # Detailed formatter pattern with timestamp and logger name java.util.logging.SimpleFormatter.format = %1$tH:%1$tM:%1$tS.%1$tL [%4$s] %3$s - %5$s%n

Ejemplos

Para ver ejemplos y casos de uso más completos, consulte el repositorio del conector de Aurora DSQL para JDBC