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.
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>
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>
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 | |
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: | 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 | |
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: | 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 | |
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: | 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 | |
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: | 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 | |
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: | 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 | |
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: | 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 | |
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: | 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)
}
}