Setelah menginisialisasi klien SDK instans KMS, Anda dapat memanggil API GetSecretValue untuk mengambil nilai rahasia. Topik ini menyediakan contoh kode terkait.
Contoh lengkap
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)
}