初始化KMS執行個體SDK用戶端後,您可以通過用戶端調用GetSecretValue介面擷取憑據值。本文介紹擷取憑據值的程式碼範例。
完整程式碼範例
調用GetSecretValue介面擷取憑據值。
源碼github地址:get_secret_value.go
程式碼範例解析
初始化用戶端
選擇使用ClientKey內容或者ClientKey檔案路徑建立KMS執行個體SDK Client對象。
關於初始化用戶端的詳細介紹,請參見初始化用戶端。
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"
)
// 使用ClientKey內容建立KMS執行個體SDK Client對象
func getDkmsClientByClientKeyContent() *dedicatedkmssdk.Client {
// 建立KMS執行個體SDK Client配置
config := &dedicatedkmsopenapi.Config{
// 連線協定請設定為"https"。KMS執行個體服務僅允許通過HTTPS協議訪問。
Protocol: tea.String("https"),
// 請替換為ClientKey檔案的內容
ClientKeyContent: tea.String("yourClientKeyContent"),
// 請替換為建立ClientKey時輸入的加密口令
Password: tea.String("yourClientKeyPassword"),
// 設定endpoint為<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com。
Endpoint: tea.String("yourEndpoint"),
}
// 建立KMS執行個體SDK Client對象
client, err := dedicatedkmssdk.NewClient(config)
if err != nil {
// 異常處理
panic(err)
}
return client
}
// 使用ClientKey檔案路徑建立KSM執行個體SDK Client對象
func getDkmsClientByClientKeyFile() *dedicatedkmssdk.Client {
// 建立DKMS Client配置
config := &dedicatedkmsopenapi.Config{
// 連線協定請設定為"https"。KMS執行個體服務僅允許通過HTTPS協議訪問。
Protocol: tea.String("https"),
// 請替換為ClientKey檔案的路徑
ClientKeyFile: tea.String("yourClientKeyFile"),
// 請替換為建立ClientKey時輸入的加密口令
Password: tea.String("yourClientKeyPassword"),
// 設定endpoint為<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com。
Endpoint: tea.String("yourEndpoint"),
}
// 建立KMS執行個體SDK Client對象
client, err := dedicatedkmssdk.NewClient(config)
if err != nil {
// 異常處理
panic(err)
}
return client
}調用GetSecretValue介面擷取憑據值
func main() {
// 憑據名稱
secretName := "<your-dkms-secret-name>"
// 建立KMS執行個體SDK Client對象
client := getDkmsClientByClientKeyContent()
//client := getDkmsClientByClientKeyFile()
getSecretValueRequest := &dedicatedkmssdk.GetSecretValueRequest{
SecretName: tea.String(secretName),
}
// 驗證服務端認證
ca, err := ioutil.ReadFile("path/to/caCert.pem")
if err != nil {
panic(err)
}
runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
Verify: tea.String(string(ca)),
}
// 或,忽略認證
//runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
// IgnoreSSL: tea.Bool(true),
//}
// 調用擷取憑據值介面
response, err := client.GetSecretValueWithOptions(getSecretValueRequest, runtimeOptions)
if err != nil {
panic(err)
}
// 憑據名稱
_secretName := tea.StringValue(response.SecretName)
// 憑據值
_secretData := tea.StringValue(response.SecretData)
// 請求ID
_RequestId := tea.StringValue(response.RequestId)
fmt.Println("SecretName:", _secretName)
//fmt.Println("SecretData:", _secretData)
fmt.Println("RequestId:", _RequestId)
}