All Products
Search
Document Center

Key Management Service:RAM secret plug-in

Last Updated:Mar 31, 2026

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.

Penting

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

Alibaba Cloud SDK for Java (V2.0)

aliyun-java-tea-openapi-sdk-managed-credentials-provider

Alibaba Cloud SDK for Java (V1.0)

aliyun-java-sdk-managed-credentials-provider

OSS SDK for Java V1

aliyun-oss-java-sdk-managed-credentials-provider

Message Queue for Apache RocketMQ TCP SDK for Java

ons-client-managed-credentials-provider

SDK untuk Python

Nama SDK

Nama modul plug-in

Deskripsi

Alibaba Cloud SDK for Python (V1.0)

aliyun-openapi-python-sdk-managed-credentials-provider

Hanya V1.0 yang didukung. Untuk V2.0, gunakan secrets client atau Alibaba Cloud SDK.

OSS Python SDK

aliyun-oss-python-sdk-managed-credentials-provider

Tidak ada.

SDK untuk Go

Penting

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

Alibaba Cloud SDK for Go (V1.0)

alibaba-cloud-sdk-go-managed-credentials-provider

Hanya V1.0 yang didukung. Untuk V2.0, gunakan secrets client atau Alibaba Cloud SDK.

OSS Go SDK

aliyun-oss-go-sdk-managed-credentials-provider

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.

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

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

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

  3. Masuk ke Konsol Manajemen ECS dan berikan peran RAM ke instans ECS.image

ClientKey

Untuk membuat ClientKey guna mengakses gateway bersama, ikuti metode pembuatan standar yang dijelaskan dalam Create an application access point.

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

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

    2. Di tab Application Access, klik Create AAP. Di panel Create AAP, konfigurasikan parameter 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/* dan secret/*, yang tidak dapat diubah. Artinya, aplikasi dapat mengakses semua kunci dan rahasia dalam instans KMS yang ditentukan.

    3. 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 bernama clientKey_****_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.

    Penting

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

Catatan

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 {instance ID}.kms.aliyuncs.com.

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

clientKeyFile

Jalur 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 adalah ClientKey_******.json.

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

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

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

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

Ignore SSL certificates

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

  • true: Mengabaikan pemeriksaan validitas.

    Catatan

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

  • false: Melakukan pemeriksaan validitas.

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

caFilePath

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+

Plug-in ini bergantung pada CGLIB untuk proxy kelas dinamis. Saat menjalankan program Anda dengan Java 9 atau versi lebih baru, Anda mungkin mengalami kesalahan java.lang.reflect.InaccessibleObjectException.

Untuk mengatasinya, tambahkan parameter JVM berikut saat startup aplikasi agar CGLIB dapat mengakses API yang dibatasi:

--add-opens java.base/java.lang=ALL-UNNAMED

Sebagai contoh, jika Anda menjalankan program dari command line:

java --add-opens java.base/java.lang=ALL-UNNAMED -jar your-application.jar

Jika Anda menjalankan program di IDE seperti IntelliJ IDEA atau Eclipse, tambahkan parameter ini ke opsi VM.

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

    Kami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.

  2. Dapatkan klien Alibaba Cloud SDK for Java dan panggil layanan cloud. Contoh berikut menunjukkan cara memanggil operasi ECS DescribeInstances.

    1. Tambahkan dependensi ecs20140526.

      <dependency>
          <groupId>com.aliyun</groupId>
          <artifactId>ecs20140526</artifactId>
          <version>7.1.0</version>
      </dependency>
    2. 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)

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

    Kami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.

  2. Dapatkan klien Alibaba Cloud SDK for Java dan panggil layanan cloud. Contoh berikut menunjukkan cara memanggil operasi ECS DescribeInstanceStatus.

    Ambil contoh pemanggilan ECS DescribeInstanceStatus.

    1. Tambahkan dependensi aliyun-java-sdk-ecs.

      <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-ecs</artifactId>
        <version>5.11.20</version>
      </dependency>
    2. 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

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

    Kami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.

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

  1. Jalankan perintah pip untuk menginstal RAM secret plug-in untuk proyek Anda.

    pip install aliyun-openapi-python-sdk-managed-credentials-provider
    Catatan

    Pastikan versi plug-in adalah 0.1.0 atau lebih baru. Untuk informasi lebih lanjut, lihat kode sumber.

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

  1. Jalankan perintah pip untuk menginstal RAM secret plug-in untuk proyek Anda.

    pip install aliyun-oss-python-sdk-managed-credentials-provider
    Catatan

    Pastikan versi plug-in adalah 0.1.0 atau lebih baru. Untuk informasi lebih lanjut, lihat kode sumber.

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

  1. Instal RAM secret plug-in untuk Alibaba Cloud SDK for Go.

    Penting
    • Kami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.

    • RAM secret plug-in Go memerlukan versi alibaba-cloud-sdk-go kurang dari v1.63.0. Periksa dan konfirmasi versi dalam file go.mod plug-in untuk menghindari potensi masalah kompatibilitas.

    • Metode 1: Gunakan go.mod untuk mengelola dependensi Anda.

      Tambahkan konten berikut ke file go.mod untuk 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 get untuk 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
  2. 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

  1. Instal RAM secret plug-in untuk OSS SDK for Go.

    Penting
    • Kami menyarankan Anda menginstal versi terbaru plug-in. Untuk informasi lebih lanjut, lihat kode sumber.

    • RAM secret plug-in Go memerlukan versi alibaba-cloud-sdk-go kurang dari v1.63.0. Periksa dan konfirmasi versi dalam file go.mod plug-in untuk menghindari potensi masalah kompatibilitas.

    • Metode 1: Gunakan go.mod untuk mengelola dependensi Anda.

      Tambahkan konten berikut ke file go.mod untuk 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 get untuk 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
  2. 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

    1. Tunggu penyegaran otomatis: Untuk rahasia yang diputar secara otomatis, mekanisme penyegaran terjadwal plug-in (yang berjalan setiap 6 jam) mengambil rahasia baru.

    2. Penyegaran sesuai permintaan: Jika kredensial menjadi tidak valid, tangkap pengecualian tersebut dan panggil metode sdk.RefreshSecretInfo(secretName) untuk memperbarui rahasia RAM secara manual.

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

    4. Sesuaikan jendela rotasi: Untuk rahasia RAM yang diputar secara manual, gunakan jendela rotasi minimal 12 jam.