After initializing the KMS instance SDK client, you can use it to call the GetSecretValue API for retrieving the secret value. This topic provides code examples for this.
Complete example
Example walkthrough
Initialize client
You can create a KMS instance SDK client object using either ClientKey content or a ClientKey file path.
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"
)
// Use ClientKey content to create a KMS instance SDK client object.
func getDkmsClientByClientKeyContent() *dedicatedkmssdk.Client {
// Create KMS instance SDK client configuration.
config := &dedicatedkmsopenapi.Config{
// Set the connection protocol to "https". The KMS instance service only allows access through the HTTPS protocol.
Protocol: tea.String("https"),
// Replace with the content of the ClientKey file.
ClientKeyContent: tea.String("<CLIENT_KEY_CONTENT>"),
// Replace with the encryption password entered when creating the ClientKey.
Password: tea.String("<CLIENT_KEY_PASSWORD>"),
// Set the endpoint to <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com.
Endpoint: tea.String("<ENDPOINT>"),
}
// Create a KMS instance SDK client object.
client, err := dedicatedkmssdk.NewClient(config)
if err != nil {
// Abnormal handling.
panic(err)
}
return client
}
// Use ClientKey file path to create a KMS instance SDK client object.
func getDkmsClientByClientKeyFile() *dedicatedkmssdk.Client {
// Create DKMS client configuration.
config := &dedicatedkmsopenapi.Config{
// Set the connection protocol to "https". The KMS instance service only allows access through the HTTPS protocol.
Protocol: tea.String("https"),
// Replace with the path of the ClientKey file.
ClientKeyFile: tea.String("<CLIENT_KEY_FILE>"),
// Replace with the encryption password entered when creating the ClientKey.
Password: tea.String("<CLIENT_KEY_PASSWORD>"),
// Set the endpoint to <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com.
Endpoint: tea.String("ENDPOINT"),
}
// Create a KMS instance SDK client object.
client, err := dedicatedkmssdk.NewClient(config)
if err != nil {
// Abnormal handling.
panic(err)
}
return client
}Call the GetSecretValue API
func main() {
// secret name
secretName := "<DKMS_SECRET_NAME>"
// Create KMS instance SDK client object
client := getDkmsClientByClientKeyContent()
//client := getDkmsClientByClientKeyFile()
getSecretValueRequest := &dedicatedkmssdk.GetSecretValueRequest{
SecretName: tea.String(secretName),
}
// Verify the server certificate
ca, err := ioutil.ReadFile("path/to/caCert.pem")
if err != nil {
panic(err)
}
runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
Verify: tea.String(string(ca)),
}
// Or, ignore the certificate
//runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
// IgnoreSSL: tea.Bool(true),
//}
// Call the interface to retrieve the secret value
response, err := client.GetSecretValueWithOptions(getSecretValueRequest, runtimeOptions)
if err != nil {
panic(err)
}
// secret name
_secretName := tea.StringValue(response.SecretName)
// secret value
_secretData := tea.StringValue(response.SecretData)
// Request ID
_RequestId := tea.StringValue(response.RequestId)
fmt.Println("SecretName:", _secretName)
//fmt.Println("SecretData:", _secretData)
fmt.Println("RequestId:", _RequestId)
}