全部产品
Search
文档中心

Key Management Service:Klien kredensial

更新时间:Dec 05, 2025

Klien kredensial adalah wrapper kustom yang dibangun di atas KMS OpenAPI dan API instans KMS. Klien ini mengenkapsulasi fungsi caching dan penyegaran kredensial dalam aplikasi, sehingga meningkatkan stabilitas bisnis dan menyederhanakan integrasi bagi pengembang. Klien kredensial mendukung pengambilan nilai kredensial untuk semua jenis kredensial. Topik ini menjelaskan cara menginstal dan menggunakan klien kredensial.

Pengenalan SDK

Klien kredensial didasarkan pada API instans KMS dan mengenkapsulasi caching kredensial, praktik terbaik, serta pola desain untuk menyederhanakan integrasi ke dalam sistem bisnis. KMS juga menyediakan kit pengembangan perangkat lunak (SDK) instans KMS dan Alibaba Cloud SDK yang dapat digunakan untuk mengambil nilai kredensial. Untuk informasi selengkapnya, lihat Referensi SDK.

Catatan

Untuk melakukan operasi manajemen pada kredensial, Anda hanya dapat menggunakan Alibaba Cloud SDK.

Klien kredensial memiliki fitur-fitur berikut:

  • Memungkinkan pengembang mengintegrasikan kemampuan kredensial ke dalam aplikasi dan membaca informasi kredensial hanya dengan satu baris kode.

  • Mengenkapsulasi fungsi caching dan penyegaran kredensial dalam aplikasi.

  • Mengenkapsulasi mekanisme retry error API untuk menangani error sisi server secara cerdas.

  • Menyediakan pola desain plugin terbuka yang memungkinkan pengembang menyesuaikan dan memperluas modul fungsional, seperti caching dan retry error.

Catatan

  • Jenis kredensial yang didukung: rahasia generik, kredensial RAM, kredensial ECS, dan kredensial database.

  • Bahasa pemrograman yang didukung: Java (versi 8 ke atas), Python, dan Go.

Dapatkan nilai kredensial melalui gateway bersama

Jenis jaringan dapat berupa jaringan publik atau VPC.

Langkah 1: Buat kredensial akses

Metode ini mendukung autentikasi identitas melalui Resource Access Management (RAM), menggunakan metode seperti Instance RAM role, RamRoleArn, token Security Token Service (STS), dan AccessKey. Untuk informasi selengkapnya, lihat Kelola kredensial akses.

Instance RAM role

RamRoleArn

Token STS

AccessKey

ClientKey (tidak disarankan)

Langkah 2: Instal klien kredensial

Java

Anda dapat menginstal klien kredensial di proyek Anda menggunakan Maven.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>alibabacloud-secretsmanager-client</artifactId>
    <version>1.4.x</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.5.x</version>
</dependency>
Penting

Gunakan versi terbaru. Untuk informasi selengkapnya tentang versi dan kode sumber, lihat alibabacloud-secretsmanager-client-java.

Python

Untuk informasi selengkapnya tentang instalasi dan kode sumber, lihat aliyun-secretsmanager-client-python.

Anda dapat menjalankan perintah pip untuk menginstal klien kredensial.

# Jika perintah berikut gagal, ganti pip dengan pip3
pip install aliyun-secret-manager-client

Go

Untuk informasi selengkapnya tentang instalasi dan kode sumber, lihat aliyun-secretsmanager-client-go.

Anda dapat menggunakan perintah go get untuk menginstal klien kredensial.

Penting

Versi alibaba-cloud-sdk-go yang menjadi dependensi klien kredensial untuk Go harus lebih awal dari v1.63.0. Anda dapat memeriksa versinya di file go.mod plugin untuk menghindari potensi masalah kompatibilitas.

go get -u github.com/aliyun/aliyun-secretsmanager-client-go

Langkah 3: Inisialisasi klien dan dapatkan nilai kredensial

Java

Kode contoh untuk mengambil nilai kredensial bervariasi tergantung pada metode inisialisasi klien. Anda dapat memilih salah satu metode berikut.

  • Metode 1: Inisialisasi klien menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties

    Anda dapat menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties.

    Variabel lingkungan

    Metode konfigurasi variabel lingkungan bervariasi tergantung sistem operasi. Untuk informasi selengkapnya, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.

    Instance RAM role

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ecs_ram_role.

    credentials_role_name

    Nama role RAM.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    RamRoleArn

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ram_role.

    credentials_role_session_name

    Nama role RAM.

    credentials_role_arn

    ARN role RAM.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    Token STS

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: sts.

    credentials_role_session_name

    Nama role RAM.

    credentials_role_arn

    ARN role RAM.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    AccessKey

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ak.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    ClientKey

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: client_key.

    client_key_password_from_env_variable

    Menunjukkan bahwa kata sandi ClientKey diperoleh dari variabel lingkungan sistem. Nilainya adalah nama variabel lingkungan sistem untuk kata sandi tersebut.

    Saat Anda mengonfigurasi parameter ini, Anda harus mengonfigurasi kata sandi dalam variabel lingkungan sistem. Anda dapat menyesuaikan nama variabelnya.

    client_key_password_from_file_path

    Menunjukkan bahwa kata sandi ClientKey diperoleh dari file. Nilainya adalah path absolut atau relatif dari file kata sandi.

    Saat Anda mengonfigurasi parameter ini, Anda harus mengonfigurasi kata sandi dalam file. Anda dapat menyesuaikan nama file-nya.

    Catatan

    Pilih salah satu dari dua parameter: client_key_password_from_env_variable atau client_key_password_from_file_path.

    client_key_private_key_path

    Path absolut atau relatif dari file ClientKey.

    Saat Anda mengonfigurasi parameter ini, Anda harus menyimpan file ClientKey ke lokasi yang sesuai. Anda dapat menyesuaikan nama file-nya.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    File konfigurasi secretsmanager.properties

    File konfigurasi harus diberi nama secretsmanager.properties.

    Konten file konfigurasi bervariasi tergantung metode autentikasi.

    Instance RAM role

    # Jenis kredensial akses
    credentials_type=ecs_ram_role
    # Nama role RAM ECS
    credentials_role_name=#credentials_role_name#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    RAMRoleArn

    # Jenis kredensial akses
    credentials_type=ram_role
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    Token STS

    # Jenis kredensial akses
    credentials_type=sts
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    AccessKey

    # Jenis kredensial akses
    credentials_type=ak
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    ClientKey

    # Jenis kredensial akses
    credentials_type=client_key
    
    # Baca kata sandi dekripsi kunci klien. Anda dapat membacanya dari variabel lingkungan atau file.
    client_key_password_from_env_variable=#nama variabel lingkungan kata sandi kunci privat klien Anda#
    client_key_password_from_file_path=#path file kata sandi kunci privat klien Anda#
    
    # Path file kunci privat Kunci Klien
    client_key_private_key_path=#path file kunci privat kunci klien Anda#
    
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #secretName# dengan nama kredensial Anda.

    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient;
    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException;
    import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo;
    
    public class CacheClientEnvironmentSample {
    
        public static void main(String[] args) {
            try {
                // Bangun klien kredensial.
                SecretCacheClient client = SecretCacheClientBuilder.newClient();
                // Gunakan klien yang telah dibuat untuk mendapatkan informasi kredensial.
                SecretInfo secretInfo = client.getSecretInfo("#secretName#");
                System.out.println(secretInfo);
            } catch (CacheSecretException e) {
                e.printStackTrace();
            }
        }
    }
  • Metode 2: Inisialisasi klien menggunakan file konfigurasi kustom

    Anda harus menentukan nama dan path file konfigurasi.

    File konfigurasi

    Konten file konfigurasi bervariasi tergantung metode autentikasi.

    # Jenis kredensial akses
    credentials_type=ecs_ram_role
    # Nama role RAM ECS
    credentials_role_name=#credentials_role_name#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=ram_role
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=sts
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=ak
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=client_key
    
    # Baca kata sandi dekripsi kunci klien. Anda dapat membacanya dari variabel lingkungan atau file.
    client_key_password_from_env_variable=#nama variabel lingkungan kata sandi kunci privat klien Anda#
    client_key_password_from_file_path=#path file kata sandi kunci privat klien Anda#
    
    # Path file kunci privat Kunci Klien
    client_key_private_key_path=#path file kunci privat kunci klien Anda#
    
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #customConfigFileName# dengan nama file konfigurasi kustom Anda dan #secretName# dengan nama kredensial Anda.

    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient;
    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException;
    import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo;
    import com.aliyuncs.kms.secretsmanager.client.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());
            }
        }
    }
  • Metode 3: Inisialisasi klien dengan menentukan parameter (accessKey, accessSecret, regionId)

    Metode ini hanya berlaku untuk skenario di mana AccessKey digunakan untuk autentikasi.

    Catatan

    Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin. Jangan menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda karena dapat menyebabkan kebocoran kredensial dan mengompromikan keamanan seluruh resource akun Anda.

    Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan autentikasi identitas.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #regionId# dengan ID wilayah aktual dan #secretName# dengan nama kredensial Anda.

    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient;
    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException;
    import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo;
    import com.aliyuncs.kms.secretsmanager.client.service.BaseSecretManagerClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.utils.CredentialsProviderUtils;
    
    public class CacheClientSimpleParametersSample {
    
        public static void main(String[] args) {
            try {
                SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                        BaseSecretManagerClientBuilder.standard().withCredentialsProvider(CredentialsProviderUtils
                                .withAccessKey(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))).withRegion("#regionId#").build()).build();
                SecretInfo secretInfo = client.getSecretInfo("#secretName#");
                System.out.println(secretInfo);
            } catch (CacheSecretException e) {
                e.printStackTrace();
            }
        }
    }

Python

Kode contoh untuk mengambil nilai kredensial bervariasi tergantung metode inisialisasi klien. Anda dapat memilih salah satu metode berikut.

  • Metode 1: Inisialisasi klien menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties

    Anda dapat menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties.

    Variabel lingkungan

    Metode konfigurasi variabel lingkungan bervariasi tergantung sistem operasi. Untuk informasi selengkapnya, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ecs_ram_role.

    credentials_role_name

    Nama role RAM.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ram_role.

    credentials_role_session_name

    Nama role RAM.

    credentials_role_arn

    ARN role RAM.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: sts.

    credentials_role_session_name

    Nama role RAM.

    credentials_role_arn

    ARN role RAM.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ak.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: client_key.

    client_key_password_from_env_variable

    Menunjukkan bahwa kata sandi ClientKey diperoleh dari variabel lingkungan sistem. Nilainya adalah nama variabel lingkungan sistem untuk kata sandi tersebut.

    Saat Anda mengonfigurasi parameter ini, Anda harus mengonfigurasi kata sandi dalam variabel lingkungan sistem. Anda dapat menyesuaikan nama variabelnya.

    client_key_password_from_file_path

    Menunjukkan bahwa kata sandi ClientKey diperoleh dari file. Nilainya adalah path absolut atau relatif dari file kata sandi.

    Saat Anda mengonfigurasi parameter ini, Anda harus mengonfigurasi kata sandi dalam file. Anda dapat menyesuaikan nama file-nya.

    Catatan

    Pilih salah satu dari dua parameter: client_key_password_from_env_variable atau client_key_password_from_file_path.

    client_key_private_key_path

    Path absolut atau relatif dari file ClientKey.

    Saat Anda mengonfigurasi parameter ini, Anda harus menyimpan file ClientKey ke lokasi yang sesuai. Anda dapat menyesuaikan nama file-nya.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    File konfigurasi secretsmanager.properties

    File konfigurasi harus diberi nama secretsmanager.properties.

    Konten file konfigurasi bervariasi tergantung metode autentikasi.

    # Jenis kredensial akses
    credentials_type=ecs_ram_role
    # Nama role RAM ECS
    credentials_role_name=#credentials_role_name#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=ram_role
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=sts
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=ak
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    # Jenis kredensial akses
    credentials_type=client_key
    
    # Baca kata sandi dekripsi kunci klien. Anda dapat membacanya dari variabel lingkungan atau file.
    client_key_password_from_env_variable=#nama variabel lingkungan kata sandi kunci privat klien Anda#
    client_key_password_from_file_path=#path file kata sandi kunci privat klien Anda#
    
    # Path file kunci privat Kunci Klien
    client_key_private_key_path=#path file kunci privat kunci klien Anda#
    
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #secretName# dengan nama kredensial Anda.

    from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
    
    if __name__ == '__main__':
        # Bangun klien kredensial.
        secret_cache_client = SecretManagerCacheClientBuilder.new_client()
        # Gunakan klien yang telah dibuat untuk mendapatkan informasi kredensial.
        secret_info = secret_cache_client.get_secret_info("#secretName#")
        print(secret_info.__dict__)
  • Metode 2: Inisialisasi klien dengan menentukan parameter (accessKey, accessSecret, regionId)

    Metode ini hanya berlaku untuk skenario di mana AccessKey digunakan untuk autentikasi.

    Catatan

    Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin. Jangan menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda karena dapat menyebabkan kebocoran kredensial dan mengompromikan keamanan seluruh resource akun Anda.

    Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan autentikasi identitas.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #regionId# dengan ID wilayah aktual dan #secretName# dengan nama kredensial Anda.

    import os
    
    from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
    from alibaba_cloud_secretsmanager_client.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
    
    if __name__ == '__main__':
        secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(DefaultSecretManagerClientBuilder.standard() \
            .with_access_key(os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) \
            .with_region("#regionId#").build()) \
        .build();
        secret_info = secret_cache_client.get_secret_info("#secretName#")
        print(secret_info.__dict__)

Go

Kode contoh untuk mengambil nilai kredensial bervariasi tergantung metode inisialisasi klien. Anda dapat memilih salah satu metode berikut.

  • Metode 1: Inisialisasi klien menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties

    Anda dapat menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties.

    Variabel lingkungan

    Metode konfigurasi variabel lingkungan bervariasi tergantung sistem operasi. Untuk informasi selengkapnya, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.

    Instance RAM role

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ecs_ram_role.

    credentials_role_name

    Nama role RAM.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    RamRoleArn

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ram_role.

    credentials_role_session_name

    Nama role RAM.

    credentials_role_arn

    ARN role RAM.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    Token STS

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: sts.

    credentials_role_session_name

    Nama role RAM.

    credentials_role_arn

    ARN role RAM.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    AccessKey

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: ak.

    credentials_access_key_id

    ID AccessKey.

    credentials_access_secret

    Rahasia AccessKey.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    ClientKey

    Parameter

    Nilai parameter

    credentials_type

    Nilai tetap: client_key.

    client_key_password_from_env_variable

    Menunjukkan bahwa kata sandi ClientKey diperoleh dari variabel lingkungan sistem. Nilainya adalah nama variabel lingkungan sistem untuk kata sandi tersebut.

    Saat Anda mengonfigurasi parameter ini, Anda harus mengonfigurasi kata sandi dalam variabel lingkungan sistem. Anda dapat menyesuaikan nama variabelnya.

    client_key_password_from_file_path

    Menunjukkan bahwa kata sandi ClientKey diperoleh dari file. Nilainya adalah path absolut atau relatif dari file kata sandi.

    Saat Anda mengonfigurasi parameter ini, Anda harus mengonfigurasi kata sandi dalam file. Anda dapat menyesuaikan nama file-nya.

    Catatan

    Pilih salah satu dari dua parameter: client_key_password_from_env_variable atau client_key_password_from_file_path.

    client_key_private_key_path

    Path absolut atau relatif dari file ClientKey.

    Saat Anda mengonfigurasi parameter ini, Anda harus menyimpan file ClientKey ke lokasi yang sesuai. Anda dapat menyesuaikan nama file-nya.

    cache_client_region_id

    Formatnya adalah [{"regionId":"<your region id>"}]. Ganti <your region id> dengan ID wilayah aktual Anda.

    Penting

    Di Linux, saat Anda menggunakan perintah export untuk mengatur variabel lingkungan, tambahkan karakter escape. Contohnya, [{\"regionId\":\"<your region id>\"}].

    File konfigurasi secretsmanager.properties

    File konfigurasi harus diberi nama secretsmanager.properties.

    Konten file konfigurasi bervariasi tergantung metode autentikasi.

    Instance RAM role
    # Jenis kredensial akses
    credentials_type=ecs_ram_role
    # Nama role RAM ECS
    credentials_role_name=#credentials_role_name#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    RAMRoleArn
    # Jenis kredensial akses
    credentials_type=ram_role
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    Token STS
    # Jenis kredensial akses
    credentials_type=sts
    # Nama role
    credentials_role_session_name=#role name#
    # ARN resource
    credentials_role_arn=#role arn#
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    AccessKey
    # Jenis kredensial akses
    credentials_type=ak
    # ID AccessKey
    credentials_access_key_id=#access key id#
    # Rahasia AccessKey
    credentials_access_secret=#access key secret#
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]
    ClientKey
    # Jenis kredensial akses
    credentials_type=client_key
    
    # Baca kata sandi dekripsi kunci klien. Anda dapat membacanya dari variabel lingkungan atau file.
    client_key_password_from_env_variable=#nama variabel lingkungan kata sandi kunci privat klien Anda#
    client_key_password_from_file_path=#path file kata sandi kunci privat klien Anda#
    
    # Path file kunci privat Kunci Klien
    client_key_private_key_path=#path file kunci privat kunci klien Anda#
    
    # Wilayah layanan KMS terkait
    cache_client_region_id=[{"regionId":"#regionId#"}]

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #secretName# dengan nama kredensial Anda.

    package main
    
    import (
        "fmt"
        "github.com/aliyun/aliyun-secretsmanager-client-go/sdk"
    )
    func main() { 
       // Bangun klien kredensial.
        client, err := sdk.NewClient()
        if err != nil {
            // Tangani pengecualian
            panic(err)
        }
       // Gunakan klien yang telah dibuat untuk mendapatkan informasi kredensial.
        secretInfo, err := client.GetSecretInfo("#secretName#")
        if err != nil {
            // Tangani pengecualian
            panic(err)
        }
        fmt.Printf("SecretValue:%s\n",secretInfo.SecretValue)
    }
  • Inisialisasi klien dengan menentukan parameter (accessKey, accessSecret, regionId)

    Metode ini hanya berlaku untuk skenario di mana AccessKey digunakan untuk autentikasi.

    Catatan

    Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin. Jangan menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda karena dapat menyebabkan kebocoran kredensial dan mengompromikan keamanan seluruh resource akun Anda.

    Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan autentikasi identitas.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #regionId# dengan ID wilayah aktual dan #secretName# dengan nama kredensial Anda.

    package main
    
    import (
    	"github.com/aliyun/aliyun-secretsmanager-client-go/sdk/service"
    	"github.com/aliyun/aliyun-secretsmanager-client-go/sdk"
    	"os"
    )
    
    func main() {
    	client, err := sdk.NewSecretCacheClientBuilder(service.NewDefaultSecretManagerClientBuilder().Standard().WithAccessKey(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).WithRegion("#regionId#").Build()).Build()
    	if err != nil {
    		// Tangani pengecualian
    		panic(err)
    	}
    	secretInfo, err := client.GetSecretInfo("#secretName#")
    	if err != nil {
    		// Tangani pengecualian
    		panic(err)
    	}
    }

Dapatkan nilai kredensial melalui gateway khusus (tidak disarankan)

Jenis jaringan adalah jaringan pribadi KMS.

Langkah 1: Buat kredensial akses

Hanya ClientKey yang didukung sebagai kredensial akses.

Langkah 2: Instal klien kredensial

Java

Anda dapat menginstal klien kredensial di proyek Anda menggunakan Maven.

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>alibabacloud-secretsmanager-client</artifactId>
    <version>1.4.x</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.5.x</version>
</dependency>
Penting

Gunakan versi terbaru. Untuk informasi selengkapnya tentang versi dan kode sumber, lihat alibabacloud-secretsmanager-client-java.

Python

Untuk informasi selengkapnya tentang instalasi dan kode sumber, lihat aliyun-secretsmanager-client-python.

Anda dapat menjalankan perintah pip untuk menginstal klien kredensial.

# Jika perintah berikut gagal, ganti pip dengan pip3
pip install aliyun-secret-manager-client

Go

Untuk informasi selengkapnya tentang instalasi dan kode sumber, lihat aliyun-secretsmanager-client-go.

Anda dapat menggunakan perintah go get untuk menginstal klien kredensial.

go get -u github.com/aliyun/aliyun-secretsmanager-client-go

Langkah 3: Inisialisasi klien kredensial dan dapatkan nilai kredensial

Java

Kode contoh untuk mengambil nilai kredensial bervariasi tergantung metode inisialisasi klien. Anda dapat memilih salah satu metode berikut.

  • Metode 1: Inisialisasi klien menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties

    Anda dapat menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties.

    Variabel lingkungan

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Parameter

      Nilai parameter

      cache_client_dkms_config_info

      Format nilai parameter adalah [{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}].

      Dengan metode ini, Anda juga perlu mengonfigurasi konten Credential Password (ClientKeyPassword) ClientKey dalam variabel lingkungan. Anda dapat menyesuaikan nama variabelnya. Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut.

      Contohnya, pada sistem operasi Linux:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      File Credential Password (ClientKeyPassword) ClientKey yang diunduh secara default diberi nama clientKey_****_Password.txt. Anda dapat mengubah nama file tersebut, tetapi Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Parameter

      Nilai parameter

      cache_client_dkms_config_info

      Format nilai parameter adalah: [{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}].

      Contohnya, pada sistem operasi Linux:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    File konfigurasi secretsmanager.properties

    File konfigurasi harus diberi nama secretsmanager.properties.

    Parameter konfigurasi adalah cache_client_dkms_config_info. cache_client_dkms_config_info menggunakan format array JSON. Anda dapat mengonfigurasi beberapa instans KMS untuk mencapai ketersediaan layanan yang lebih tinggi dan pemulihan bencana.

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Dengan metode ini, Anda juga perlu mengonfigurasi variabel lingkungan dengan nama kustom untuk Credential Password (ClientKeyPassword). Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut. Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      Secara default, file untuk Credential Password (ClientKeyPassword) ClientKey yang diunduh diberi nama clientKey_****_Password.txt. Jika Anda mengubah nama file tersebut, Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #secretName# dengan nama kredensial Anda.

    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient;
    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException;
    import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo;
    
    public class CacheClientEnvironmentSample {
    
        public static void main(String[] args) {
            try {
                // Bangun klien kredensial.
                SecretCacheClient client = SecretCacheClientBuilder.newClient();
                // Gunakan klien yang telah dibuat untuk mendapatkan informasi kredensial.
                SecretInfo secretInfo = client.getSecretInfo("#secretName#");
                System.out.println(secretInfo);
            } catch (CacheSecretException e) {
                e.printStackTrace();
            }
        }
    }
  • Metode 2: Inisialisasi klien menggunakan file konfigurasi kustom

    Anda harus menentukan nama dan path file konfigurasi.

    File konfigurasi

    Parameter konfigurasi adalah cache_client_dkms_config_info. cache_client_dkms_config_info menggunakan format array JSON. Anda dapat mengonfigurasi beberapa instans KMS untuk mencapai ketersediaan layanan yang lebih tinggi dan pemulihan bencana.

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Dengan metode ini, Anda juga perlu mengonfigurasi variabel lingkungan dengan nama kustom untuk Credential Password (ClientKeyPassword). Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut. Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      Secara default, file untuk Credential Password (ClientKeyPassword) ClientKey yang diunduh diberi nama clientKey_****_Password.txt. Jika Anda mengubah nama file tersebut, Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #customConfigFileName# dengan nama file konfigurasi kustom Anda dan #secretName# dengan nama kredensial Anda.

    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient;
    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException;
    import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo;
    import com.aliyuncs.kms.secretsmanager.client.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());
            }
        }
    }
  • Metode 3: Inisialisasi klien dengan menentukan parameter (accessKey, accessSecret, regionId)

    Metode ini hanya berlaku untuk skenario di mana AccessKey digunakan untuk autentikasi.

    Catatan

    Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin. Jangan menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda karena dapat menyebabkan kebocoran kredensial dan mengompromikan keamanan seluruh resource akun Anda.

    Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan autentikasi identitas.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #regionId# dengan ID wilayah aktual dan #secretName# dengan nama kredensial Anda.

    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClient;
    import com.aliyuncs.kms.secretsmanager.client.SecretCacheClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.exception.CacheSecretException;
    import com.aliyuncs.kms.secretsmanager.client.model.SecretInfo;
    import com.aliyuncs.kms.secretsmanager.client.service.BaseSecretManagerClientBuilder;
    import com.aliyuncs.kms.secretsmanager.client.utils.CredentialsProviderUtils;
    
    public class CacheClientSimpleParametersSample {
    
        public static void main(String[] args) {
            try {
                SecretCacheClient client = SecretCacheClientBuilder.newCacheClientBuilder(
                        BaseSecretManagerClientBuilder.standard().withCredentialsProvider(CredentialsProviderUtils
                                .withAccessKey(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))).withRegion("#regionId#").build()).build();
                SecretInfo secretInfo = client.getSecretInfo("#secretName#");
                System.out.println(secretInfo);
            } catch (CacheSecretException e) {
                e.printStackTrace();
            }
        }
    }

Python

Kode contoh untuk mengambil nilai kredensial bervariasi tergantung metode inisialisasi klien. Anda dapat memilih salah satu metode berikut.

  • Metode 1: Inisialisasi klien menggunakan variabel lingkungan sistem atau file konfigurasi secretsmanager.properties

    Anda dapat menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties.

    Variabel lingkungan

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Parameter

      Nilai parameter

      cache_client_dkms_config_info

      Format nilai parameter adalah [{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}].

      Dengan metode ini, Anda juga perlu mengonfigurasi konten Credential Password (ClientKeyPassword) ClientKey dalam variabel lingkungan. Anda dapat menyesuaikan nama variabelnya. Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut.

      Contohnya, pada sistem operasi Linux:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      File Credential Password (ClientKeyPassword) ClientKey yang diunduh secara default diberi nama clientKey_****_Password.txt. Anda dapat mengubah nama file tersebut, tetapi Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Parameter

      Nilai parameter

      cache_client_dkms_config_info

      Format nilai parameter adalah: [{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}].

      Contohnya, pada sistem operasi Linux:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    File konfigurasi secretsmanager.properties

    File konfigurasi harus diberi nama secretsmanager.properties.

    Parameter konfigurasi adalah cache_client_dkms_config_info. cache_client_dkms_config_info menggunakan format array JSON. Anda dapat mengonfigurasi beberapa instans KMS untuk mencapai ketersediaan layanan yang lebih tinggi dan pemulihan bencana.

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Dengan metode ini, Anda juga perlu mengonfigurasi variabel lingkungan dengan nama kustom untuk Credential Password (ClientKeyPassword). Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut. Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      Secara default, file untuk Credential Password (ClientKeyPassword) ClientKey yang diunduh diberi nama clientKey_****_Password.txt. Jika Anda mengubah nama file tersebut, Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #secretName# dengan nama kredensial Anda.

    from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
    
    if __name__ == '__main__':
        # Bangun klien kredensial.
        secret_cache_client = SecretManagerCacheClientBuilder.new_client()
        # Gunakan klien yang telah dibuat untuk mendapatkan informasi kredensial.
        secret_info = secret_cache_client.get_secret_info("#secretName#")
        print(secret_info.__dict__)
  • Metode 2: Inisialisasi klien dengan menentukan parameter (accessKey, accessSecret, regionId)

    Metode ini hanya berlaku untuk skenario di mana AccessKey digunakan untuk autentikasi.

    Catatan

    Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin. Jangan menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda karena dapat menyebabkan kebocoran kredensial dan mengompromikan keamanan seluruh resource akun Anda.

    Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan autentikasi identitas.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #regionId# dengan ID wilayah aktual dan #secretName# dengan nama kredensial Anda.

    import os
    
    from alibaba_cloud_secretsmanager_client.secret_manager_cache_client_builder import SecretManagerCacheClientBuilder
    from alibaba_cloud_secretsmanager_client.service.default_secret_manager_client_builder import DefaultSecretManagerClientBuilder
    
    if __name__ == '__main__':
        secret_cache_client = SecretManagerCacheClientBuilder.new_cache_client_builder(DefaultSecretManagerClientBuilder.standard() \
            .with_access_key(os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) \
            .with_region("#regionId#").build()) \
        .build();
        secret_info = secret_cache_client.get_secret_info("#secretName#")
        print(secret_info.__dict__)

Go

Kode contoh untuk mengambil nilai kredensial bervariasi tergantung metode inisialisasi klien. Anda dapat memilih salah satu metode berikut.

  • Metode 1: Inisialisasi klien menggunakan variabel lingkungan sistem atau file konfigurasi secretsmanager.properties

    Anda dapat menggunakan variabel lingkungan atau file konfigurasi secretsmanager.properties.

    Variabel lingkungan

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Parameter

      Nilai parameter

      cache_client_dkms_config_info

      Format nilai parameter adalah [{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}].

      Dengan metode ini, Anda juga perlu mengonfigurasi konten Credential Password (ClientKeyPassword) ClientKey dalam variabel lingkungan. Anda dapat menyesuaikan nama variabelnya. Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut.

      Contohnya, pada sistem operasi Linux:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      File Credential Password (ClientKeyPassword) ClientKey yang diunduh secara default diberi nama clientKey_****_Password.txt. Anda dapat mengubah nama file tersebut, tetapi Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Parameter

      Nilai parameter

      cache_client_dkms_config_info

      Format nilai parameter adalah: [{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}].

      Contohnya, pada sistem operasi Linux:

      export cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    File konfigurasi secretsmanager.properties

    File konfigurasi harus diberi nama secretsmanager.properties.

    Parameter konfigurasi adalah cache_client_dkms_config_info. cache_client_dkms_config_info menggunakan format array JSON. Anda dapat mengonfigurasi beberapa instans KMS untuk mencapai ketersediaan layanan yang lebih tinggi dan pemulihan bencana.

    • Metode 1: Ambil kata sandi ClientKey dari variabel lingkungan

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromEnvVariable":"<YOUR_PASSWORD_ENV_VARIABLE>","clientKeyFile":"<your ClientKey file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Dengan metode ini, Anda juga perlu mengonfigurasi variabel lingkungan dengan nama kustom untuk Credential Password (ClientKeyPassword). Setelah dikonfigurasi, ganti <YOUR_PASSWORD_ENV_VARIABLE> dengan nama variabel tersebut. Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromEnvVariable":"passwordFromEnvVariable","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]
    • Metode 2: Ambil kata sandi ClientKey dari file

      Secara default, file untuk Credential Password (ClientKeyPassword) ClientKey yang diunduh diberi nama clientKey_****_Password.txt. Jika Anda mengubah nama file tersebut, Anda harus mengganti <your Client Key file path> dalam nilai cache_client_dkms_config_info dengan path file baru.

      Konten file konfigurasi adalah:

      cache_client_dkms_config_info=[{"regionId":"<your dkms regionId >","endpoint":"<your dkms endpoint>","passwordFromFilePath":"< your password file path >","clientKeyFile":"<your Client Key file path>","ignoreSslCerts":false,"caFilePath":"<your CA certificate file path>"}]

      Contohnya:

      cache_client_dkms_config_info=[{"regionId":"cn-hangzhou","endpoint":"kst-hzz634e67d126u9p9****.cryptoservice.kms.aliyuncs.com","passwordFromFilePath":"C:\RamSecretPlugin\src\main\resources\clientKeyPassword.txt","clientKeyFile":"C:\RamSecretPlugin\src\main\resources\clientKey_KAAP.json","ignoreSslCerts":false,"caFilePath":"C:\RamSecretPlugin\src\main\resources\PrivateKmsCA_kst-hzz634e67d126u9p9****.pem"}]

    Deskripsi setiap item konfigurasi:

    Item Konfigurasi

    Deskripsi parameter

    Deskripsi

    Region ID

    ID wilayah tempat instans KMS berada.

    Untuk ID wilayah spesifik, lihat Wilayah dan zona.

    Endpoint

    Nama domain instans KMS. Formatnya adalah {instance ID}.kms.aliyuncs.com.

    Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya.

    clientKeyFile

    Path absolut atau relatif file ClientKey dalam format JSON.

    • File ClientKey berisi Application Access Secret (ClientKeyContent), yang diunduh saat ClientKey dibuat di titik akses aplikasi (AAP). Nama file default-nya adalah ClientKey_******.json.

    • Kata sandi kredensial: Credential Password (ClientKeyPassword) yang diunduh saat Anda membuat ClientKey di AAP. Secara default, kata sandi ini ada di file ClientKey_******_password.txt.

    Penting

    File ClientKey dan kata sandi kredensial memiliki korespondensi satu-satu. Anda hanya bisa mendapatkannya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi selengkapnya, lihat Buat titik akses aplikasi.

    passwordFromFilePath atau passwordFromEnvVariable

    • passwordFromFilePath: Path absolut atau relatif ke file yang berisi kata sandi kredensial.

    • passwordFromEnvVariable: Nilainya adalah nama variabel lingkungan yang berisi kata sandi kredensial.

    Ignore SSL certificates

    Menentukan apakah akan mengabaikan pemeriksaan validitas sertifikat SSL instans KMS. Instans KMS memiliki sertifikat SSL bawaan dan menggunakan protokol SSL/TLS untuk autentikasi dan komunikasi terenkripsi. Nilai yang valid adalah:

    • true: Mengabaikan pemeriksaan validitas.

      Catatan

      Jika nilainya diatur ke true, Anda tidak perlu mengonfigurasi caFilePath.

    • false: Melakukan pemeriksaan validitas.

    Di lingkungan produksi, Anda harus mengatur parameter ini ke false.

    caFilePath

    Path absolut atau relatif file sertifikat CA instans KMS.

    Sertifikat CA instans KMS digunakan untuk memeriksa validitas sertifikat SSL instans KMS. Misalnya, memeriksa apakah sertifikat SSL dikeluarkan oleh CA yang sesuai, masih dalam masa berlaku, dan sesuai dengan nama domain instans KMS (endpoint).

    Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #secretName# dengan nama kredensial Anda.

    package main
    
    import (
        "fmt"
        "github.com/aliyun/aliyun-secretsmanager-client-go/sdk"
    )
    func main() { 
       // Bangun klien kredensial.
        client, err := sdk.NewClient()
        if err != nil {
            // Tangani pengecualian
            panic(err)
        }
       // Gunakan klien yang telah dibuat untuk mendapatkan informasi kredensial.
        secretInfo, err := client.GetSecretInfo("#secretName#")
        if err != nil {
            // Tangani pengecualian
            panic(err)
        }
        fmt.Printf("SecretValue:%s\n",secretInfo.SecretValue)
    }
  • Inisialisasi klien dengan menentukan parameter (accessKey, accessSecret, regionId)

    Metode ini hanya berlaku untuk skenario di mana AccessKey digunakan untuk autentikasi.

    Catatan

    Pasangan AccessKey Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan pasangan AccessKey untuk melakukan operasi merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan O&M rutin. Jangan menyimpan ID AccessKey dan Rahasia AccessKey di kode proyek Anda karena dapat menyebabkan kebocoran kredensial dan mengompromikan keamanan seluruh resource akun Anda.

    Dalam contoh ini, pasangan AccessKey disimpan dalam variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET untuk mengimplementasikan autentikasi identitas.

    Kode contoh berikut menunjukkan cara mengambil nilai kredensial. Ganti #regionId# dengan ID wilayah aktual dan #secretName# dengan nama kredensial Anda.

    package main
    
    import (
    	"github.com/aliyun/aliyun-secretsmanager-client-go/sdk/service"
    	"github.com/aliyun/aliyun-secretsmanager-client-go/sdk"
    	"os"
    )
    
    func main() {
    	client, err := sdk.NewSecretCacheClientBuilder(service.NewDefaultSecretManagerClientBuilder().Standard().WithAccessKey(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).WithRegion("#regionId#").Build()).Build()
    	if err != nil {
    		// Tangani pengecualian
    		panic(err)
    	}
    	secretInfo, err := client.GetSecretInfo("#secretName#")
    	if err != nil {
    		// Tangani pengecualian
    		panic(err)
    	}
    }