Setelah menggunakan Key Management Service (KMS) untuk mengelola AccessKey Pengguna RAM, Anda dapat menginstal RAM secret plug-in. Saat menggunakan Alibaba Cloud SDK, cukup referensikan nama rahasia RAM untuk mengambil AccessKey guna autentikasi API—tanpa perlu mengelola detail AccessKey atau menangani rotasi rahasia secara manual. Topik ini menjelaskan cara kerja RAM secret plug-in serta cara menginstal dan menggunakannya.
Cara kerja
RAM secret plug-in mengambil nilai rahasia RAM dari KMS berdasarkan nama rahasia tersebut dan menyimpannya dalam cache di memori aplikasi Anda. Saat aplikasi menggunakan Alibaba Cloud SDK, permintaan dikirim ke layanan Alibaba Cloud menggunakan AccessKey dari cache lokal plug-in.
Jika AccessKey yang di-cache menjadi tidak valid—misalnya karena rotasi rahasia—RAM secret plug-in segera mengambil rahasia terbaru dari KMS dan memperbarui cache lokal. Berdasarkan perilaku pengulangan (retry) yang Anda konfigurasikan, plug-in mencoba kembali panggilan layanan menggunakan rahasia RAM yang baru. Secara default, plug-in mengidentifikasi AccessKey yang tidak valid berdasarkan kode kesalahan InvalidAccessKeyId dan InvalidAccessKeyId.NotFound dalam respons API.
Alibaba Cloud SDK yang didukung
KMS menyediakan RAM secret plug-in untuk Alibaba Cloud SDK yang tercantum dalam tabel berikut.
RAM secret plug-in dikembangkan untuk Alibaba Cloud SDK tertentu. Jika plug-in tidak memenuhi kebutuhan Anda, gunakan secrets client atau Alibaba Cloud SDK standar. Untuk informasi lebih lanjut tentang setiap SDK, lihat SDK Reference. Anda juga dapat menghubungi dukungan teknis dengan kebutuhan Anda.
SDK untuk Java (Java 8 dan versi lebih baru saja)
Nama SDK | Nama modul plug-in |
SDK untuk Python
Nama SDK | Nama modul plug-in | Deskripsi |
Hanya V1.0 yang didukung. Untuk V2.0, gunakan secrets client atau Alibaba Cloud SDK. | ||
Tidak ada. |
SDK untuk Go
Plug-in rahasia Go tidak secara otomatis melakukan pengulangan saat menghadapi kesalahan InvalidAccessKeyId. Rahasia yang diputar secara otomatis diperbarui oleh mekanisme penyegaran terjadwal, yang berjalan setiap 6 jam. Jika Anda memutar rahasia secara manual, atur jendela rotasi minimal 12 jam untuk mencegah gangguan tugas akibat kredensial yang kedaluwarsa. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika RAM secret plug-in Go mengembalikan kesalahan InvalidAccessKeyId setelah kredensial kedaluwarsa?.
Nama SDK | Nama modul plug-in | Deskripsi |
Hanya V1.0 yang didukung. Untuk V2.0, gunakan secrets client atau Alibaba Cloud SDK. | ||
Tidak ada. |
Langkah 1: Buat kredensial akses
Skenario 1: Akses melalui gateway bersama
Skenario ini berlaku saat menggunakan titik akhir publik atau titik akhir VPC. Kredensial akses yang didukung mencakup peran RAM instans ECS dan ClientKey.
Peran RAM instans ECS
Peran RAM ECS diberikan kepada instans ECS, dengan Elastic Compute Service sebagai layanan tepercayanya. Peran ini memungkinkan Anda memperoleh kredensial keamanan sementara (token STS) dari dalam instans ECS untuk memanggil API KMS tanpa perlu mengonfigurasi AccessKey.
Untuk informasi lebih lanjut, lihat Instance RAM roles.
Masuk ke Konsol RAM dan buat peran RAM yang entitas tepercayanya adalah layanan Alibaba Cloud.
Jenis Entitas Tepercaya: Pilih Elastic Compute Service.
Tetapkan Principal ke Elastic Compute Service (ECS).
Berikan izin peran RAM untuk mengakses KMS.
Metode 1: Konfigurasikan kebijakan berbasis identitas
Key Management Service (KMS) menyediakan kebijakan izin sistem bawaan. Anda dapat langsung melampirkan kebijakan ini ke peran RAM. Untuk informasi lebih lanjut, lihat System permission policies for Key Management Service. Anda juga dapat membuat kebijakan izin kustom.

Metode 2: Konfigurasikan kebijakan berbasis resource
KMS mendukung kebijakan berbasis resource untuk mengatur izin akses pada kunci dan kredensial individual. Kebijakan ini mengontrol akun Alibaba Cloud, pengguna RAM, dan peran RAM mana yang dapat mengelola atau menggunakan kunci dan kredensial KMS. Untuk informasi lebih lanjut, lihat Key policies dan Secret policies.
Masuk ke Konsol Manajemen ECS dan berikan peran RAM ke instans ECS.

ClientKey
Untuk membuat ClientKey guna mengakses gateway bersama, ikuti metode pembuatan standar yang dijelaskan dalam Create an application access point.
Saat mengonfigurasi aturan jaringan, atur Jenis Jaringan ke Public atau VPC.
Saat mengonfigurasi cakupan aturan izin, pilih Shared KMS Gateway.
Skenario 2: Gateway khusus (Tidak direkomendasikan)
Skenario ini berlaku saat menggunakan jaringan pribadi untuk KMS. Hanya ClientKey yang didukung sebagai kredensial akses.
Anda dapat membuat ClientKey dengan dua cara: pembuatan cepat dan pembuatan standar. Untuk informasi lebih lanjut tentang ClientKey, lihat Overview of application access points dan Create an application access point.
Metode 1: Pembuatan cepat
Metode ini cepat dan efisien, sehingga ideal untuk pengujian dan pengembangan cepat. Kredensial akses yang dibuat memberikan akses ke semua resource dalam instans KMS.
Masuk ke Konsol Key Management Service. Di bilah navigasi atas, pilih wilayah. Di panel navigasi kiri, pilih .
Di tab Application Access, klik Create AAP. Di panel Create AAP, konfigurasikan parameter berikut.
Parameter
Deskripsi
Mode
Pilih Quick Creation.
Scope (KMS Instance)
Pilih instans KMS yang perlu diakses oleh aplikasi Anda.
Application Access Point Name
Masukkan nama kustom untuk titik akses aplikasi.
Authentication Method
Nilai default adalah ClientKey dan tidak dapat diubah.
Default Permission Policy
Nilai default adalah
key/*dansecret/*, yang tidak dapat diubah. Artinya, aplikasi dapat mengakses semua kunci dan rahasia dalam instans KMS yang ditentukan.Klik OK. Browser Anda secara otomatis mengunduh ClientKey.
ClientKey terdiri dari Credential (ClientKeyContent) dan Password (ClientKeyPassword). Secara default, Credential (ClientKeyContent) disimpan ke file bernama
clientKey_****.json, dan Password (ClientKeyPassword) disimpan ke file bernamaclientKey_****_Password.txt.
Metode 2: Pembuatan standar
Jika Anda ingin mengonfigurasi izin akses detail halus untuk resource, gunakan pembuatan standar. Untuk informasi lebih lanjut, lihat Create an application access point.
PentingJika Anda menggunakan pembuatan standar untuk titik akses aplikasi, perhatikan hal berikut:
Saat mengonfigurasi aturan jaringan, atur Jenis Jaringan ke Private.
Saat mengonfigurasi cakupan aturan izin, pilih ID instans KMS yang sesuai.
Langkah 2: Konfigurasikan parameter waktu proses
RAM secret plug-in menetapkan parameter waktu proses menggunakan file konfigurasi. Buat file konfigurasi bernama managed_credentials_providers.properties di direktori waktu proses aplikasi Anda dan tambahkan konten berdasarkan metode autentikasi.
Jika aplikasi Anda tidak dapat membaca file managed_credentials_providers.properties secara otomatis, lihat contoh kode untuk mempelajari cara menentukan jalur file dalam kode Anda.
Peran RAM instans ECS
Gunakan konten berikut untuk file konfigurasi.
credentials_type=ecs_ram_role
## Nama peran RAM ECS.
credentials_role_name=#credentials_role_name#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]ClientKey (gateway bersama)
Untuk mengambil nilai rahasia melalui titik akhir gateway bersama KMS, gunakan konten berikut untuk file konfigurasi.
## Jenis kredensial akses.
credentials_type=client_key
## Kata sandi untuk ClientKey. Anda dapat membacanya dari variabel lingkungan atau file.
## Ini adalah ClientKeyPassword yang Anda simpan saat membuat ClientKey di titik akses aplikasi (AAP).
client_key_password_from_env_variable=#your_client_key_private_key_password_environment_variable_name#
client_key_password_from_file_path=#your_client_key_private_key_password_file_path#
# Jalur ke file ClientKey.
# File ClientKey berisi ClientKeyContent yang Anda unduh saat membuat ClientKey di AAP.
# Nama file default adalah ClientKey_******.json.
client_key_private_key_path=#your_client_key_private_key_file_path#
## Wilayah layanan KMS terkait.
cache_client_region_id=[{"regionId":"#regionId#"}]ClientKey (gateway khusus)
Untuk mengambil nilai rahasia melalui titik akhir gateway khusus KMS, gunakan konten berikut untuk 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 dan pemulihan bencana yang lebih tinggi.
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 yang diunduh untuk Credential Password (ClientKeyPassword) ClientKey diberi nama
clientKey_****_Password.txt. Jika Anda mengubah nama file, Anda harus mengganti<your Client Key file path>dalam nilai cache_client_dkms_config_info dengan jalur 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"}]
Penjelasan setiap item konfigurasi:
Item Konfigurasi | Deskripsi parameter | Deskripsi |
Region ID | ID wilayah tempat instans KMS berada. | Untuk daftar ID wilayah spesifik, lihat Regions and zones. |
Endpoint | Nama domain instans KMS. Formatnya adalah | Buka halaman Instances. Di halaman detail instans, Instance VPC Endpoint adalah endpoint-nya. |
clientKeyFile | Jalur absolut atau relatif file ClientKey dalam format JSON. |
Penting File ClientKey dan kata sandi kredensial memiliki korespondensi satu-ke-satu. Anda hanya dapat memperolehnya saat membuat ClientKey. Jika Anda tidak menyimpannya saat pembuatan, Anda harus membuat ClientKey baru di AAP. Untuk informasi lebih lanjut, lihat Create an application access point. |
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 | Jalur 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 periode validitas, dan sesuai dengan nama domain instans KMS (endpoint). | Buka halaman Instances. Di halaman detail instans, klik Download di bagian Instance CA Certificate. |
Langkah 3: Gunakan RAM secret plug-in
Java
Alibaba Cloud SDK for Java (V2.0)
Kompatibilitas Java 9+
Tambahkan RAM secret plug-in ke proyek Anda sebagai dependensi Maven.
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-tea-openapi-sdk-managed-credentials-provider</artifactId> <version>[1.3.5,]</version> </dependency>CatatanKami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.
Dapatkan klien Alibaba Cloud SDK for Java dan panggil layanan cloud. Contoh berikut menunjukkan cara memanggil operasi ECS DescribeInstances.
Tambahkan dependensi ecs20140526.
<dependency> <groupId>com.aliyun</groupId> <artifactId>ecs20140526</artifactId> <version>7.1.0</version> </dependency>Panggil operasi DescribeInstances.
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.DescribeInstancesResponse; import com.aliyun.kms.secretsmanager.plugin.tea.openapi.ProxyClientCreator; import com.google.gson.Gson; public class AliyunTeaOpenApiProviderSample { public static void main(String[] args) throws Exception { // Langkah 1: Tentukan nama rahasia terkelola (nama rahasia yang Anda buat di KMS). String secretName = "your-secret-name"; /* Jika aplikasi tidak dapat membaca file konfigurasi default (managed_credentials_providers.properties) dari classpath atau file JAR yang dapat dieksekusi, atau jika Anda perlu menggunakan nama file kustom, Anda dapat memanggil kode berikut. File dibaca dengan urutan berikut: 1. Jika "your-config-name" adalah jalur absolut, file di jalur tersebut akan dibaca. 2. Jika "your-config-name" hanya berupa nama file, file pertama kali dibaca dari classpath, lalu dari file JAR yang dapat dieksekusi. */ //ConfigLoader.setConfigName("your-config-name"); // Langkah 2: Konfigurasikan klien OpenAPI. com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config(); config.endpoint = "your-product-endpoint"; // Ganti dengan endpoint layanan aktual. // Langkah 3: Buat instance klien. Client client = ProxyClientCreator.createClient(config, Client.class, secretName); // Langkah 4: Panggil API layanan cloud. com.aliyun.ecs20140526.models.DescribeInstancesRequest request = new com.aliyun.ecs20140526.models.DescribeInstancesRequest(); request.setRegionId("cn-hangzhou"); // Atur ID wilayah. DescribeInstancesResponse response = client.describeInstances(request); // Langkah 5: Cetak hasilnya. System.out.println(new Gson().toJson(response.getBody())); } }
Alibaba Cloud SDK for Java (V1.0)
Tambahkan RAM secret plug-in ke proyek Anda sebagai dependensi Maven.
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>[4.3.2,5.0.0]</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core-managed-credentials-provider</artifactId> <version>[1.3.1,]</version> </dependency>CatatanKami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.
Dapatkan klien Alibaba Cloud SDK for Java dan panggil layanan cloud. Contoh berikut menunjukkan cara memanggil operasi ECS
DescribeInstanceStatus.Ambil contoh pemanggilan ECS DescribeInstanceStatus.
Tambahkan dependensi aliyun-java-sdk-ecs.
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-ecs</artifactId> <version>5.11.20</version> </dependency>Panggil operasi
DescribeInstanceStatus.import com.aliyuncs.IAcsClient; import com.aliyuncs.ecs.model.v20140526.DescribeInstanceStatusRequest; import com.aliyuncs.ecs.model.v20140526.DescribeInstanceStatusResponse; import com.aliyun.kms.secretsmanager.plugin.sdkcore.ProxyAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; public class AliyunSdkProviderSample { public static void main(String[]args) { String secretName="******"; /* Jika aplikasi tidak dapat membaca file konfigurasi default (managed_credentials_providers.properties) dari classpath atau file JAR yang dapat dieksekusi, atau jika Anda perlu menggunakan nama file kustom, Anda dapat memanggil kode berikut. File dibaca dengan urutan berikut: 1. Jika "your-config-name" adalah jalur absolut, file di jalur tersebut akan dibaca. 2. Jika "your-config-name" hanya berupa nama file, file pertama kali dibaca dari classpath, lalu dari file JAR yang dapat dieksekusi. */ //ConfigLoader.setConfigName("your-config-name"); // 1. Dapatkan ACSClient menggunakan aliyun-java-sdk-managed-credentials-provider. IAcsClient client = null; try { client = new ProxyAcsClient("<the regionId of ECS>", secretName); } catch (ClientException e) { e.printStackTrace(); } // 2. Panggil API ECS untuk menjalankan operasi Anda. DescribeInstanceStatusRequest request = new DescribeInstanceStatusRequest(); DescribeInstanceStatusResponse response; try { response = client.getAcsResponse(request); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } // 3. Matikan klien untuk melepaskan resource yang terkait dengan plug-in. client.shutdown(); } }
Penggunaan OSS SDK
Tambahkan RAM secret plug-in ke proyek Anda sebagai dependensi Maven.
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.17</version> </dependency> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>[2.1.0,3.10.2]</version> <exclusions> <exclusion> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-kms</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-sdk-oss-managed-credentials-provider</artifactId> <version>[1.3.1,]</version> </dependency>CatatanKami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.
Dapatkan klien OSS SDK for Java dan panggil layanan cloud. Contoh berikut menunjukkan cara memanggil operasi OSS
listBuckets:import com.aliyun.kms.secretsmanager.plugin.oss.ProxyOSSClientBuilder; import com.aliyun.oss.OSS; import com.aliyun.oss.model.Bucket; import java.util.List; public class OssProviderSample { public static void main(String[] args) throws Exception { String secretName = "******"; String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; /* Jika aplikasi tidak dapat membaca file konfigurasi default (managed_credentials_providers.properties) dari classpath atau file JAR yang dapat dieksekusi, atau jika Anda perlu menggunakan nama file kustom, Anda dapat memanggil kode berikut. File dibaca dengan urutan berikut: 1. Jika "your-config-name" adalah jalur absolut, file di jalur tersebut akan dibaca. 2. Jika "your-config-name" hanya berupa nama file, file pertama kali dibaca dari classpath, lalu dari file JAR yang dapat dieksekusi. */ //ConfigLoader.setConfigName("your-config-name"); // Dapatkan Klien OSS. OSS ossClient = new ProxyOSSClientBuilder().build(endpoint, secretName); // Logika bisnis Anda: Panggil layanan Alibaba Cloud OSS untuk menjalankan operasi Anda. List<Bucket> buckets = ossClient.listBuckets(); for (Bucket bucket : buckets) { if (bucket != null) { // ... } } // Matikan klien untuk melepaskan resource yang terkait dengan plug-in. ossClient.shutdown(); } }
Python
Alibaba Cloud SDK for Python (V1.0)
Jalankan perintah
pipuntuk menginstal RAM secret plug-in untuk proyek Anda.pip install aliyun-openapi-python-sdk-managed-credentials-providerCatatanPastikan versi plug-in adalah 0.1.0 atau lebih baru. Untuk informasi lebih lanjut, lihat kode sumber.
Dapatkan klien Alibaba Cloud SDK for Python dan panggil layanan cloud.
from aliyun_sdk_secretsmanager_sdk_core_plugin.proxy_acs_client import ProxyAcsClient region="cn-hangzhou" secretName="******" # 1. Dapatkan ACSClient. client = ProxyAcsClient(region_id=region, secret_name=secretName ) # 2. Logika bisnis Anda: Gunakan klien untuk memanggil layanan Alibaba Cloud. Tidak diperlukan perubahan kode lainnya. ... # 3. Matikan klien untuk melepaskan resource yang terkait dengan plug-in. client.shutdown()
OSS Python SDK
Jalankan perintah
pipuntuk menginstal RAM secret plug-in untuk proyek Anda.pip install aliyun-oss-python-sdk-managed-credentials-providerCatatanPastikan versi plug-in adalah 0.1.0 atau lebih baru. Untuk informasi lebih lanjut, lihat kode sumber.
Dapatkan klien Alibaba Cloud OSS SDK for Python dan panggil layanan cloud.
from aliyun_sdk_secretsmanager_oss_plugin.proxy_bucket import ProxyBucket from itertools import islice endpoint = "******" secret_name ="******" bucket_name = "******" bucket = ProxyBucket(secret_name=secret_name, endpoint=endpoint, bucket_name=bucket_name) objects = bucket.list_objects() for b in islice(objects.object_list, 10): print(b.key) bucket.shutdown()
Go
Alibaba Cloud SDK for Go (V1.0)
Instal RAM secret plug-in untuk Alibaba Cloud SDK for Go.
PentingKami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.
RAM secret plug-in Go memerlukan versi
alibaba-cloud-sdk-gokurang dari v1.63.0. Periksa dan konfirmasi versi dalam filego.modplug-in untuk menghindari potensi masalah kompatibilitas.
Metode 1: Gunakan
go.moduntuk mengelola dependensi Anda.Tambahkan konten berikut ke file
go.moduntuk menginstal dependensi.require ( github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/alibaba-cloud-sdk-go-managed-credentials-provider vX.X.X )Metode 2: Gunakan perintah
go getuntuk mengambil paket jarak jauh.go get -u github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/alibaba-cloud-sdk-go-managed-credentials-provider
Dapatkan klien untuk Alibaba Cloud SDK for Go dan panggil layanan cloud.
Contoh berikut menunjukkan cara memanggil operasi ECS
DescribeInstances:package sample import ( "fmt" "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs" sdkcoreprovider "github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/alibaba-cloud-sdk-go-managed-credentials-provider/sdk" ) func main() { secretName := "********" regionId := "cn-hangzhou" client, err := sdkcoreprovider.GetClient(&ecs.Client{}, regionId, secretName) if err != nil { fmt.Println(err) return } ecsClient := client.(*ecs.Client) request := ecs.CreateDescribeInstancesRequest() instancesResponse, err := ecsClient.DescribeInstances(request) if err != nil { fmt.Println(err) return } for _, instance := range instancesResponse.Instances.Instance { // lakukan sesuatu dengan instance } }
OSS Go SDK
Instal RAM secret plug-in untuk OSS SDK for Go.
PentingKami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.
RAM secret plug-in Go memerlukan versi
alibaba-cloud-sdk-gokurang dari v1.63.0. Periksa dan konfirmasi versi dalam filego.modplug-in untuk menghindari potensi masalah kompatibilitas.
Metode 1: Gunakan
go.moduntuk mengelola dependensi Anda.Tambahkan konten berikut ke file
go.moduntuk menginstal paket dependensi.require ( github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/aliyun-oss-go-sdk-managed-credentials-provider vX.X.X )Metode 2: Gunakan perintah
go getuntuk mendapatkan paket kode jarak jauh.go get -u github.com/aliyun/aliyun-sdk-managed-credentials-providers-go/aliyun-sdk-managed-credentials-providers/aliyun-oss-go-sdk-managed-credentials-provider
Dapatkan klien untuk Alibaba Cloud OSS SDK for Go dan panggil layanan cloud.
package sample import ( "fmt" ossprovider "aliyun-oss-go-sdk-managed-credentials-provider/sdk" ) func main() { secretName := "********" endpoint := "https://oss-cn-hangzhou.aliyuncs.com" // Dapatkan Proxy OSS Client. client, err := ossprovider.New(endpoint, secretName) if err != nil { fmt.Println(err) return } result, err := client.ListBuckets() if err != nil { fmt.Println(err) return } for _, bucket := range result.Buckets { // Tempatkan logika bisnis Anda di sini. } // Matikan klien untuk melepaskan resource yang terkait dengan plug-in. client.Shutdown() }
FAQ
Apa yang harus saya lakukan jika RAM secret plug-in Go mengembalikan kesalahan InvalidAccessKeyId setelah kredensial kedaluwarsa?
Penyebab
Plug-in kredensial Go tidak secara otomatis melakukan pengulangan saat menghadapi kesalahan
InvalidAccessKeyId.Jika Anda memutar rahasia secara manual dengan jendela rotasi pendek (misalnya, 10 menit), AccessKey klien mungkin kedaluwarsa sebelum cache lokal sempat diperbarui.
Solusi
Tunggu penyegaran otomatis: Untuk rahasia yang diputar secara otomatis, mekanisme penyegaran terjadwal plug-in (yang berjalan setiap 6 jam) mengambil rahasia baru.
Penyegaran sesuai permintaan: Jika kredensial menjadi tidak valid, tangkap pengecualian tersebut dan panggil metode
sdk.RefreshSecretInfo(secretName)untuk memperbarui rahasia RAM secara manual.Penyegaran terjadwal: Siapkan tugas terjadwal untuk memperbarui rahasia RAM dengan memanggil
sdk.RefreshSecretInfo(secretName)dengan frekuensi kustom. Hal ini memastikan Anda memperoleh rahasia baru sebelum yang saat ini kedaluwarsa.Sesuaikan jendela rotasi: Untuk rahasia RAM yang diputar secara manual, gunakan jendela rotasi minimal 12 jam.