Al conectarse a una base de datos con JDBC, puede almacenar sus credenciales en un secreto de RDS o en un secreto genérico. Después, su aplicación utiliza el cliente JDBC de secretos para autenticarse en la base de datos con el secreto de KMS.
Descripción general del SDK
El cliente JDBC de secretos está diseñado para conectarse a bases de datos mediante JDBC. Este cliente simplifica la integración porque recupera automáticamente un secreto de KMS para autenticar la conexión a la base de datos. Para otros escenarios que implican recuperar y usar secretos, se recomienda utilizar primero el cliente de secretos. Posteriormente, use el SDK de instancias de KMS y el Alibaba Cloud SDK. Para obtener más información, consulte SDK Reference.
Solo puede gestionar secretos mediante el Alibaba Cloud SDK.
El cliente JDBC de secretos ofrece las siguientes características:
Admite Java Database Connectivity (JDBC), incluidas las conexiones que usan grupos de conexiones a bases de datos (como c3p0 y DBCP) y orígenes de datos.
Es compatible con cuatro tipos de bases de datos: MySQL, SQL Server, PostgreSQL y MariaDB.
Permite definir intervalos de actualización personalizados para los secretos.
Notas de uso
-
Tipos de secretos compatibles: secretos genéricos y secretos de RDS.
Si usa un secreto de RDS, se recomienda emplear un secreto de RDS gestionado con cuenta dual.
-
Si usa un secreto genérico, el valor del secreto debe tener el siguiente formato JSON.
{ "AccountName":"<YOUR-DATABASE-USERNAME>", "AccountPassword":"<YOUR-DATABASE-PASSWORD>" }
Lenguaje de programación compatible: Java 8 o posterior.
Grupos de conexiones a bases de datos compatibles: c3p0, DBCP, HikariCP y Druid.
Paso 1: Cree una credencial de acceso
Escenario 1: Recuperación de secretos mediante una puerta de enlace compartida
Los tipos de red compatibles son la red pública y VPC. Este método admite mecanismos de autenticación basados en RAM, como un rol de RAM de instancia de ECS, RamRoleArn, un token de STS y un AccessKey. Para obtener más información, consulte Manage access credentials.
Rol de RAM de instancia de ECS
Un rol de RAM de instancia de ECS le permite obtener una credencial de acceso temporal (token de STS) desde dentro de una instancia de ECS para llamar a las operaciones de la API de KMS. De este modo, no necesita configurar un par de AccessKey.
Para obtener más información, consulte Instance RAM roles.
-
Inicie sesión en la consola de RAM y cree un rol de RAM para un servicio de confianza de Alibaba Cloud.
Trusted Entity Type: seleccione Elastic Compute Service.
Trusted entity: seleccione Elastic Compute Service (ECS).
-
Otorgue al rol de RAM permisos para acceder a KMS.
-
Método 1: Configure una política basada en identidades.
En la columna Actions del rol de RAM, haga clic en Grant Permission para adjuntarle una política de permisos del sistema integrada para KMS. Para obtener más información sobre las políticas de permisos del sistema para KMS, consulte System policies for KMS.
NotaTambién puede crear políticas de permisos personalizadas. Para obtener más información, consulte Create a custom policy.
-
Método 2: Configure una política basada en recursos.
KMS admite políticas basadas en recursos que otorgan permisos de acceso a claves y secretos individuales. Estas políticas le permiten controlar qué cuentas de Alibaba Cloud, usuarios de RAM y roles de RAM pueden gestionar o usar las claves y los secretos de KMS. Para obtener más información, consulte Key policies y Secret policies.
-
Inicie sesión en la consola de ECS y adjunte el rol de RAM a una instancia de ECS.
RamRoleArn
Los usuarios de RAM o los servicios en la nube pueden asumir un rol para obtener permisos temporales (token de STS) en lugar de usar claves de largo plazo. Esto reduce el riesgo de filtraciones de claves. Por ejemplo, en una tarea temporal de procesamiento de datos, un usuario de RAM o un servicio en la nube asume temporalmente un rol con un RamRoleArn específico. Una vez finalizada la tarea, se revocan los permisos del rol, lo que minimiza el riesgo de exposición.
-
Cree un par de AccessKey de usuario.
Inicie sesión en la consola de RAM. En el panel de navegación izquierdo, elija . En la página Users, haga clic en el nombre del usuario de RAM de destino.
Adjunte al usuario de RAM la política del sistema
AliyunSTSAssumeRoleAccesso una política personalizada que incluya la acciónsts:AssumeRole.En la pestaña Secret Management, dentro de la sección AccessKey, haga clic en Create AccessKey.
-
Cree y autorice un rol de RAM:
En el panel de navegación izquierdo, elija . En la página Roles, haga clic en Create Role. Para obtener más información, consulte Create a RAM role.
-
Otorgue al rol de RAM permisos para acceder a KMS.
-
Método 1: Configure una política basada en identidades.
En la columna Actions del rol de RAM, haga clic en Grant Permission para adjuntarle una política de permisos del sistema integrada para KMS. Para obtener más información sobre las políticas de permisos del sistema para KMS, consulte System policies for KMS.
NotaTambién puede crear políticas de permisos personalizadas. Para obtener más información, consulte Create a custom policy.
-
Método 2: Configure una política basada en recursos.
KMS admite políticas basadas en recursos que otorgan permisos de acceso a claves y secretos individuales. Estas políticas le permiten controlar qué cuentas de Alibaba Cloud, usuarios de RAM y roles de RAM pueden gestionar o usar las claves y los secretos de KMS. Para obtener más información, consulte Key policies y Secret policies.
-
-
Obtenga el RamRoleArn del rol de RAM de destino. Para obtener más información, consulte View the information about a RAM role.
En el panel de navegación izquierdo, elija . En la página Roles, haga clic en el nombre del rol de destino.
-
En la página de detalles del rol, busque el RamRoleArn en la sección ARN.
NotaEl RamRoleArn es el nombre de recurso de Alibaba Cloud (ARN) del rol de RAM que se va a asumir. Su formato es
acs:ram::$accountID:role/$roleName, donde$accountIDes el ID de la cuenta de Alibaba Cloud y$roleNamees el nombre del rol de RAM.
Token de STS
Security Token Service (STS) emite una credencial de acceso temporal, conocida como token de STS, a un usuario o rol de RAM. Este token permite acceder a KMS con permisos específicos durante un periodo de validez limitado. Una vez que caduca, deja de ser válido automáticamente.
Inicie sesión en la consola de RAM para crear un usuario o un rol de RAM. Para obtener más información, consulte Create a RAM user y Create a RAM role.
Otorgue el permiso
AliyunSTSAssumeRoleAccessal usuario o rol de RAM. Para obtener más información, consulte Manage RAM user permissions y Grant permissions to a RAM role.-
Otorgue al usuario o rol de RAM permisos para acceder a KMS.
-
Método 1: Configure una política basada en identidades.
En la columna Actions del rol o usuario de RAM, haga clic en Grant Permission para adjuntarle una política de permisos del sistema integrada para KMS. Para obtener más información sobre las políticas de permisos del sistema para KMS, consulte System policies for KMS.
NotaTambién puede crear políticas de permisos personalizadas. Para obtener más información, consulte Create a custom policy.
-
Método 2: Configure una política basada en recursos.
KMS admite políticas basadas en recursos que otorgan permisos de acceso a claves y secretos individuales. Estas políticas le permiten controlar qué cuentas de Alibaba Cloud, usuarios de RAM y roles de RAM pueden gestionar o usar las claves y los secretos de KMS. Para obtener más información, consulte Key policies y Secret policies.
-
Use el usuario o rol de RAM para llamar a la operación AssumeRole de STS y obtener una credencial de acceso temporal de STS. Para obtener más información, consulte AssumeRole.
AccessKey
De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos de administrador sobre todos los recursos, y esto no se puede modificar. Para garantizar la seguridad de los recursos, se recomienda usar un usuario de RAM para crear un par de AccessKey y otorgarle únicamente los permisos necesarios.
Inicie sesión en la consola de RAM. En la página Users, haga clic en el nombre del usuario de RAM de destino.
En la pestaña Secret Management, dentro de la sección AccessKey, haga clic en Create AccessKey.
-
Otorgue al usuario de RAM permisos para acceder a KMS.
-
Método 1: Configure una política basada en identidades.
En la columna Actions del usuario de RAM, haga clic en Grant Permission para adjuntarle una política de permisos del sistema integrada para KMS. Para obtener más información sobre las políticas de permisos del sistema para KMS, consulte System policies for KMS.
NotaTambién puede crear políticas de permisos personalizadas. Para obtener más información, consulte Create a custom policy.
-
Método 2: Configure una política basada en recursos.
KMS admite políticas basadas en recursos que otorgan permisos de acceso a claves y secretos individuales. Estas políticas le permiten controlar qué cuentas de Alibaba Cloud, usuarios de RAM y roles de RAM pueden gestionar o usar las claves y los secretos de KMS. Para obtener más información, consulte Key policies y Secret policies.
-
ClientKey (no recomendado)
Inicie sesión en la consola de Key Management Service. En la barra de navegación superior, seleccione una región. En el panel de navegación izquierdo, elija .
-
(Opcional) Cree una regla de red.
NotaConfigurar una regla de red para restringir el acceso por dirección IP de origen es opcional. Sin embargo, se recomienda hacerlo para mejorar la seguridad.
Haga clic en la pestaña Network Access Rules y luego en Create Network Access Rule.
En el panel Create Network Access Rule, establezca Network Type en Public, introduzca las Allowed Source IP Addresses y haga clic en OK.
-
Cree una política de permisos.
Haga clic en la pestaña Policies y luego en Create Policy.
-
En el panel Create Policy, configure los parámetros de la puerta de enlace compartida tal como se describe a continuación y haga clic en OK.
Scope: Shared KMS Gateway
Accessible Resources: seleccione los secretos a los que desea acceder.
(Opcional) Network Access Rules: seleccione la regla de red creada en el paso anterior.
-
Cree un punto de acceso de aplicación (AAP).
Haga clic en la pestaña Application Access y luego en Create AAP.
-
En el panel Create AAP, establezca Mode en Standard Creation y configure los parámetros tal como se describe a continuación.
Parámetro
Descripción
Authentication Method
Seleccione ClientKey.
Encryption Password
Introduzca una cadena de entre 8 y 64 caracteres que contenga dígitos, letras y caracteres especiales:
~!@#$%^&*?_-.Validity Period
ImportanteSe recomienda establecer el periodo de validez en un año para reducir el riesgo de filtración del ClientKey. Asegúrese de rotar el ClientKey antes de que caduque para evitar interrupciones del servicio. Para obtener más información, consulte Rotate a ClientKey.
Policies
Seleccione la política de permisos que creó en el paso anterior.
-
Haga clic en OK. El navegador descarga automáticamente el ClientKey, que incluye los siguientes archivos:
Credential (ClientKeyContent): el nombre de archivo predeterminado es
clientKey_****.json.Contraseña de la credencial (ClientKeyPassword): el nombre de archivo predeterminado es
clientKey_****_Password.txt.
Escenario 2: Recuperación de secretos mediante una puerta de enlace dedicada (no recomendado)
El tipo de red es una red privada de KMS, y ClientKey es la única credencial de acceso compatible.
Puede crear un ClientKey mediante el modo Quick Create o Standard Create. Para obtener más información sobre los ClientKey, consulte Application access points y Create an application access point.
-
Método 1: Quick Create
Este método resulta práctico y eficiente, por lo que es adecuado para pruebas y desarrollos rápidos. La credencial de acceso creada de esta manera tiene acceso total a todos los recursos de la instancia de KMS.
Inicie sesión en la consola de Key Management Service. En la barra de navegación superior, seleccione una región. En el panel de navegación izquierdo, elija .
-
En la pestaña Application Access, haga clic en Create AAP. En el panel Create AAP, configure los parámetros.
Parámetro
Descripción
Mode
Seleccione Quick Creation.
Scope (KMS Instance)
Seleccione la instancia de KMS a la que necesita acceder su aplicación.
Application Access Point Name
Introduzca un nombre para el punto de acceso de la aplicación.
Authentication Method
Se establece en ClientKey y no se puede cambiar.
Encryption Algorithm
Seleccione el algoritmo de cifrado utilizado para cifrar el ClientKey. Valores válidos: TripleDES-CBC y RC2-CBC (predeterminado).
NotaRC2-CBC funciona en la mayoría de los entornos y es el recomendado. Si su entorno tiene requisitos de algoritmos más estrictos y no admite RC2-CBC, seleccione TripleDES-CBC.
Default Permission Policy
El valor es
key/secret/y no se puede cambiar. Esto significa que la aplicación puede acceder a todas las claves y secretos de la instancia de KMS especificada. -
Haga clic en OK. El navegador descarga automáticamente el ClientKey, que incluye los siguientes archivos:
Credential (ClientKeyContent): el nombre de archivo predeterminado es
clientKey_****.json.Contraseña de la credencial (ClientKeyPassword): el nombre de archivo predeterminado es
clientKey_****_Password.txt.
-
Método 2: Standard Create
Si necesita configurar permisos de acceso detallados para los recursos, se recomienda utilizar el método Standard Create.
-
Siga las instrucciones de Standard Create en Create an application access point para crear un ClientKey que acceda a la puerta de enlace dedicada. Los parámetros clave se describen a continuación:
Al configurar las reglas de red, seleccione Private como tipo de red.
Cuando configure el alcance de la regla de permisos, seleccione el KMS Instance ID correspondiente.
-
Después de la creación, el navegador descarga automáticamente el ClientKey, que incluye lo siguiente:
Credential (ClientKeyContent): el archivo se denomina
clientKey_****.jsonde forma predeterminada.Contraseña de la credencial (ClientKeyPassword): el archivo se denomina
clientKey_****_Password.txtde forma predeterminada.
-
Paso 2: Instale el cliente
Instale el cliente JDBC de secretos mediante Maven.
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-secretsmanager-jdbc</artifactId>
<version>x.x.x</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.x.x</version>
</dependency>
Se recomienda instalar la versión más reciente del SDK. Para obtener más información sobre la instalación y el código fuente, visite aliyun-secretsmanager-jdbc.
Paso 3: Inicialice el cliente con secretsmanager.properties**
Agregue un archivo de configuración llamado secretsmanager.properties a su proyecto. Los parámetros que debe configurar varían según la credencial de acceso.
AccessKey
## The type of the access credential.
credentials_type=ak
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000
RamRoleArn
## The type of the access credential.
credentials_type=ram_role
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The session name of the access credential.
credentials_role_session_name=#credentials_role_session_name#
## The ARN of the RAM role.
credentials_role_arn=#credentials_role_arn#
## The policy of the access credential.
credentials_policy=#credentials_policy#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000
Rol de RAM de instancia de ECS
## The type of the access credential.
credentials_type=ecs_ram_role
## The name of the ECS RAM role.
credentials_role_name=#credentials_role_name#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000
Token de STS
## The type of the access credential.
credentials_type=sts
## The AccessKey ID.
credentials_access_key_id=#credentials_access_key_id#
## The AccessKey secret.
credentials_access_secret=#credentials_access_secret#
## The session name of the access credential.
credentials_role_session_name=#credentials_role_session_name#
## The ARN of the RAM role.
credentials_role_arn=#credentials_role_arn#
## The policy of the access credential.
credentials_policy=#credentials_policy#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
refresh_secret_ttl=21600000
ClientKey (puerta de enlace compartida)
## The type of the access credential.
credentials_type=client_key
# The file path of the ClientKey.
client_key_private_key_path=#your client key private key file path#
## The decryption password of the ClientKey. You can read the password from an environment variable or a file.
client_key_password_from_env_variable=#your client key private key password environment variable name#
client_key_password_from_file_path=#your client key private key password file path#
## The region of the associated KMS service.
cache_client_region_id=[{"regionId":"#regionId#"}]
## The custom refresh interval. Default value: 6 hours. Minimum value: 5 minutes. Unit: milliseconds.
## The following configuration sets the secret refresh interval to 1 hour.
refresh_secret_ttl=3600000
ClientKey (puerta de enlace dedicada)
Enfoque 1: Configurar la ruta del archivo
cache_client_dkms_config_info=[{"regionId":"<YOUR_DKMS_REGION_ID>","endpoint":"<YOUR_DKMS_ENDPOINT>","passwordFromFilePath":"<YOUR_PASSWORD_FILE_PATH>","clientKeyFile":"<YOUR_CLIENT_KEY_FILE_PATH>","ignoreSslCerts":false,"caFilePath":"<YOUR_CA_CERTIFICATE_FILE_PATH>"}]
Enfoque 2: Configurar la contraseña mediante una variable de entorno
cache_client_dkms_config_info=[{"regionId":"<YOUR_DKMS_REGION_ID>","endpoint":"<YOUR_DKMS_ENDPOINT>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<YOUR_CLIENT_KEY_FILE_PATH>","ignoreSslCerts":false,"caFilePath":"<YOUR_CA_CERTIFICATE_FILE_PATH>"}]
Paso 4: Conéctese a la base de datos
Los siguientes ejemplos muestran únicamente las propiedades que debe modificar. Configure el resto de las propiedades según sus necesidades empresariales.
Conexión a una base de datos mediante JDBC
-
Base de datos MySQL
NotaReemplace
#your-mysql-secret-name#,<YOUR-MYSQL-IP>,<YOUR-MYSQL-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCSample { public static void main(String[] args) throws Exception { // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver Class.forName("com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver"); Connection connect = null; try { connect = DriverManager.getConnection("secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>", "#your-mysql-secret-name#",""); } catch(SQLException e) { e.printStackTrace(); } } } -
Base de datos SQL Server
NotaReemplace
#your-sqlserver-secret-name#,<YOUR-SQLSERVER-IP>,<YOUR-SQLSERVER-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCSqlServerSample { public static void main(String[] args) throws Exception{ // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver Class.forName("com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver"); Connection connect = null; try { connect = DriverManager.getConnection("secrets-manager:sqlserver://<YOUR-SQLSERVER-IP>:<YOUR-SQLSERVER-PORT>;databaseName=<YOUR-DATABASE-NAME>", "#your-sqlserver-secret-name#", ""); } catch (SQLException e) { e.printStackTrace(); } } } -
Base de datos PostgreSQL
NotaReemplace
#your-postgresql-secret-name#,<YOUR-POSTGRESQL-IP>,<YOUR-POSTGRESQL-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCPostgreSQLSample { public static void main(String[] args) throws Exception { // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver Class.forName("com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver"); Connection connect = null; try { connect = DriverManager.getConnection("secrets-manager:postgresql://<YOUR-POSTGRESQL-IP>:<YOUR-POSTGRESQL-PORT>/<YOUR-DATABASE-NAME>", "#your-postgresql-secret-name#", ""); } catch (SQLException e) { e.printStackTrace(); } } } -
Base de datos MariaDB
NotaReemplace
#your-mariadb-secret-name#,<YOUR-MARIADB-IP>,<YOUR-MARIADB-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCMarialDBSample { public static void main(String[] args) throws Exception{ // Load the Alibaba Cloud secrets JDBC driver: com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver Class.forName("com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver"); Connection connect = null; try { connect = DriverManager.getConnection("secrets-manager:mariadb://<YOUR-MARIADB-IP>:<YOUR-MARIADB-PORT>/<YOUR-DATABASE-NAME>", "#your-mariadb-secret-name#", ""); } catch (SQLException e) { e.printStackTrace(); } } }
Conexión mediante un pool de conexiones de base de datos
Establezca c3p0.user, c3p0.driverClass y c3p0.jdbcUrl en el archivo de configuración c3p0.properties. El parámetro c3p0.user corresponde al nombre del secreto, c3p0.driverClass es el nombre de la clase del controlador JDBC de secretos de Alibaba Cloud y c3p0.jdbcUrl debe comenzar con secrets-manager.
-
Base de datos MySQL
NotaReemplace
#your-mysql-secret-name#,<YOUR-MYSQL-IP>,<YOUR-MYSQL-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.c3p0.user=#your-mysql-secret-name# c3p0.driverClass=com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver c3p0.jdbcUrl=secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME> -
Base de datos SQL Server
NotaReemplace
#your-sqlserver-secret-name#,<YOUR-SQLSERVER-IP>,<YOUR-SQLSERVER-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.c3p0.user=#your-sqlserver-secret-name# c3p0.driverClass=com.aliyun.kms.secretsmanager.MssqlSecretsManagerSimpleDriver c3p0.jdbcUrl=secrets-manager:sqlserver://<YOUR-SQLSERVER-IP>:<YOUR-SQLSERVER-PORT>/<YOUR-DATABASE-NAME> -
Base de datos PostgreSQL
NotaReemplace
#your-postgresql-secret-name#,<YOUR-POSTGRESQL-IP>,<YOUR-POSTGRESQL-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.c3p0.user=#your-postgresql-secret-name# c3p0.driverClass=com.aliyun.kms.secretsmanager.PostgreSQLSecretManagerSimpleDriver c3p0.jdbcUrl=secrets-manager:postgresql://<YOUR-POSTGRESQL-IP>:<YOUR-POSTGRESQL-PORT>/<YOUR-DATABASE-NAME> -
Base de datos MariaDB
NotaReemplace
#your-mariadb-secret-name#,<YOUR-MARIADB-IP>,<YOUR-MARIADB-PORT>y<YOUR-DATABASE-NAME>por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.c3p0.user=#your-mariadb-secret-name# c3p0.driverClass=com.aliyun.kms.secretsmanager.MariaDBSecretManagerSimpleDriver c3p0.jdbcUrl=secrets-manager:mariadb://<YOUR-MARIADB-IP>:<YOUR-MARIADB-PORT>/<YOUR-DATABASE-NAME>
Conexión mediante un origen de datos
Este ejemplo utiliza un objeto c3p0 ComboPooledDataSource y una base de datos MySQL. Agregue a continuación la configuración en el archivo de configuración de Spring.
Reemplace #your-mysql-secret-name#, <YOUR-MYSQL-IP>, <YOUR-MYSQL-PORT> y <YOUR-DATABASE-NAME> por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
<property name="driverClass" value="com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver" />
<property name="user" value="#your-mysql-secret-name#" />
<property name="jdbcUrl" value="secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>" />
<property name="maxPoolSize" value="***" />
<property name="minPoolSize" value="***" />
<property name="initialPoolSize" value="***" />
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" >
<property name="dataSource" ref="dataSource" />
</bean>
Defina los valores de los parámetros maxPoolSize, minPoolSize e initialPoolSize según los requisitos de su negocio.
Conexión mediante un pool de conexiones Druid
Este ejemplo utiliza una base de datos MySQL. Modifique las siguientes propiedades en el archivo de configuración.
Reemplace #your-mysql-secret-name#, <YOUR-MYSQL-IP>, <YOUR-MYSQL-PORT> y <YOUR-DATABASE-NAME> por el nombre real del secreto, la dirección IP del servidor, el puerto y el nombre de la base de datos.
-
Uso de un archivo de configuración properties
username=#your-mysql-secret-name# driverClassName=com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver url=secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME> -
Uso de la configuración de beans
-
Método 1: archivo de configuración XML
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="username" value="${your-mysql-secret-name}" /> <property name="driverClassName" value="com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver" /> <property name="url" value="secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>" /> </bean> -
Método 2: inyección de propiedades
Cree una clase de configuración en su aplicación para cargar la información de conexión a la base de datos.
@Configuration public class DataConfig { @Value("${your-mysql-secret-name}") private String username; @Value("com.aliyun.kms.secretsmanager.MysqlSecretsManagerSimpleDriver") private String driverClassName; @Value("secrets-manager:mysql://<YOUR-MYSQL-IP>:<YOUR-MYSQL-PORT>/<YOUR-DATABASE-NAME>") private String url; @Bean(name = "dataSource",initMethod = "init",destroyMethod = "close") public DruidDataSource dataSource(){ DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setUsername(username); druidDataSource.setDriverClassName(driverClassName); druidDataSource.setUrl(url); return druidDataSource; } }
-