Secrets Manager Client adalah wrapper kustom yang dibangun di atas OpenAPI KMS dan API instans KMS. Client ini menyediakan kemampuan caching dan refresh secret bawaan untuk integrasi aplikasi, meningkatkan stabilitas bisnis, serta menyederhanakan alur kerja pengembang. Client mendukung pengambilan nilai secret untuk semua jenis secret.
Secrets Manager Client SDK
Secrets Manager Client SDK membungkus API KMS dan menggabungkan praktik terbaik serta pola desain untuk caching secret, sehingga mempermudah integrasi manajemen secret ke dalam sistem aplikasi Anda. SDK ini menyediakan keunggulan berikut:
Integrasikan manajemen secret ke dalam aplikasi Anda hanya dengan satu baris kode untuk membaca nilai secret.
Fungsionalitas caching dan refresh secret bawaan di dalam aplikasi Anda.
Logika retry otomatis untuk error API, dengan penanganan cerdas terhadap error sisi server.
Arsitektur berbasis plugin yang memungkinkan Anda menyesuaikan modul caching, logika retry, dan lainnya.
Alibaba Cloud juga menyediakan KMS Instance SDK dan Alibaba Cloud SDK, yang dapat digunakan untuk mengambil nilai secret. Untuk informasi lebih lanjut, lihat Referensi SDK.
Untuk melakukan operasi manajemen pada secret, Anda harus menggunakan Alibaba Cloud SDK.
Versi SDK
SDK 2.0 kini tersedia. Kami merekomendasikan penggunaan SDK 2.0. Tabel berikut membandingkan SDK 1.0 dan SDK 2.0.
Dukungan Kredensial
Jenis Kredensial
SDK 1.0
SDK 2.0
AccessKey
OIDC Role Arn
ECS RAM Role
RAM Role Arn
CatatanSDK 2.0 tidak mendukung pembacaan informasi ARN RAM Role dari variabel lingkungan dan file konfigurasi default. Anda harus menggunakan pendekatan hard-coded. Jika Anda memerlukan fitur ini, hubungi dukungan teknis.
Client Key
Fitur Keamanan
Fitur
SDK 1.0
SDK 2.0
Built-in CA Certificate
Alur autentikasi SDK
Secrets Manager Client melakukan autentikasi menggunakan kredensial akses. Proses autentikasi sedikit berbeda tergantung pada jenis gateway yang Anda hubungkan. SDK secara otomatis mendeteksi parameter yang dikonfigurasi dan memilih gateway yang sesuai. Dengan mekanisme autentikasi fleksibel ini, Anda tidak perlu mengonfigurasi jenis gateway secara manual. Langkah-langkah autentikasi sebagai berikut:
Atur variabel lingkungan atau siapkan file konfigurasi, pastikan semua informasi kredensial yang diperlukan telah disertakan. Parameter berbeda antara gateway khusus dan gateway bersama.
Inisialisasi client. SDK secara otomatis membaca konfigurasi dan mengidentifikasi jenis gateway.
Setelah autentikasi selesai, Anda dapat melanjutkan operasi gateway.
Cakupan
Jenis secret yang didukung: generic secret, RAM secret, ECS secret, database secret.
Bahasa pemrograman yang didukung: Java (Java 8 atau lebih baru), Python, Go, Node.js.
Instal Secrets Manager Client
Petunjuk berikut menunjukkan cara menginstal SDK 2.0. Untuk instalasi SDK 1.0, lihat repositori kode sumber SDK masing-masing.
Java
Instal Secrets Manager Client di proyek Anda menggunakan Maven.
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-secretsmanager-client-v2</artifactId>
<version>x.x.x</version>
</dependency>
Gunakan versi terbaru SDK 2.0 untuk fitur dan optimasi terkini. Kunjungi alibabacloud-secretsmanager-client-java-v2 untuk contoh kode dan kode sumber SDK 2.0. Untuk SDK 1.0, kunjungi alibabacloud-secretsmanager-client-java.
Python
Instal Secrets Manager Client menggunakan pip.
# Jika perintah berikut gagal, ganti pip dengan pip3
pip install alibabacloud_secretsmanager_client_v2
Menginstal Secrets Manager Client Python SDK V2 memerlukan Python 3.7 atau lebih baru. Jalankan
python3 --versionuntuk memeriksa versi Anda saat ini. Jika versi Anda di bawah 3.7, upgrade Python sebelum menjalankan perintah instalasi.Gunakan SDK 2.0 untuk fitur dan optimasi terkini. Kunjungi aliyun-secretsmanager-client-python-v2 untuk contoh kode dan kode sumber SDK 2.0. Untuk SDK 1.0, kunjungi aliyun-secretsmanager-client-python.
Go
Instal Secrets Manager Client menggunakan perintah go get.
go get -u github.com/aliyun/alibabacloud-secretsmanager-client-go-v2 Untuk Go, dependensi
alibaba-cloud-sdk-goharus lebih awal dari V1.63.0. Periksa filego.modAnda untuk mengonfirmasi versi dan hindari masalah kompatibilitas.Gunakan SDK 2.0 untuk fitur dan optimasi terkini. Kunjungi alibabacloud-secretsmanager-client-go-v2 untuk contoh kode dan kode sumber SDK 2.0. Untuk SDK 1.0, kunjungi aliyun-secretsmanager-client-go.
Node.js
Instal Secrets Manager Client menggunakan npm atau yarn.
npm
npm install alibabacloud-secretsmanager-client-v2yarn
yarn add alibabacloud-secretsmanager-client-v2
Menginstal Secrets Manager Client SDK V2 memerlukan Node.js 16.0.0 atau lebih baru.
Gunakan SDK 2.0 untuk fitur dan optimasi terkini. Kunjungi alibabacloud-secretsmanager-client-nodejs-v2 untuk contoh kode dan kode sumber SDK 2.0.
Konfigurasi kredensial akses
ECS RAM Role
Langkah 1: Buat peran RAM dan konfigurasi izin
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.
Masuk 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 akses KMS kepada peran RAM.
Metode 1: Konfigurasi kebijakan berbasis identitas
Pada kolom Actions peran RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasi kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk key dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan key dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan key dan Kebijakan secret.
Masuk ke Konsol ECS dan sambungkan peran RAM ke instans ECS.

Langkah 2: Atur variabel lingkungan atau file konfigurasi
SDK mendukung dua metode berikut untuk memperoleh kredensial akses:
Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .
PeringatanJangan ubah nama parameter. Jika tidak, SDK tidak dapat mengenalinya.
File konfigurasi: File konfigurasi default adalah
secretsmanager.properties(nama file tidak dapat diubah). Agar aplikasi Anda memuat file konfigurasi dengan benar, letakkan di direktori konfigurasi yang sesuai. Direktori konfigurasi umum untuk berbagai bahasa meliputi:Java: Letakkan file konfigurasi di direktori
src/main/resourcesagar secara otomatis dimasukkan ke classpath saat kompilasi.Go: Letakkan file konfigurasi di direktori root proyek atau direktori khusus
config, lalu muat melalui kode.Python: Letakkan file konfigurasi di direktori proyek atau direktori khusus
config, dan gunakan metode yang sesuai (sepertios.pathataupkg_resources) untuk memuatnya.
Jika Anda menggunakan file konfigurasi kustom, Anda harus menentukan jalur file (
#customConfigFileName#) saat inisialisasi client.
File konfigurasi
Gateway khusus
# Jenis kredensial credentials_type=ecs_ram_role # Nama ECS RAM Role credentials_role_name=#credentials_role_name# # Wilayah KMS terkait dan titik akhir instans cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]Gateway bersama
# Jenis kredensial credentials_type=ecs_ram_role # Nama ECS RAM Role credentials_role_name=#credentials_role_name# # Wilayah KMS terkait cache_client_region_id=[{"regionId":"#regionId#"}]Gateway bersama (VPC)
# Jenis kredensial credentials_type=ecs_ram_role # Nama ECS RAM Role credentials_role_name=#credentials_role_name# # Wilayah KMS terkait dan Titik Akhir VPC cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
Variabel lingkungan
Parameter | Nilai |
| Nilai tetap: |
| Nama peran RAM. |
|
|
AccessKey
Langkah 1: Buat AccessKey dan konfigurasi izin
Secara default, akun Alibaba Cloud memiliki izin administrator untuk semua resource, yang tidak dapat diubah. Untuk memastikan keamanan resource, kami merekomendasikan Anda menggunakan pengguna RAM untuk membuat pasangan AccessKey dan memberikan hanya izin yang diperlukan.
Masuk ke Konsol RAM. Di halaman Users, klik nama pengguna RAM target.
Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti petunjuk di layar.
Berikan izin akses KMS kepada pengguna RAM.
Metode 1: Konfigurasi kebijakan berbasis identitas
Pada kolom Actions pengguna RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan KMS ke pengguna RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasi kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk key dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan key dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan key dan Kebijakan secret.
Langkah 2: Atur variabel lingkungan atau file konfigurasi
SDK mendukung dua metode berikut untuk memperoleh kredensial akses:
Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .
PeringatanJangan ubah nama parameter. Jika tidak, SDK tidak dapat mengenalinya.
File konfigurasi: File konfigurasi default adalah
secretsmanager.properties(nama file tidak dapat diubah). Agar aplikasi Anda memuat file konfigurasi dengan benar, letakkan di direktori konfigurasi yang sesuai. Direktori konfigurasi umum untuk berbagai bahasa meliputi:Java: Letakkan file konfigurasi di direktori
src/main/resourcesagar secara otomatis dimasukkan ke classpath saat kompilasi.Go: Letakkan file konfigurasi di direktori root proyek atau direktori khusus
config, lalu muat melalui kode.Python: Letakkan file konfigurasi di direktori proyek atau direktori khusus
config, dan gunakan metode yang sesuai (sepertios.pathataupkg_resources) untuk memuatnya.
Jika Anda menggunakan file konfigurasi kustom, Anda harus menentukan jalur file (
#customConfigFileName#) saat inisialisasi client.
File Konfigurasi
Gateway khusus
# Jenis kredensial credentials_type=ak # ID AccessKey credentials_access_key_id=#access_key_id# # Secret AccessKey credentials_access_secret=#access_key_secret# # Gunakan konfigurasi berikut untuk gateway instans KMS khusus cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]# Jenis kredensial credentials_type=ak # ID AccessKey credentials_access_key_id=#access_key_id# # Secret AccessKey credentials_access_secret=#access_key_secret# # Wilayah KMS terkait cache_client_region_id=[{"regionId":"#regionId#"}]Gateway bersama (VPC)
# Jenis kredensial credentials_type=ak # ID AccessKey credentials_access_key_id=#access_key_id# # Secret AccessKey credentials_access_secret=#access_key_secret# # Wilayah KMS terkait dan Titik Akhir VPC cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
Variabel lingkungan
Parameter | Nilai |
| Nilai tetap: |
| ID AccessKey. |
| Secret AccessKey. |
|
|
OIDC Role ARN
Hanya SDK 2.0 yang mendukung kredensial OIDC Role ARN. SDK 1.0 tidak mendukung.
Langkah 1: Buat OIDC role ARN dan konfigurasi izin
Buat penyedia OIDC
Masuk ke Konsol RAM sebagai administrator RAM. Di halaman SSO, klik tab Role-based SSO.
Di tab OIDC, klik Create IdP.
Di halaman Create IdP, konfigurasi informasi penyedia. Untuk informasi lebih lanjut, lihat Kelola penyedia OIDC.
Peroleh dan simpan informasi identitas OIDC (ARN dan Client ID)
Buka halaman SSO, dan di tab IdP, klik nama penyedia OIDC target.
Di halaman detail IdP, Anda dapat melihat ARN dan Client ID.
Buat dan beri otorisasi peran RAM untuk penyedia OIDC
Masuk ke Konsol RAM sebagai administrator RAM dan buka halaman .
Klik Create Role. Di pojok kanan atas halaman pembuatan, klik Switch to Policy Editor.
Di editor kebijakan, tentukan penyedia OIDC. Pilih editor visual dan konfigurasi parameter seperti dijelaskan di bawah.
CatatanUntuk informasi tentang mode lainnya, lihat Buat peran RAM untuk penyedia OIDC.
Di bagian Select Trusted Entity, pilih IdP.
Di bagian Edit Trust Policy, konfigurasi parameter berikut.
IdP Type: Pilih OIDC.
IdP: Pilih penyedia OIDC yang telah Anda buat sebelumnya.
Berikan izin akses KMS kepada peran RAM OIDC
Metode 1: Konfigurasi kebijakan berbasis identitas
Kembali ke halaman daftar Identities > Roles dan klik Grant Permission di kolom Actions peran OIDC target untuk langsung menyambungkan kebijakan izin sistem bawaan KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem bawaan KMS, lihat Referensi Kebijakan Izin Sistem Key Management Service.
CatatanKebijakan izin kustom juga didukung. Untuk informasi lebih lanjut, lihat Buat kebijakan izin kustom.
Metode 2: Konfigurasi kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk key dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan key dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan key dan Kebijakan secret.
Peroleh OIDC Role ARN target
Di halaman , klik nama peran target.
Di halaman detail peran, temukan OIDC Role ARN di bagian ARN.
CatatanRole ARN adalah ARN peran RAM yang akan diasumsikan. Formatnya adalah
acs:ram::$accountID:role/$roleName, di mana$accountIDadalah ID akun Alibaba Cloud dan$roleNameadalah nama peran RAM.
Terbitkan dan simpan file token OIDC
Alibaba Cloud tidak mendukung login OIDC langsung dari konsol, tetapi Anda dapat menyelesaikan proses SSO OIDC secara terprogram. Memperoleh token OIDC melibatkan alur OAuth, biasanya melalui proses OAuth 2.0 standar dari penyedia identitas OIDC (IdP).
Contohnya: ketika aplikasi berjalan di kluster ACK dengan RRSA diaktifkan, kluster secara otomatis membuat dan memasang file token OIDC akun layanan yang sesuai untuk pod aplikasi.
Langkah 2: Atur variabel lingkungan atau file konfigurasi
SDK mendukung dua metode berikut untuk memperoleh kredensial akses:
Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .
PeringatanJangan ubah nama parameter. Jika tidak, SDK tidak dapat mengenalinya.
File konfigurasi: File konfigurasi default adalah
secretsmanager.properties(nama file tidak dapat diubah). Agar aplikasi Anda memuat file konfigurasi dengan benar, letakkan di direktori konfigurasi yang sesuai. Direktori konfigurasi umum untuk berbagai bahasa meliputi:Java: Letakkan file konfigurasi di direktori
src/main/resourcesagar secara otomatis dimasukkan ke classpath saat kompilasi.Go: Letakkan file konfigurasi di direktori root proyek atau direktori khusus
config, lalu muat melalui kode.Python: Letakkan file konfigurasi di direktori proyek atau direktori khusus
config, dan gunakan metode yang sesuai (sepertios.pathataupkg_resources) untuk memuatnya.
Jika Anda menggunakan file konfigurasi kustom, Anda harus menentukan jalur file (
#customConfigFileName#) saat inisialisasi client.
File konfigurasi
Gateway khusus
# Jenis kredensial credentials_type=oidc_role_arn # Role ARN (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_role_arn=<role_arn> # ARN penyedia OIDC (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_oidc_provider_arn=<oidc_provider_arn> # Jalur file token OIDC (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_oidc_token_file_path=<oidc_token_file_path> # Wilayah KMS dan titik akhir instans cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]# Jenis kredensial credentials_type=oidc_role_arn # Role ARN (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_role_arn=<role_arn> # ARN penyedia OIDC (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_oidc_provider_arn=<oidc_provider_arn> # Jalur file token OIDC (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_oidc_token_file_path=<oidc_token_file_path> # Wilayah KMS terkait cache_client_region_id=[{"regionId":"<regionId>"}]Gateway bersama (VPC)
# Jenis kredensial credentials_type=oidc_role_arn # Role ARN (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_role_arn=<role_arn> # ARN penyedia OIDC (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_oidc_provider_arn=<oidc_provider_arn> # Jalur file token OIDC (opsional. Jika tidak ditentukan, Default credential provider chain digunakan) credentials_oidc_token_file_path=<oidc_token_file_path> # Wilayah KMS terkait dan Titik Akhir VPC cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
Variabel lingkungan
Parameter | Nilai |
| Nilai tetap: |
| ARN peran RAM untuk penyedia identitas OIDC. Opsional. Jika tidak ditentukan, Default credential provider chain digunakan. |
| ARN penyedia identitas OIDC. Opsional. Jika tidak ditentukan, Default credential provider chain digunakan. |
| Jalur relatif atau absolut ke file yang menyimpan token OIDC. Opsional. Jika tidak ditentukan, Default credential provider chain digunakan. |
|
|
AK+RamRoleArn
Hanya SDK 1.0 yang mendukung pembacaan informasi RAM Role ARN dari variabel lingkungan dan file konfigurasi default. SDK 2.0 tidak mendukung. Jika Anda memerlukan fitur ini dengan SDK 2.0, hubungi dukungan teknis.
Langkah 1: Buat RAM role ARN dan konfigurasi izin
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, meminimalkan risiko eksposur.
Buat pasangan AccessKey pengguna
Masuk 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 petunjuk di layar.
Buat dan beri otorisasi peran RAM:
Di panel navigasi kiri, pilih . Di halaman Roles, klik Create Role. Untuk informasi lebih lanjut, lihat Buat peran RAM.
Berikan izin akses KMS kepada peran RAM.
Metode 1: Konfigurasi kebijakan berbasis identitas
Pada kolom Actions peran RAM, klik Grant Permission untuk menyambungkan kebijakan izin sistem bawaan KMS ke peran RAM. Untuk informasi lebih lanjut tentang kebijakan izin sistem KMS, lihat Kebijakan sistem untuk KMS.
CatatanAnda juga dapat membuat kebijakan izin kustom. Untuk informasi lebih lanjut, lihat Buat kebijakan kustom.
Metode 2: Konfigurasi kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource yang memberikan izin akses untuk key dan secret tertentu. Anda dapat menggunakan kebijakan ini untuk mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan key dan secret KMS. Untuk informasi lebih lanjut, lihat Kebijakan key dan Kebijakan secret.
Peroleh RamRoleArn peran RAM target. Untuk informasi lebih lanjut, lihat Lihat informasi peran RAM.
Di panel navigasi kiri, pilih . Di halaman Roles, klik nama peran target.
Di halaman detail peran, temukan RamRoleArn di bagian ARN.
CatatanRamRoleArn adalah Nama Sumber Daya Alibaba Cloud (ARN) peran RAM yang akan diasumsikan. Formatnya adalah
acs:ram::$accountID:role/$roleName, di mana$accountIDadalah ID akun Alibaba Cloud dan$roleNameadalah nama peran RAM.
Langkah 2: Atur variabel lingkungan atau file konfigurasi
SDK mendukung dua metode berikut untuk memperoleh kredensial akses:
Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .
PeringatanJangan ubah nama parameter. Jika tidak, SDK tidak dapat mengenalinya.
File konfigurasi: File konfigurasi default adalah
secretsmanager.properties(nama file tidak dapat diubah). Agar aplikasi Anda memuat file konfigurasi dengan benar, letakkan di direktori konfigurasi yang sesuai. Direktori konfigurasi umum untuk berbagai bahasa meliputi:Java: Letakkan file konfigurasi di direktori
src/main/resourcesagar secara otomatis dimasukkan ke classpath saat kompilasi.Go: Letakkan file konfigurasi di direktori root proyek atau direktori khusus
config, lalu muat melalui kode.Python: Letakkan file konfigurasi di direktori proyek atau direktori khusus
config, dan gunakan metode yang sesuai (sepertios.pathataupkg_resources) untuk memuatnya.
Jika Anda menggunakan file konfigurasi kustom, Anda harus menentukan jalur file (
#customConfigFileName#) saat inisialisasi client.
File Konfigurasi
Gateway Khusus
# Jenis kredensial credentials_type=ram_role # Nama sesi peran credentials_role_session_name=#role_session_name# # ARN peran credentials_role_arn=#role_arn# # ID AccessKey credentials_access_key_id=#access_key_id# # Secret AccessKey credentials_access_secret=#access_key_secret# # Gunakan konfigurasi berikut untuk gateway instans KMS khusus cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}]# Jenis kredensial credentials_type=ram_role # Nama sesi peran credentials_role_session_name=#role_session_name# # ARN peran credentials_role_arn=#role_arn# # ID AccessKey credentials_access_key_id=#access_key_id# # Secret AccessKey credentials_access_secret=#access_key_secret# # Wilayah KMS terkait cache_client_region_id=[{"regionId":"#regionId#"}]Gateway bersama (VPC)
# Jenis kredensial credentials_type=ram_role # Nama sesi peran credentials_role_session_name=#role_session_name# # ARN peran credentials_role_arn=#role_arn# # ID AccessKey credentials_access_key_id=#access_key_id# # Secret AccessKey credentials_access_secret=#access_key_secret# # Wilayah KMS terkait dan Titik Akhir VPC cache_client_region_id=[{"regionId":"#regionId#","endpoint":"kms-vpc.#regionId#.aliyuncs.com","vpc":"true"}]
Variabel lingkungan
Parameter | Nilai |
|
|
| Nama sesi peran RAM. |
| ARN peran RAM. |
| ID AccessKey. |
| AccessKey Secret. |
|
|
ClientKey (Usang)
Hanya SDK 1.0 yang mendukung jenis kredensial ClientKey. SDK 2.0 tidak mendukung.
Gateway bersama
Gateway khusus
Langkah 1: Buat ClientKey
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, cocok untuk pengujian dan pengembangan cepat. Kredensial akses yang dibuat dengan cara ini memiliki akses penuh ke semua resource di instans KMS.
Masuk 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 aplikasi Anda.
Application Access Point Name
Masukkan nama untuk titik akses aplikasi.
Authentication Method
Ini diatur ke ClientKey dan tidak dapat diubah.
Default Permission Policy
Nilainya adalah
key/*secret/*dan tidak dapat diubah. Artinya, aplikasi dapat mengakses semua key dan secret di instans KMS yang ditentukan.Klik OK. Browser secara otomatis mengunduh ClientKey. ClientKey mencakup file berikut:
Credential (ClientKeyContent): Nama file default adalah
clientKey_****.json.Kata sandi kredensial (ClientKeyPassword): Nama file default adalah
clientKey_****_Password.txt.
Metode 2: Standard Create
Jika Anda perlu mengonfigurasi izin akses detail halus untuk resource, kami merekomendasikan 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:
Saat mengonfigurasi aturan jaringan, pilih Private untuk jenis jaringan.
Saat mengonfigurasi cakupan aturan izin, pilih ID Instans KMS yang sesuai.
Setelah pembuatan, browser Anda secara otomatis mengunduh ClientKey, yang mencakup:
Credential (ClientKeyContent): File bernama
clientKey_****.jsonsecara default.Kata sandi kredensial (ClientKeyPassword): File bernama
clientKey_****_Password.txtsecara default.
Langkah 2: Konfigurasi Variabel lingkungan atau File Konfigurasi
Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .
PeringatanJangan ubah nama parameter. Jika tidak, SDK tidak dapat mengenalinya.
File konfigurasi: File konfigurasi default adalah
secretsmanager.properties(nama file tidak dapat diubah). Agar aplikasi Anda memuat file konfigurasi dengan benar, letakkan di direktori konfigurasi yang sesuai. Direktori konfigurasi umum untuk berbagai bahasa meliputi:Java: Letakkan file konfigurasi di direktori
src/main/resourcesagar secara otomatis dimasukkan ke classpath saat kompilasi.Go: Letakkan file konfigurasi di direktori root proyek atau direktori khusus
config, lalu muat melalui kode.Python: Letakkan file konfigurasi di direktori proyek atau direktori khusus
config, dan gunakan metode yang sesuai (sepertios.pathataupkg_resources) untuk memuatnya.
Jika Anda menggunakan file konfigurasi kustom, Anda harus menentukan jalur file (
#customConfigFileName#) saat inisialisasi client.
File Konfigurasi
Pendekatan 1: Konfigurasi 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: Konfigurasi 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>"}]
Variabel lingkungan
SDK mendukung dua pendekatan untuk mengonfigurasi kata sandi kredensial ClientKey:
Pendekatan 1: Konfigurasi jalur file kata sandi file ClientKey
Parameter
Nilai
cache_client_dkms_config_infoFormat:
[{"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: Konfigurasi konten kata sandi ClientKey melalui variabel lingkungan
Parameter
Nilai
cache_client_dkms_config_infoFormat:
[{"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>"}].
Parameter cache_client_dkms_config_info
Parameter | Deskripsi |
| ID wilayah tempat instans KMS ditempatkan. Untuk ID wilayah, lihat Wilayah dan zona. |
| Titik akhir instans KMS, dalam format |
| Jalur absolut atau relatif ke file Kredensial-ClientKeyContent ( |
| Jalur absolut atau relatif ke file ClientKeyPassword ( |
| Nama variabel lingkungan yang menyimpan konten ClientKeyPassword, misalnya, |
| Menentukan apakah akan melewati validasi sertifikat SSL untuk instans KMS. Instans KMS memiliki sertifikat SSL bawaan, digunakan dengan protokol SSL/TLS untuk verifikasi identitas dan komunikasi terenkripsi. Nilai yang valid:
|
| Jalur absolut atau relatif ke file sertifikat CA instans KMS. Catatan Sertifikat CA digunakan untuk memvalidasi sertifikat SSL instans KMS. Untuk informasi lebih lanjut tentang cara memperoleh sertifikat CA, lihat Peroleh sertifikat CA instans KMS. |
Ambil secrets
Semua contoh di bawah menggunakan SDK 2.0. Untuk contoh SDK 1.0, kunjungi repositori kode sumber SDK 1.0.
Java
Gunakan konfigurasi default
SDK secara otomatis membaca informasi kredensial dari file secretsmanager.properties atau variabel lingkungan.
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
public class CacheClientEnvironmentSample {
public static void main(String[] args) {
try {
SecretCacheClient client = SecretCacheClientBuilder.newClient();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
System.out.println(secretInfo);
} catch (CacheSecretException e) {
e.printStackTrace();
}
}
}
Gunakan file konfigurasi kustom
Gunakan pendekatan ini ketika file konfigurasi tidak menggunakan nama file atau jalur default. Tentukan jalur file konfigurasi (#customConfigFileName#).
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
public class CacheClientCustomConfigFileSample {
public static void main(String[] args) {
try {
SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCustomConfigFile("#customConfigFileName#")
.build())
.build();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
System.out.println(secretInfo);
} catch (CacheSecretException e) {
System.out.println("CacheSecretException: " + e.getMessage());
}
}
}
Gunakan kredensial hard-coded
Pendekatan ini memungkinkan Anda meneruskan AccessKey dan informasi wilayah secara langsung saat inisialisasi client, tanpa menulis AccessKey ke file konfigurasi atau variabel lingkungan.
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils;
public class CacheClientWithCaCertificateSample {
public static void main(String[] args) {
try {
// Buat RegionInfo dengan jalur sertifikat CA
RegionInfo regionInfo = new RegionInfo();
regionInfo.setRegionId("#regionId#");
// Titik akhir gateway khusus. Abaikan jika menggunakan gateway bersama.
regionInfo.setEndpoint("<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com");
SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCredentialsProvider(CredentialsProviderUtils.withAccessKey(
System.getenv("#accessKeyId#"),
System.getenv("#accessKeySecret#")))
.addRegion(regionInfo)
.build())
.build();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
} catch (CacheSecretException e) {
e.printStackTrace();
}
}
}
Gunakan Default credential provider chain Alibaba Cloud
Default credential provider chain adalah strategi fallback. Strategi ini mencari kredensial dalam urutan yang telah ditentukan hingga kredensial ditemukan. Jika semua metode gagal, autentikasi gagal dan kredensial tidak dapat diperoleh.
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient;
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder;
import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException;
import com.aliyuncs.kms.secretsmanager.client.V2.0.model.SecretInfo;
import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder;
public class CacheClientDefaultCredentialChainSample {
public static void main(String[] args) {
try {
SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withRegion("#regionId#")
.build())
.build();
SecretInfo secretInfo = client.getSecretInfo("#secretName#");
System.out.println(secretInfo);
} catch (CacheSecretException e) {
e.printStackTrace();
}
}
}
Untuk contoh lebih lanjut, lihat Secrets Manager Client SDK Examples.
Python
Gunakan konfigurasi default
SDK secara otomatis membaca informasi kredensial dari file secretsmanager.properties atau variabel lingkungan.
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
if __name__ == '__main__':
secret_cache_client = SecretManagerCacheClientBuilder.new_client()
secret_info = secret_cache_client.get_secret_info("#secretName#")
print(secret_info.__dict__)
Gunakan file konfigurasi kustom
Gunakan pendekatan ini ketika file konfigurasi tidak menggunakan nama file atau jalur default.
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
if __name__ == '__main__':
secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
DefaultSecretManagerClientBuilder.standard()
.with_custom_config_file("#customConfigFileName#")
.build()
).build()
secret_info = secret_cache_client.get_secret_info("#secretName#")
print(secret_info.__dict__)
Gunakan kredensial hard-coded
Pendekatan ini meneruskan AccessKey dan informasi wilayah secara langsung saat inisialisasi client.
import os
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \
DefaultSecretManagerClientBuilder
from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo
if __name__ == '__main__':
# Buat RegionInfo dengan jalur sertifikat CA
region_info = RegionInfo(
region_id="#regionId#",
endpoint="#kmsInstanceEndpoint#", # Titik akhir gateway khusus. Abaikan jika menggunakan gateway bersama.
)
secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
DefaultSecretManagerClientBuilder.standard()
.with_access_key(
os.getenv("#accessKeyId#"),
os.getenv("#accessKeySecret#")
)
.add_region_info(region_info)
.build()
).build()
# ... gunakan client
Gunakan Default credential provider chain Alibaba Cloud
from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
if __name__ == '__main__':
secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(
DefaultSecretManagerClientBuilder.standard()
.with_region("#regionId#")
.build()
).build()
secret_info = secret_cache_client.get_secret_info("#secretName#")
print(secret_info.__dict__)
Untuk contoh lebih lanjut, lihat Contoh Secrets Manager Client SDK.
Go
Gunakan konfigurasi default
package main
import "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
func main() {
client, err := sdk.NewClient()
if err != nil {
// Tangani exception
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// Tangani exception
panic(err)
}
}
Gunakan file konfigurasi kustom
package main
import (
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
)
func main() {
client, err := sdk.NewSecretCacheClientBuilder(
service.NewDefaultSecretManagerClientBuilder().Standard().
WithCustomConfigFile("#customConfigFileName#").Build()).Build()
if err != nil {
// Tangani exception
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// Tangani exception
panic(err)
}
}
Gunakan kredensial hard-coded
package main
import (
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
"os"
)
func main() {
regionInfo := &models.RegionInfo{
RegionId: "#regionId#",
// Titik akhir gateway khusus. Abaikan jika menggunakan gateway bersama.
Endpoint: "<kmsInstanceId>.cryptoservice.kms.aliyuncs.com",
}
client, err := sdk.NewSecretCacheClientBuilder(
service.NewDefaultSecretManagerClientBuilder().
Standard().
WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")).
AddRegionInfo(regionInfo).
Build()).Build()
if err != nil {
// Tangani exception
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// Tangani exception
panic(err)
}
}
Gunakan Default credential provider chain Alibaba Cloud
package main
import (
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk"
"github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service"
)
func main() {
client, err := sdk.NewSecretCacheClientBuilder(
service.NewDefaultSecretManagerClientBuilder().Standard().
WithRegion("#regionId#").Build()).Build()
if err != nil {
// Tangani exception
panic(err)
}
secretInfo, err := client.GetSecretInfo("#secretName#")
if err != nil {
// Tangani exception
panic(err)
}
}
Untuk contoh lebih lanjut, lihat Contoh Secrets Manager Client SDK.
Node.js
Gunakan konfigurasi default
SDK secara otomatis membaca informasi kredensial dari file secretsmanager.properties atau variabel lingkungan.
import { SecretCacheClientBuilder } from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
// Bangun client melalui variabel lingkungan atau konfigurasi default
const client = await SecretCacheClientBuilder.newClient();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();Gunakan file konfigurasi kustom
Gunakan pendekatan ini ketika file konfigurasi tidak menggunakan nama file atau jalur default. Tentukan jalur file konfigurasi.
import {
SecretCacheClientBuilder,
BaseSecretManagerClientBuilder,
CredentialsProviderUtils
} from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
const client = await SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard().withCustomConfigFile('#customConfigFileName#').build()
).build();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();Gunakan kredensial hard-coded
Pendekatan ini meneruskan AccessKey dan informasi wilayah secara langsung saat inisialisasi client.
import {
SecretCacheClientBuilder,
BaseSecretManagerClientBuilder,
CredentialsProviderUtils,
RegionInfo
} from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
// Buat RegionInfo dengan jalur sertifikat CA
const regionInfo = new RegionInfo();
regionInfo.setRegionId('#regionId#');
regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // Tentukan alamat instans KMS
const client = await SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCredentialsProvider(
CredentialsProviderUtils.withAccessKey(
process.env['#accessKeyId#'],
process.env['#accessKeySecret#']
)
)
.addRegionInfo(regionInfo) // Gunakan RegionInfo dengan jalur sertifikat CA
.build()
).build();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();Gunakan Default credential provider chain Alibaba Cloud
import {
SecretCacheClientBuilder,
BaseSecretManagerClientBuilder,
CredentialsProviderUtils
} from 'alibabacloud-secretsmanager-client-v2';
async function example() {
try {
const client = await SecretCacheClientBuilder.newCacheClientBuilder(
BaseSecretManagerClientBuilder.standard()
.withCredentialsProvider(CredentialsProviderUtils.withDefaultCredential())
.withRegion('#regionId#')
.build()
).build();
const secretInfo = await client.getSecretInfo('#secretName#');
console.log(secretInfo);
} catch (error) {
console.error('Error:', error);
}
}
example();Untuk contoh lebih lanjut, lihat Contoh Secrets Manager Client SDK.
FAQ
Apa yang harus saya lakukan jika muncul error "cannot find the built-in CA certificate for region[$regionId], please provide the caFilePath parameter."?
Penyebab: Sertifikat CA bawaan untuk wilayah yang ditentukan tidak ada di SDK.
Solusi:
Perbarui SDK ke versi V2.0 terbaru.
Jika error tetap muncul setelah memperbarui ke versi terbaru, unduh sertifikat CA terbaru (tersedia di konsol KMS di bawah Instance Management > Instance Details), dan teruskan jalur sertifikat CA. Anda dapat menggunakan salah satu metode berikut:
Teruskan melalui variabel lingkungan
Tambahkan parameter
caFilePathke konfigurasicache_client_region_id:# Wilayah KMS terkait, termasuk jalur sertifikat CA dan titik akhir instans cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]Teruskan melalui file konfigurasi
Tambahkan parameter
caFilePathkesecretsmanager.propertiesatau file konfigurasi kustom:# Wilayah KMS terkait, termasuk jalur sertifikat CA dan titik akhir instans cache_client_region_id=[{"regionId":"<regionId>","endpoint":"<kmsInstanceId>.cryptoservice.kms.aliyuncs.com","caFilePath":"<ca_certificate_file_path>"}]Teruskan melalui Kredensial Hard-coded
import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClient; import com.aliyuncs.kms.secretsmanager.client.V2.0.SecretCacheClientBuilder; import com.aliyuncs.kms.secretsmanager.client.V2.0.exception.CacheSecretException; import com.aliyuncs.kms.secretsmanager.client.V2.0.model.RegionInfo; import com.aliyuncs.kms.secretsmanager.client.V2.0.service.BaseSecretManagerClientBuilder; import com.aliyuncs.kms.secretsmanager.client.V2.0.utils.CredentialsProviderUtils; public class CacheClientWithCaCertificateSample { public static void main(String[] args) { try { // Buat RegionInfo dengan jalur sertifikat CA RegionInfo regionInfo = new RegionInfo(); regionInfo.setRegionId("#regionId#"); regionInfo.setEndpoint("#kmsInstanceEndpoint#"); // Tentukan titik akhir instans KMS regionInfo.setCaFilePath("#caFilePath#"); // Tentukan jalur file sertifikat CA SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard() .withCredentialsProvider(CredentialsProviderUtils.withAccessKey( System.getenv("#accessKeyId#"), System.getenv("#accessKeySecret#"))) .addRegion(regionInfo) // Gunakan RegionInfo dengan jalur sertifikat CA .build()) .build(); // ... gunakan client } catch (CacheSecretException e) { e.printStackTrace(); } } }import os from alibabacloud_secretsmanager_client_V2.0.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder from alibabacloud_secretsmanager_client_V2.0.service.default_secret_manager_client_builder import \ DefaultSecretManagerClientBuilder from alibabacloud_secretsmanager_client_V2.0.model.region_info import RegionInfo if __name__ == '__main__': # Buat RegionInfo dengan jalur sertifikat CA region_info = RegionInfo( region_id="#regionId#", endpoint="#kmsInstanceEndpoint#", # Tentukan titik akhir instans KMS ca_file_path="#caFilePath#" # Tentukan jalur file sertifikat CA ) secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder( DefaultSecretManagerClientBuilder.standard() .with_access_key( os.getenv("#accessKeyId#"), os.getenv("#accessKeySecret#") ) .add_region_info(region_info) # Gunakan RegionInfo dengan jalur sertifikat CA .build() ).build() # ... gunakan clientpackage main import ( "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk" "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/models" "github.com/aliyun/alibabacloud-secretsmanager-client-go-V2.0/sdk/service" "os" ) func main() { // Buat RegionInfo dengan jalur sertifikat CA regionInfo := &models.RegionInfo{ RegionId: "#regionId#", Endpoint: "#kmsInstanceEndpoint#", // Tentukan titik akhir instans KMS CaFilePath: "#caFilePath#", // Tentukan jalur file sertifikat CA } client, err := sdk.NewSecretCacheClientBuilder( service.NewDefaultSecretManagerClientBuilder(). Standard(). WithAccessKey(os.Getenv("#accessKeyId#"), os.Getenv("#accessKeySecret#")). AddRegionInfo(regionInfo). // Gunakan RegionInfo dengan jalur sertifikat CA Build()).Build() if err != nil { // Tangani exception panic(err) } secretInfo, err := client.GetSecretInfo("#secretName#") if err != nil { // Tangani exception panic(err) } }import { SecretCacheClientBuilder, BaseSecretManagerClientBuilder, CredentialsProviderUtils, RegionInfo } from 'alibabacloud-secretsmanager-client-v2'; async function example() { try { // Buat RegionInfo dengan jalur sertifikat CA const regionInfo = new RegionInfo(); regionInfo.setRegionId('#regionId#'); regionInfo.setEndpoint('#kmsInstanceEndpoint#'); // Tentukan alamat instans KMS regionInfo.setCaFilePath('#caFilePath#'); // Tentukan jalur file sertifikat CA const client = await SecretCacheClientBuilder.newCacheClientBuilder( BaseSecretManagerClientBuilder.standard() .withCredentialsProvider( CredentialsProviderUtils.withAccessKey( process.env['#accessKeyId#'], process.env['#accessKeySecret#'] ) ) .addRegionInfo(regionInfo) // Gunakan RegionInfo dengan jalur sertifikat CA .build() ).build(); const secretInfo = await client.getSecretInfo('#secretName#'); console.log(secretInfo); } catch (error) { console.error('Error:', error); } } example();
Apa yang harus saya lakukan jika muncul error "env/config credentials type[client_key] is illegal"?
Penyebab: Alibaba Cloud Secrets Manager Client SDK 2.0 tidak mendukung jenis kredensial ClientKey.
Solusi:
Beralih ke jenis kredensial yang didukung seperti AccessKey, ECS RAM Role, atau OIDC Role ARN. Untuk informasi lebih lanjut, lihat Konfigurasi kredensial akses.
Downgrade ke SDK 1.0 (tidak direkomendasikan).