Saat menghubungkan ke database melalui JDBC, Anda dapat menyimpan kredensial database dalam secret RDS atau secret generik. Aplikasi Anda kemudian dapat menggunakan klien JDBC secrets untuk melakukan autentikasi ke database dengan secret dari KMS.
Ikhtisar SDK
Klien JDBC secrets dirancang untuk menghubungkan ke database menggunakan JDBC. Klien ini menyederhanakan integrasi dengan secara otomatis mengambil secret dari KMS untuk mengautentikasi koneksi database. Untuk skenario lain yang melibatkan pengambilan dan penggunaan secret, kami menyarankan menggunakan klien secrets terlebih dahulu, diikuti oleh SDK instans KMS dan SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat Referensi SDK.
Anda hanya dapat mengelola secret dengan menggunakan SDK Alibaba Cloud.
Klien JDBC secrets menyediakan fitur-fitur berikut:
Mendukung Java Database Connectivity (JDBC), termasuk koneksi yang menggunakan connection pool database (seperti c3p0 dan DBCP) serta data source.
Mendukung empat jenis database: MySQL, SQL Server, PostgreSQL, dan MariaDB.
Mendukung interval refresh kustom untuk secret.
Catatan penggunaan
Jenis secret yang didukung: secret generik dan secret RDS.
Jika Anda menggunakan secret RDS, kami menyarankan menggunakan secret RDS managed dual-account.
Jika Anda menggunakan secret generik, nilai secret harus dalam format JSON berikut.
{ "AccountName":"<your-database-username>", "AccountPassword":"<your-database-password>" }
Bahasa pemrograman yang didukung: Java 8 atau versi lebih baru.
Connection pool database yang didukung: c3p0, DBCP, HikariCP, dan Druid.
Langkah 1: Buat kredensial akses
Skenario 1: Ambil secret menggunakan gateway bersama
Jenis jaringan yang didukung adalah jaringan publik dan VPC. Metode ini mendukung metode autentikasi berbasis RAM seperti peran RAM instans ECS, RamRoleArn, token STS, dan AccessKey. Untuk informasi lebih lanjut, lihat Kelola kredensial akses.
Peran RAM instans ECS
Peran RAM instans ECS memungkinkan Anda memperoleh kredensial akses temporary (token STS) dari dalam instans ECS untuk memanggil operasi API KMS tanpa perlu mengonfigurasi pasangan AccessKey.
Untuk informasi lebih lanjut, lihat Peran RAM instans.
Login ke Konsol RAM dan buat peran RAM untuk layanan Alibaba Cloud tepercaya.
Jenis Entitas Tepercaya: Pilih Elastic Compute Service.
Entitas tepercaya: Pilih Elastic Compute Service (ECS).
Berikan izin peran RAM untuk mengakses KMS.
Metode 1: Konfigurasikan kebijakan berbasis identitas
Pada kolom Actions peran RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasikan kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.
Login ke Konsol ECS dan sambungkan peran RAM ke instans ECS.

RamRoleArn
Pengguna RAM atau layanan cloud dapat mengasumsikan peran untuk memperoleh izin temporary (token STS) alih-alih menggunakan kunci jangka panjang, yang mengurangi risiko kebocoran kunci. Misalnya, dalam tugas pemrosesan data temporary, pengguna RAM atau layanan cloud sementara mengasumsikan peran dengan RamRoleArn tertentu. Setelah tugas selesai, izin peran dicabut sehingga meminimalkan risiko eksposur.
Buat pasangan AccessKey pengguna
Login ke Konsol RAM. Di panel navigasi kiri, pilih . Di halaman Users, klik nama pengguna RAM target.
Sambungkan kebijakan sistem
AliyunSTSAssumeRoleAccessatau kebijakan kustom yang mencakup aksists:AssumeRoleke pengguna RAM.Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti instruksi di layar.
Buat dan otorisasi peran RAM:
Di panel navigasi kiri, pilih . Di halaman Roles, klik Create Role. Untuk informasi lebih lanjut, lihat Buat peran RAM.
Berikan izin peran RAM untuk mengakses KMS.
Metode 1: Konfigurasikan kebijakan berbasis identitas
Pada kolom Actions peran RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasikan kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.
Dapatkan RamRoleArn dari peran RAM target. Untuk informasi lebih lanjut, lihat Lihat informasi tentang peran RAM.
Di panel navigasi kiri, pilih . Di halaman Roles, klik nama peran target.
Di halaman detail peran, temukan RamRoleArn pada bagian ARN.
CatatanRamRoleArn adalah Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM yang akan diasumsikan. Formatnya adalah
acs:ram::$accountID:role/$roleName, di mana$accountIDadalah ID akun Alibaba Cloud dan$roleNameadalah nama peran RAM.
Token STS
Security Token Service (STS) menerbitkan kredensial akses temporary, yaitu token STS, kepada pengguna RAM atau peran RAM. Token ini memungkinkan akses ke KMS dengan izin tertentu selama periode validitas terbatas. Setelah token kedaluwarsa, token tersebut secara otomatis menjadi tidak valid.
Login ke Konsol RAM untuk membuat pengguna RAM atau peran RAM. Untuk informasi lebih lanjut, lihat Buat pengguna RAM dan Buat peran RAM.
Berikan izin
AliyunSTSAssumeRoleAccesskepada pengguna RAM atau peran RAM. Untuk informasi lebih lanjut, lihat Kelola izin pengguna RAM dan Berikan izin ke peran RAM.Berikan izin pengguna RAM atau peran RAM untuk mengakses KMS.
Metode 1: Konfigurasikan kebijakan berbasis identitas
Pada kolom Actions peran atau pengguna RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasikan kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.
Gunakan pengguna RAM atau peran RAM untuk memanggil operasi STS AssumeRole guna memperoleh kredensial akses STS temporary. Untuk informasi lebih lanjut, lihat AssumeRole.
AccessKey
Secara default, akun Alibaba Cloud memiliki izin administrator untuk semua resource, yang tidak dapat diubah. Untuk memastikan keamanan resource, kami menyarankan Anda menggunakan pengguna RAM untuk membuat pasangan AccessKey dan hanya memberikan izin yang diperlukan.
Login ke Konsol RAM. Di halaman Users, klik nama pengguna RAM target.
Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti instruksi di layar.
Berikan izin pengguna RAM untuk mengakses KMS.
Metode 1: Konfigurasikan kebijakan berbasis identitas
Pada kolom Actions pengguna RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan untuk KMS ke pengguna RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem untuk KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasikan kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk kunci dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan kunci dan Kebijakan secret.
ClientKey (tidak disarankan)
Login ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih .
(Opsional) Buat aturan jaringan.
CatatanMengonfigurasi aturan jaringan untuk membatasi akses berdasarkan alamat IP sumber bersifat opsional. Namun, kami menyarankan mengonfigurasinya demi keamanan yang lebih baik.
Klik tab Network Access Rules lalu klik Create Network Access Rule.
Di panel Create Network Access Rule, atur Network Type ke Public, masukkan Allowed Source IP Addresses, lalu klik OK.
Buat kebijakan izin.
Klik tab Policies lalu klik Create Policy.
Di panel Create Policy, konfigurasikan parameter untuk gateway bersama seperti dijelaskan di bawah ini, lalu klik OK.
Scope: Shared KMS Gateway
Accessible Resources: Pilih secret yang ingin Anda akses.
(Opsional) Network Access Rules: Pilih aturan jaringan yang dibuat pada langkah sebelumnya.
Buat titik akses aplikasi (AAP).
Klik tab Application Access lalu klik Create AAP.
Di panel Create AAP, atur Mode ke Standard Creation, lalu konfigurasikan parameter seperti dijelaskan di bawah ini.
Parameter
Deskripsi
Authentication Method
Pilih ClientKey.
Encryption Password
Masukkan string 8 hingga 64 karakter yang berisi angka, huruf, dan karakter khusus:
~!@#$%^&*?_-.Validity Period
PentingKami menyarankan mengatur periode validitas menjadi satu tahun untuk mengurangi risiko kebocoran ClientKey. Pastikan untuk merotasi ClientKey sebelum kedaluwarsa agar tidak terjadi gangguan layanan. Untuk informasi lebih lanjut, lihat Rotasi ClientKey.
Policies
Pilih kebijakan izin yang telah Anda buat pada langkah sebelumnya.
-
Klik OK. Browser secara otomatis mengunduh ClientKey. ClientKey mencakup file-file berikut:
-
Credential (ClientKeyContent): Nama file default adalah
clientKey_****.json. -
Credential password (ClientKeyPassword): Nama file default adalah
clientKey_****_Password.txt.
-
Skenario 2: Ambil secret menggunakan gateway khusus (tidak disarankan)
Jenis jaringannya adalah jaringan pribadi KMS, dan ClientKey adalah satu-satunya kredensial akses yang didukung.
Anda dapat membuat ClientKey menggunakan mode Quick Create atau Standard Create. Untuk informasi lebih lanjut tentang ClientKey, lihat Titik akses aplikasi dan Buat titik akses aplikasi.
Metode 1: Quick Create
Metode ini praktis dan efisien, sehingga cocok untuk pengujian dan pengembangan cepat. Kredensial akses yang dibuat dengan cara ini memiliki akses penuh ke semua resource dalam instans KMS.
Login ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih .
-
Di tab Application Access, klik Create AAP. Di panel Create AAP, konfigurasikan parameter.
Parameter
Deskripsi
Mode
Pilih Quick Creation.
Scope (KMS Instance)
Pilih instans KMS yang perlu diakses oleh aplikasi Anda.
Application Access Point Name
Masukkan nama untuk titik akses aplikasi.
Authentication Method
Ini diatur ke ClientKey dan tidak dapat diubah.
Credential encryption algorithm
Pilih algoritma enkripsi yang digunakan untuk mengenkripsi ClientKey. Nilai yang valid: TripleDES-CBC dan RC2-CBC (default).
Default Permission Policy
Nilainya adalah
key/*secret/*dan tidak dapat diubah. Artinya, aplikasi dapat mengakses semua kunci dan secret dalam instans KMS yang ditentukan. -
Klik OK. Browser secara otomatis mengunduh ClientKey. ClientKey mencakup file-file berikut:
-
Credential (ClientKeyContent): Nama file default adalah
clientKey_****.json. -
Credential password (ClientKeyPassword): Nama file default adalah
clientKey_****_Password.txt.
-
Metode 2: Standard Create
Jika Anda perlu mengonfigurasi izin akses detail halus untuk resource, kami menyarankan menggunakan metode Standard Create.
Ikuti petunjuk Standard Create di Buat titik akses aplikasi untuk membuat ClientKey guna mengakses gateway khusus. Parameter utama dijelaskan di bawah ini:
Saat mengonfigurasi aturan jaringan, pilih Private untuk jenis jaringan.
Saat mengonfigurasi cakupan aturan izin, pilih KMS Instance ID yang sesuai.
Setelah pembuatan, browser Anda secara otomatis mengunduh ClientKey, yang mencakup:
Credential (ClientKeyContent): File ini bernama
clientKey_****.jsonsecara default.Credential password (ClientKeyPassword): File ini bernama
clientKey_****_Password.txtsecara default.
Langkah 2: Instal klien
Instal klien JDBC secrets menggunakan 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>Kami menyarankan Anda menginstal versi terbaru SDK. Untuk informasi lebih lanjut tentang instalasi dan kode sumber, kunjungi aliyun-secretsmanager-jdbc.
Langkah 3: Inisialisasi klien dengan secretsmanager.properties
Tambahkan file konfigurasi bernama secretsmanager.properties ke proyek Anda. Parameter yang perlu Anda konfigurasikan bervariasi tergantung pada kredensial akses.
AccessKey
## Jenis kredensial akses.
credentials_type=ak
## ID AccessKey.
credentials_access_key_id=#credentials_access_key_id#
## Rahasia AccessKey.
credentials_access_secret=#credentials_access_secret#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000RamRoleArn
## Jenis kredensial akses.
credentials_type=ram_role
## ID AccessKey.
credentials_access_key_id=#credentials_access_key_id#
## Rahasia AccessKey.
credentials_access_secret=#credentials_access_secret#
## Nama sesi kredensial akses.
credentials_role_session_name=#credentials_role_session_name#
## ARN peran RAM.
credentials_role_arn=#credentials_role_arn#
## Kebijakan kredensial akses.
credentials_policy=#credentials_policy#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000Peran RAM instans ECS
## Jenis kredensial akses.
credentials_type=ecs_ram_role
## Nama peran RAM ECS.
credentials_role_name=#credentials_role_name#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000Token STS
## Jenis kredensial akses.
credentials_type=sts
## ID AccessKey.
credentials_access_key_id=#credentials_access_key_id#
## Rahasia AccessKey.
credentials_access_secret=#credentials_access_secret#
## Nama sesi kredensial akses.
credentials_role_session_name=#credentials_role_session_name#
## ARN peran RAM.
credentials_role_arn=#credentials_role_arn#
## Kebijakan kredensial akses.
credentials_policy=#credentials_policy#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
refresh_secret_ttl=21600000ClientKey (gateway bersama)
## Jenis kredensial akses.
credentials_type=client_key
# Jalur file ClientKey.
client_key_private_key_path=#your client key private key file path#
## Kata sandi dekripsi ClientKey. Anda dapat membaca kata sandi dari variabel lingkungan atau 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#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]
## Interval refresh kustom. Nilai default: 6 jam. Nilai minimum: 5 menit. Satuan: milidetik.
## Konfigurasi berikut mengatur interval refresh secret menjadi 1 jam.
refresh_secret_ttl=3600000ClientKey (gateway khusus)
Pendekatan 1: Konfigurasikan jalur file
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>"}]
Pendekatan 2: Konfigurasikan kata sandi melalui variabel lingkungan
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>"}]
Langkah 4: Hubungkan ke database
Contoh berikut hanya menampilkan properti yang harus Anda ubah. Konfigurasikan properti lain berdasarkan kebutuhan bisnis Anda.
Hubungkan ke database menggunakan JDBC
Database MySQL
CatatanGanti
#your-mysql-secret-name#,<your-mysql-ip>,<your-mysql-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCSample { public static void main(String[] args) throws Exception { // Muat driver JDBC secrets Alibaba Cloud: 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(); } } }Database SQL Server
CatatanGanti
#your-sqlserver-secret-name#,<your-sqlserver-ip>,<your-sqlserver-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCSqlServerSample { public static void main(String[] args) throws Exception{ // Muat driver JDBC secrets Alibaba Cloud: 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(); } } }Database PostgreSQL
CatatanGanti
#your-postgresql-secret-name#,<your-postgresql-ip>,<your-postgresql-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCPostgreSQLSample { public static void main(String[] args) throws Exception { // Muat driver JDBC secrets Alibaba Cloud: 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(); } } }Database MariaDB
CatatanGanti
#your-mariadb-secret-name#,<your-mariadb-ip>,<your-mariadb-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SecretManagerJDBCMarialDBSample { public static void main(String[] args) throws Exception{ // Muat driver JDBC secrets Alibaba Cloud: 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(); } } }
Hubungkan menggunakan connection pool database
Atur c3p0.user, c3p0.driverClass, dan c3p0.jdbcUrl dalam file konfigurasi c3p0.properties. c3p0.user adalah nama secret, c3p0.driverClass adalah nama kelas driver JDBC secrets Alibaba Cloud, dan c3p0.jdbcUrl harus dimulai dengan secrets-manager.
Database MySQL
CatatanGanti
#your-mysql-secret-name#,<your-mysql-ip>,<your-mysql-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.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>Database SQL Server
CatatanGanti
#your-sqlserver-secret-name#,<your-sqlserver-ip>,<your-sqlserver-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.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>Database PostgreSQL
CatatanGanti
#your-postgresql-secret-name#,<your-postgresql-ip>,<your-postgresql-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.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>Database MariaDB
CatatanGanti
#your-mariadb-secret-name#,<your-mariadb-ip>,<your-mariadb-port>, dan<your-database-name>dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.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>
Hubungkan dengan menggunakan sumber data
Contoh ini menggunakan ComboPooledDataSource c3p0 dan database MySQL. Tambahkan konfigurasi berikut ke file konfigurasi Spring.
Ganti #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.
<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>Atur nilai parameter maxPoolSize, minPoolSize, dan initialPoolSize berdasarkan kebutuhan bisnis Anda.
Hubungkan menggunakan connection pool Druid
Contoh ini menggunakan database MySQL. Anda harus mengubah properti berikut dalam file konfigurasi.
Ganti #your-mysql-secret-name#, <your-mysql-ip>, <your-mysql-port>, dan <your-database-name> dengan nama secret, alamat IP server, port, dan nama database yang sebenarnya.
Gunakan file konfigurasi 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>Gunakan konfigurasi bean
Metode 1: File konfigurasi 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>Metode 2: Penyuntikan properti
Buat kelas konfigurasi dalam aplikasi Anda untuk memuat informasi koneksi database.
@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; } }