全部产品
Search
文档中心

Key Management Service:Contoh kode untuk mendapatkan nilai rahasia

更新时间:Jul 06, 2025

Anda dapat mengambil nilai rahasia menggunakan Alibaba Cloud SDK melalui gateway bersama atau gateway khusus. Dokumen ini menjelaskan cara melakukannya.

OpenAPI Terkait

GetSecretValue: Mengambil nilai rahasia.

Perbedaan konfigurasi antara gateway bersama dan gateway khusus

Satu-satunya perbedaan antara penggunaan gateway bersama dan gateway khusus terletak pada konfigurasi saat inisialisasi klien:

Parameter

Gateway bersama

Gateway khusus

endpoint

Titik akhir gateway bersama harus dikonfigurasi dengan salah satu format berikut:

  • Nama domain jaringan publik: kms.<REGION_ID>.aliyuncs.com.

  • Nama domain VPC: kms-vpc.<REGION_ID>.aliyuncs.com.

Titik akhir gateway khusus harus dikonfigurasi sesuai format: <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com.

ca

Tidak diperlukan.

  • Alibaba Cloud SDK V2.0: Memerlukan pengaturan Sertifikat CA.

  • Alibaba Cloud SDK V1.0: Tidak mendukung sertifikat. Sebagai gantinya, parameter runtime HTTPSInsecure harus diatur ke true: client.SetHTTPSInsecure(true).

Mendapatkan nilai rahasia melalui gateway bersama

Contoh lengkap

package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     *  :
     * <p>Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.</p>
     * @return Client
     * 
     * @throws Exception
     */
    public static com.aliyun.kms20160120.Client createClient() throws Exception {
        // Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan sumber daya di akun Anda menjadi tidak aman. Kode berikut hanya untuk referensi.
        // Kami menyarankan Anda menggunakan Token Layanan Keamanan (STS), yang memberikan keamanan lebih tinggi. Untuk informasi lebih lanjut tentang metode otentikasi, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi dalam lingkungan runtime kode.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi dalam lingkungan runtime kode.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Untuk informasi lebih lanjut tentang titik akhir, lihat https://api.alibabacloud.com/product/Kms.
        config.endpoint = "kms.ap-southeast-1.aliyuncs.com";
        return new com.aliyun.kms20160120.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.kms20160120.Client client = Sample.createClient();
        com.aliyun.kms20160120.models.GetSecretValueRequest getSecretValueRequest = new com.aliyun.kms20160120.models.GetSecretValueRequest()
                .setSecretName("test****");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // Jika Anda menyalin dan menjalankan kode contoh, tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
            client.getSecretValueWithOptions(getSecretValueRequest, runtime);
        } catch (TeaException error) {
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }
}

Analisis contoh

Inisialisasi klien

    public static com.aliyun.kms20160120.Client createClient() throws Exception {
        // Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan sumber daya di akun Anda menjadi tidak aman. Kode berikut hanya untuk referensi.
        // Kami menyarankan Anda menggunakan token Layanan Keamanan (STS), yang memberikan keamanan lebih tinggi. Untuk informasi lebih lanjut tentang metode autentikasi, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi dalam lingkungan runtime kode.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi dalam lingkungan runtime kode.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Untuk informasi lebih lanjut tentang titik akhir, lihat https://api.alibabacloud.com/product/Kms.
        config.endpoint = "kms.ap-southeast-1.aliyuncs.com";
        return new com.aliyun.kms20160120.Client(config);
    }

Panggil operasi GetSecretValue untuk mendapatkan nilai rahasia

Nilai SecretName yang diberikan dalam contoh ini hanya untuk referensi Anda. Gantilah dengan nilai sebenarnya sesuai kebutuhan bisnis Anda.

      public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.kms20160120.Client client = Sample.createClient();
        com.aliyun.kms20160120.models.GetSecretValueRequest getSecretValueRequest = new com.aliyun.kms20160120.models.GetSecretValueRequest()
                .setSecretName("test****");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // Jika Anda menyalin dan menjalankan kode contoh, tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
            client.getSecretValueWithOptions(getSecretValueRequest, runtime);
        } catch (TeaException error) {
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }

Memperoleh nilai rahasia melalui gateway khusus

Contoh lengkap

package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     *  :
     * <p>Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.</p>
     * @return Client
     * 
     * @throws Exception
     */
    public static com.aliyun.kms20160120.Client createClient() throws Exception {
        // Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan sumber daya di akun Anda menjadi tidak aman. Kode berikut hanya untuk referensi.
        // Kami menyarankan Anda menggunakan Token Layanan Keamanan (STS), yang memberikan keamanan lebih tinggi. Untuk informasi lebih lanjut tentang metode autentikasi, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi dalam lingkungan waktu proses kode.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi dalam lingkungan waktu proses kode.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Titik akhir gateway khusus 
        config.endpoint = "kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com";
        // Sertifikat CA instance KMS
        config.ca = "-----BEGIN CERTIFICATE-----MIIDuzCCAqOgAwIBAgIJALTKwWAjvbMiMA0GCS****";
        return new com.aliyun.kms20160120.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.kms20160120.Client client = Sample.createClient();
        com.aliyun.kms20160120.models.GetSecretValueRequest getSecretValueRequest = new com.aliyun.kms20160120.models.GetSecretValueRequest()
                .setSecretName("test****");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // Jika Anda menyalin dan menjalankan kode contoh, tulis kode Anda sendiri untuk menampilkan respons dari Operasi API jika diperlukan.
            client.getSecretValueWithOptions(getSecretValueRequest, runtime);
        } catch (TeaException error) {
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }
}

Analisis contoh

Inisialisasi klien

    public static com.aliyun.kms20160120.Client createClient() throws Exception {
        // Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan sumber daya di akun Anda menjadi tidak aman. Kode berikut hanya untuk referensi.
        // Kami menyarankan Anda menggunakan token Layanan Keamanan (STS), yang memberikan keamanan lebih tinggi. Untuk informasi lebih lanjut tentang metode autentikasi, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials.
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi dalam lingkungan runtime kode.
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                // Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi dalam lingkungan runtime kode.
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // Titik akhir gateway spesifikasi khusus 
        config.endpoint = "kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com";
        // Sertifikat CA instance KMS
        config.ca = "-----BEGIN CERTIFICATE-----MIIDuzCCAqOgAwIBAgIJALTKwWAjvbMiMA0GCS****";
        return new com.aliyun.kms20160120.Client(config);
    }

Panggil operasi GetSecretValue untuk mendapatkan nilai rahasia

Nilai SecretName yang diberikan dalam contoh ini hanya untuk referensi Anda. Gantilah dengan nilai sebenarnya sesuai kebutuhan bisnis Anda.

      public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.kms20160120.Client client = Sample.createClient();
        com.aliyun.kms20160120.models.GetSecretValueRequest getSecretValueRequest = new com.aliyun.kms20160120.models.GetSecretValueRequest()
                .setSecretName("test****");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
            // Jika Anda menyalin dan menjalankan kode contoh, tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika diperlukan.
            client.getSecretValueWithOptions(getSecretValueRequest, runtime);
        } catch (TeaException error) {
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        } catch (Exception _error) {
            TeaException error = new TeaException(_error.getMessage(), _error);
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi.
            // Cetak pesan kesalahan
            System.out.println(error.getMessage());
            // Berikan URL yang digunakan untuk pemecahan masalah.
            System.out.println(error.getData().get("Recommend"));
            com.aliyun.teautil.Common.assertAsString(error.message);
        }        
    }