全部产品
Search
文档中心

Key Management Service:Contoh kode untuk mengambil nilai rahasia

更新时间:Jul 02, 2025

Setelah menginisialisasi klien SDK instans KMS, Anda dapat memanggil API GetSecretValue untuk mengambil nilai rahasia. Topik ini menyediakan contoh kode terkait.

Contoh lengkap

package main

import (
	"fmt"
	"github.com/alibabacloud-go/tea/tea"
	dedicatedkmsopenapi "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi"
	dedicatedkmsopenapiutil "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi-util"
	dedicatedkmssdk "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/sdk"
	"io/ioutil"
)

func main() {
	// nama rahasia.
	secretName := "<DKMS_SECRET_NAME>"

	// Buat objek klien SDK instans KMS.
	client := getDkmsClientByClientKeyContent()
	//client := getDkmsClientByClientKeyFile()

	getSecretValueRequest := &dedicatedkmssdk.GetSecretValueRequest{
		SecretName: tea.String(secretName),
	}
	// Verifikasi sertifikat server.
	ca, err := ioutil.ReadFile("path/to/caCert.pem")
	if err != nil {
		panic(err)
	}
	runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
		Verify: tea.String(string(ca)),
	}
	// Atau, abaikan sertifikat.
	//runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
	//	IgnoreSSL: tea.Bool(true),
	//}

	// Panggil API untuk mengambil nilai rahasia.
	response, err := client.GetSecretValueWithOptions(getSecretValueRequest, runtimeOptions)
	if err != nil {
		panic(err)
	}

	// nama rahasia.
	_secretName := tea.StringValue(response.SecretName)
	// nilai rahasia.
	_secretData := tea.StringValue(response.SecretData)
	// ID Permintaan.
	_RequestId := tea.StringValue(response.RequestId)

	fmt.Println("SecretName:", _secretName)
	//fmt.Println("SecretData:", _secretData)
	fmt.Println("RequestId:", _RequestId)
}

// Buat objek klien SDK instans KMS menggunakan konten ClientKey.
func getDkmsClientByClientKeyContent() *dedicatedkmssdk.Client {
	// Buat konfigurasi klien SDK instans KMS
	config := &dedicatedkmsopenapi.Config{
	        // Setel protokol koneksi ke "https". Layanan instans KMS hanya mengizinkan akses melalui protokol HTTPS.
		Protocol: tea.String("https"),
		// Ganti dengan konten file ClientKey.
		ClientKeyContent: tea.String("<CLIENT_KEY_CONTENT>"),
		// Ganti dengan kata sandi enkripsi yang dimasukkan saat membuat ClientKey.
		Password: tea.String("<CLIENT_KEY_PASSWORD>"),
		// Setel titik akhir ke <your KMS Instance Id>.cryptoservice.kms.aliyuncs.com.
		Endpoint: tea.String("<ENDPOINT>"),
	}
	// Buat objek klien SDK instans KMS.
	client, err := dedicatedkmssdk.NewClient(config)
	if err != nil {
		// Tangani pengecualian
		panic(err)
	}
	return client
}

// Buat objek klien SDK instans KMS menggunakan jalur file ClientKey.
func getDkmsClientByClientKeyFile() *dedicatedkmssdk.Client {
	// Buat konfigurasi klien DKMS.
	config := &dedicatedkmsopenapi.Config{
		// Setel protokol koneksi ke "https". Layanan instans KMS hanya mengizinkan akses melalui protokol HTTPS.
		Protocol: tea.String("https"),
		// Ganti dengan jalur file ClientKey.
		ClientKeyFile: tea.String("<CLIENT_KEY_FILE>"),
		// Ganti dengan kata sandi enkripsi yang dimasukkan saat membuat ClientKey.
		Password: tea.String("<CLIENT_KEY_PASSWORD>"),
                 // Setel titik akhir ke <your KMS Instance Id>.cryptoservice.kms.aliyuncs.com.
		Endpoint: tea.String("ENDPOINT"),
	}
	// Buat objek klien SDK instans KMS.
	client, err := dedicatedkmssdk.NewClient(config)
	if err != nil {
		// Tangani pengecualian
		panic(err)
	}
	return client
}

Penjelasan contoh

Inisialisasi klien

Anda dapat membuat objek klien SDK instans KMS menggunakan konten ClientKey atau jalur file ClientKey.

import (
    dedicatedkmsopenapi "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi"
    dedicatedkmssdk "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/sdk"
  "github.com/alibabacloud-go/tea/tea"
)

// Gunakan konten ClientKey untuk membuat objek klien SDK instans KMS.
func getDkmsClientByClientKeyContent() *dedicatedkmssdk.Client {
	// Buat konfigurasi klien SDK instans KMS.
	config := &dedicatedkmsopenapi.Config{
	        // Setel protokol koneksi ke "https". Layanan instans KMS hanya mengizinkan akses melalui protokol HTTPS.
		Protocol: tea.String("https"),
		// Ganti dengan konten file ClientKey.
		ClientKeyContent: tea.String("<CLIENT_KEY_CONTENT>"),
		// Ganti dengan kata sandi enkripsi yang dimasukkan saat membuat ClientKey.
		Password: tea.String("<CLIENT_KEY_PASSWORD>"),
		// Setel titik akhir ke <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com.
		Endpoint: tea.String("<ENDPOINT>"),
	}
	// Buat objek klien SDK instans KMS.
	client, err := dedicatedkmssdk.NewClient(config)
	if err != nil {
		// Penanganan abnormal.
		panic(err)
	}
	return client
}

// Gunakan jalur file ClientKey untuk membuat objek klien SDK instans KMS.
func getDkmsClientByClientKeyFile() *dedicatedkmssdk.Client {
	// Buat konfigurasi klien DKMS.
	config := &dedicatedkmsopenapi.Config{
		// Setel protokol koneksi ke "https". Layanan instans KMS hanya mengizinkan akses melalui protokol HTTPS.
		Protocol: tea.String("https"),
		// Ganti dengan jalur file ClientKey.
		ClientKeyFile: tea.String("<CLIENT_KEY_FILE>"),
		// Ganti dengan kata sandi enkripsi yang dimasukkan saat membuat ClientKey.
		Password: tea.String("<CLIENT_KEY_PASSWORD>"),
                 // Setel titik akhir ke <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com.
		Endpoint: tea.String("ENDPOINT"),
	}
	// Buat objek klien SDK instans KMS.
	client, err := dedicatedkmssdk.NewClient(config)
	if err != nil {
		// Penanganan abnormal.
		panic(err)
	}
	return client
}

Panggil API GetSecretValue

func main() {
	// nama rahasia
	secretName := "<DKMS_SECRET_NAME>"

	// Buat objek klien SDK instans KMS
	client := getDkmsClientByClientKeyContent()
	//client := getDkmsClientByClientKeyFile()

	getSecretValueRequest := &dedicatedkmssdk.GetSecretValueRequest{
		SecretName: tea.String(secretName),
	}
	// Verifikasi sertifikat server
	ca, err := ioutil.ReadFile("path/to/caCert.pem")
	if err != nil {
		panic(err)
	}
	runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
		Verify: tea.String(string(ca)),
	}
	// Atau, abaikan sertifikat
	//runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
	//	IgnoreSSL: tea.Bool(true),
	//}

	// Panggil antarmuka untuk mengambil nilai rahasia
	response, err := client.GetSecretValueWithOptions(getSecretValueRequest, runtimeOptions)
	if err != nil {
		panic(err)
	}

	// nama rahasia
	_secretName := tea.StringValue(response.SecretName)
	// nilai rahasia
	_secretData := tea.StringValue(response.SecretData)
	// ID Permintaan
	_RequestId := tea.StringValue(response.RequestId)

	fmt.Println("SecretName:", _secretName)
	//fmt.Println("SecretData:", _secretData)
	fmt.Println("RequestId:", _RequestId)
}