All Products
Search
Document Center

Key Management Service:Secrets Manager Client

Last Updated:May 09, 2026

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.

Catatan
  • 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

    Didukung

    Didukung

    OIDC Role Arn

    Tidak didukung

    Didukung

    ECS RAM Role

    Didukung

    Didukung

    RAM Role Arn

    Didukung

    Didukung

    Catatan

    SDK 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

    Didukung

    Tidak didukung

    Default credential provider chain

    Tidak didukung

    Didukung

  • Fitur Keamanan

    Fitur

    SDK 1.0

    SDK 2.0

    Built-in CA Certificate

    Tidak didukung

    Didukung

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:

  1. Atur variabel lingkungan atau siapkan file konfigurasi, pastikan semua informasi kredensial yang diperlukan telah disertakan. Parameter berbeda antara gateway khusus dan gateway bersama.

  2. Inisialisasi client. SDK secara otomatis membaca konfigurasi dan mengidentifikasi jenis gateway.

  3. 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>
          
Penting

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
          
Penting
  • Menginstal Secrets Manager Client Python SDK V2 memerlukan Python 3.7 atau lebih baru. Jalankan python3 --version untuk 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          
Penting
  • Untuk Go, dependensi alibaba-cloud-sdk-go harus lebih awal dari V1.63.0. Periksa file go.mod Anda 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-v2
  • yarn

    yarn add alibabacloud-secretsmanager-client-v2
Penting
  • 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.

  1. 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).

  2. 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.

      Catatan

      Anda 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.

  3. Masuk ke Konsol ECS dan sambungkan peran RAM ke instans ECS.image

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 .

    Peringatan

    Jangan 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/resources agar 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 (seperti os.path atau pkg_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

credentials_type

Nilai tetap: ecs_ram_role.

credentials_role_name

Nama peran RAM.

cache_client_region_id

  • Gateway khusus: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Gateway bersama: [{"regionId":"<your_region_id>"}].

  • Gateway bersama (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Penting
    • Ganti <regionId> dengan ID wilayah aktual dan <your_kms_instance_id> dengan ID instans aktual.

    • Di Linux, saat mengatur variabel lingkungan dengan perintah export, gunakan karakter escape, misalnya: [{\"regionId\":\"<your_region_id>"}].

AccessKey

Langkah 1: Buat AccessKey dan konfigurasi izin

Peringatan

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.

  1. Masuk ke Konsol RAM. Di halaman Users, klik nama pengguna RAM target.

  2. Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti petunjuk di layar.

  3. 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.

      Catatan

      Anda 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 .

    Peringatan

    Jangan 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/resources agar 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 (seperti os.path atau pkg_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"}]
                
  • Gateway bersama

    # 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

credentials_type

Nilai tetap: ak.

credentials_access_key_id

ID AccessKey.

credentials_access_secret

Secret AccessKey.

cache_client_region_id

  • Gateway khusus: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Gateway bersama: [{"regionId":"<your_region_id>"}].

  • Gateway bersama (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Penting
    • Ganti <regionId> dengan ID wilayah aktual dan <your_kms_instance_id> dengan ID instans aktual.

    • Di Linux, saat mengatur variabel lingkungan dengan perintah export, gunakan karakter escape, misalnya: [{\"regionId\":\"<your_region_id>"}].

OIDC Role ARN

Catatan

Hanya SDK 2.0 yang mendukung kredensial OIDC Role ARN. SDK 1.0 tidak mendukung.

Langkah 1: Buat OIDC role ARN dan konfigurasi izin

  1. Buat penyedia OIDC

    1. Masuk ke Konsol RAM sebagai administrator RAM. Di halaman SSO, klik tab Role-based SSO.

    2. Di tab OIDC, klik Create IdP.

    3. Di halaman Create IdP, konfigurasi informasi penyedia. Untuk informasi lebih lanjut, lihat Kelola penyedia OIDC.

  2. Peroleh dan simpan informasi identitas OIDC (ARN dan Client ID)

    1. Buka halaman SSO, dan di tab IdP, klik nama penyedia OIDC target.

    2. Di halaman detail IdP, Anda dapat melihat ARN dan Client ID.

  3. Buat dan beri otorisasi peran RAM untuk penyedia OIDC

    1. Masuk ke Konsol RAM sebagai administrator RAM dan buka halaman Identities > Roles.

    2. Klik Create Role. Di pojok kanan atas halaman pembuatan, klik Switch to Policy Editor.

    3. Di editor kebijakan, tentukan penyedia OIDC. Pilih editor visual dan konfigurasi parameter seperti dijelaskan di bawah.

      Catatan

      Untuk informasi tentang mode lainnya, lihat Buat peran RAM untuk penyedia OIDC.

      1. Di bagian Select Trusted Entity, pilih IdP.

      2. Di bagian Edit Trust Policy, konfigurasi parameter berikut.

        • IdP Type: Pilih OIDC.

        • IdP: Pilih penyedia OIDC yang telah Anda buat sebelumnya.

  4. 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.

      Catatan

      Kebijakan 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.

  5. Peroleh OIDC Role ARN target

    1. Di halaman Identities > Roles, klik nama peran target.

    2. Di halaman detail peran, temukan OIDC Role ARN di bagian ARN.

      Catatan

      Role ARN adalah ARN peran RAM yang akan diasumsikan. Formatnya adalah acs:ram::$accountID:role/$roleName, di mana $accountID adalah ID akun Alibaba Cloud dan $roleName adalah nama peran RAM.

  6. 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 .

    Peringatan

    Jangan 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/resources agar 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 (seperti os.path atau pkg_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"}]            
  • Gateway bersama

    # 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

credentials_type

Nilai tetap: oidc_role_arn.

credentials_role_arn

ARN peran RAM untuk penyedia identitas OIDC. Opsional. Jika tidak ditentukan, Default credential provider chain digunakan.

credentials_oidc_provider_arn

ARN penyedia identitas OIDC. Opsional. Jika tidak ditentukan, Default credential provider chain digunakan.

credentials_oidc_token_file_path

Jalur relatif atau absolut ke file yang menyimpan token OIDC. Opsional. Jika tidak ditentukan, Default credential provider chain digunakan.

cache_client_region_id

  • Gateway khusus: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Gateway bersama: [{"regionId":"<your_region_id>"}].

  • Gateway bersama (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Penting
    • Ganti <regionId> dengan ID wilayah aktual dan <your_kms_instance_id> dengan ID instans aktual.

    • Di Linux, saat mengatur variabel lingkungan dengan perintah export, gunakan karakter escape, misalnya: [{\"regionId\":\"<your_region_id>"}].

AK+RamRoleArn

Catatan

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.

  1. Buat pasangan AccessKey pengguna

    1. Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identities > Users. Di halaman Users, klik nama pengguna RAM target.

    2. Sambungkan kebijakan sistem AliyunSTSAssumeRoleAccess atau kebijakan kustom yang mencakup aksi sts:AssumeRole ke pengguna RAM.

    3. Di tab Authentication, pada bagian AccessKey, klik Create AccessKey dan ikuti petunjuk di layar.

  2. Buat dan beri otorisasi peran RAM:

    1. Di panel navigasi kiri, pilih Identities > Roles. Di halaman Roles, klik Create Role. Untuk informasi lebih lanjut, lihat Buat peran RAM.

    2. 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.

        Catatan

        Anda 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.

  3. Peroleh RamRoleArn peran RAM target. Untuk informasi lebih lanjut, lihat Lihat informasi peran RAM.

    1. Di panel navigasi kiri, pilih Identities > Roles. Di halaman Roles, klik nama peran target.

    2. Di halaman detail peran, temukan RamRoleArn di bagian ARN.

      Catatan

      RamRoleArn adalah Nama Sumber Daya Alibaba Cloud (ARN) peran RAM yang akan diasumsikan. Formatnya adalah acs:ram::$accountID:role/$roleName, di mana $accountID adalah ID akun Alibaba Cloud dan $roleName adalah 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 .

    Peringatan

    Jangan 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/resources agar 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 (seperti os.path atau pkg_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"}]          
  • Gateway bersama

    # 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

credentials_type

ram_role atau sts

credentials_role_session_name

Nama sesi peran RAM.

credentials_role_arn

ARN peran RAM.

credentials_access_key_id

ID AccessKey.

credentials_access_secret

AccessKey Secret.

cache_client_region_id

  • Gateway khusus: [{"regionId":"<regionId>","endpoint":"<your_kms_instance_id>.cryptoservice.kms.aliyuncs.com"}].

  • Gateway bersama: [{"regionId":"<your_region_id>"}].

  • Gateway bersama (VPC): [{"regionId":"<your_region_id>","endpoint":"kms-vpc.<your_region_id>.aliyuncs.com","vpc":"true"}].

    Penting
    • Ganti <regionId> dengan ID wilayah aktual dan <your_kms_instance_id> dengan ID instans aktual.

    • Di Linux, saat mengatur variabel lingkungan dengan perintah export, gunakan karakter escape, misalnya: [{\"regionId\":\"<your_region_id>"}].

ClientKey (Usang)

Catatan

Hanya SDK 1.0 yang mendukung jenis kredensial ClientKey. SDK 2.0 tidak mendukung.

Gateway bersama

Langkah 1: Buat ClientKey
  1. Masuk ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih Application Access > Multi-Cloud Access (formerly AAP).

  2. (Opsional) Buat aturan jaringan.

    Catatan

    Mengonfigurasi aturan jaringan untuk membatasi akses berdasarkan alamat IP sumber bersifat opsional. Namun, kami merekomendasikan mengonfigurasinya untuk keamanan yang lebih baik.

    1. Klik tab Network Access Rules lalu klik Create Network Access Rule.

    2. Di panel Create Network Access Rule, atur Network Type ke Public, masukkan Allowed Source IP Addresses, lalu klik OK.

  3. Buat kebijakan izin.

    1. Klik tab Policies lalu klik Create Policy.

    2. Di panel Create Policy, konfigurasi parameter untuk gateway bersama seperti dijelaskan di bawah, lalu klik OK.

      1. Scope: Shared KMS Gateway

      2. Accessible Resources: Pilih rahasia yang ingin diakses.

      3. (Opsional) Network Access Rules: Pilih aturan jaringan yang dibuat pada langkah sebelumnya.

  4. Buat titik akses aplikasi (AAP).

    1. Klik tab Application Access lalu klik Create AAP.

    2. Di panel Create AAP, atur Mode ke Standard Creation, lalu konfigurasi parameter seperti dijelaskan di bawah.

      Parameter

      Deskripsi

      Authentication Method

      Pilih ClientKey.

      Encryption Password

      Masukkan string 8 hingga 64 karakter yang berisi angka, huruf, dan karakter khusus: ~!@#$%^&*?_-.

      Validity Period

      Penting

      Kami merekomendasikan mengatur periode validitas menjadi satu tahun untuk mengurangi risiko kebocoran ClientKey. Pastikan untuk memutar ClientKey sebelum kedaluwarsa untuk menghindari gangguan layanan. Untuk informasi lebih lanjut, lihat Putar ClientKey.

      Policies

      Pilih kebijakan izin yang telah Anda buat pada langkah sebelumnya.

    3. 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.

Langkah 2: Konfigurasi Variabel lingkungan atau File Konfigurasi
  • Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .

    Peringatan

    Jangan 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/resources agar 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 (seperti os.path atau pkg_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

    # Jenis kredensial
    credentials_type=client_key
    
    # Jalur file ke file ClientKeyPassword (clientKey_****_Password.txt)
    client_key_password_from_file_path=#client_key_password_file_path#
    
    # Jalur file ke file ClientKeyContent (clientKey_****.json)
    client_key_private_key_path=#client_key_private_key_file_path#
    
    # Wilayah KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
                  
  • Pendekatan 2: Konfigurasi kata sandi melalui variabel lingkungan

    Peringatan

    Pertama, simpan ClientKeyPassword dari file clientKey_****_Password.txt di variabel lingkungan kustom, seperti clientKeyPassword_content.

    # Jenis kredensial
    credentials_type=client_key
    
    # Nama variabel lingkungan yang menyimpan konten ClientKeyPassword
    client_key_password_from_env_variable=#client_key_password_env_var_name#
    
    # Jalur file kunci privat ClientKey
    client_key_private_key_path=#client_key_private_key_file_path#
    
    # Wilayah KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
                  

Variabel lingkungan

SDK mendukung dua pendekatan untuk mengonfigurasi kata sandi kredensial ClientKey:

  • Pendekatan 1: Konfigurasi jalur file kata sandi ClientKey (clientKey_****_Password.txt)

    Parameter

    Nilai

    credentials_type

    Nilai tetap: client_key.

    client_key_password_from_file_path

    Jalur absolut atau relatif ke file ClientKeyPassword (clientKey_****_Password.txt).

    client_key_private_key_path

    Jalur absolut atau relatif ke file Kredensial-ClientKeyContent  (clientKey_****.json).

    cache_client_region_id

    Format: [{"regionId":"<your_region_id>"}]. Di Linux, gunakan karakter escape: [{\"regionId\":\"<your_region_id>"}].

  • Pendekatan 2: Konfigurasi langsung konten kata sandi ClientKey

    Peringatan

    Pertama, simpan konten clientKey_****_Password.txt di variabel lingkungan kustom (misalnya, clientKeyPassword_content).

    Parameter

    Nilai

    credentials_type

    Nilai tetap: client_key.

    client_key_password_from_env_variable

    Nama variabel lingkungan yang menyimpan konten ClientKeyPassword, misalnya, clientKeyPassword_content.

    client_key_private_key_path

    Jalur absolut atau relatif ke file clientKey_****.json.

    cache_client_region_id

    Format: [{"regionId":"<your_region_id>"}]. Di Linux, gunakan karakter escape.

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.

    1. Masuk ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih Application Access > Multi-Cloud Access (formerly AAP).

    2. 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.

    3. 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.

    1. Ikuti petunjuk Standard Create di Buat titik akses aplikasi untuk membuat ClientKey guna mengakses gateway khusus. Parameter utama dijelaskan di bawah:

      1. Saat mengonfigurasi aturan jaringan, pilih Private untuk jenis jaringan.

      2. Saat mengonfigurasi cakupan aturan izin, pilih ID Instans KMS yang sesuai.

    2. Setelah pembuatan, browser Anda secara otomatis mengunduh ClientKey, yang mencakup:

      • Credential (ClientKeyContent): File bernama clientKey_****.json secara default.

      • Kata sandi kredensial (ClientKeyPassword): File bernama clientKey_****_Password.txt secara default.

Langkah 2: Konfigurasi Variabel lingkungan atau File Konfigurasi
  • Variabel lingkungan: Metode konfigurasi berbeda tergantung sistem operasi. Untuk informasi lebih lanjut, lihat .

    Peringatan

    Jangan 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/resources agar 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 (seperti os.path atau pkg_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_info

    Format: [{"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_info

    Format: [{"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

regionId

ID wilayah tempat instans KMS ditempatkan. Untuk ID wilayah, lihat Wilayah dan zona.

endpoint

Titik akhir instans KMS, dalam format {instance_id}.kms.aliyuncs.com.

clientKeyFile

Jalur absolut atau relatif ke file Kredensial-ClientKeyContent (clientKey_****.json).

passwordFromFilePath

Jalur absolut atau relatif ke file ClientKeyPassword (clientKey_****_Password.txt).

passwordFromEnvVariable

Nama variabel lingkungan yang menyimpan konten ClientKeyPassword, misalnya, clientKeyPassword_content.

ignoreSslCerts

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:

  • true: Melewati validasi. Tidak perlu mengonfigurasi caFilePath.

  • false: Memvalidasi sertifikat SSL.

caFilePath

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();
        }
    }
}
          
Catatan

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__)
          
Catatan

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)
    }
}
          
Catatan

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();
Catatan

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 caFilePath ke konfigurasi cache_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 caFilePath ke secretsmanager.properties atau 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 client
                  
        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() {
            // 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).