Antes de fazer solicitações de API a uma instância do Key Management Service (KMS), inicialize o cliente Go criando um objeto cliente e configurando o certificado CA.
Pré-requisitos
Antes de começar, certifique-se de que você tem:
Uma instância do KMS (Software Key Management ou Hardware Key Management)
Um arquivo ClientKey (
clientKey_****.json) e seu arquivo de senha (clientKey_****_Password.txt), baixados quando você criou a ClientKeyO certificado CA da sua instância KMS (
PrivateKmsCA_kst-******.pem), baixado na página de detalhes da instância
Criar um objeto cliente
Há dois métodos disponíveis. Use o caminho do arquivo ClientKey para a maioria dos deploys de produção. Use o conteúdo da ClientKey se o aplicativo carregar credenciais de um gerenciador de segredos ou de uma variável de ambiente em tempo de execução.
Método 1: caminho do arquivo 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"
)
// getDkmsClientByClientKeyFile creates a KMS instance SDK client using
// the ClientKey file path.
func getDkmsClientByClientKeyFile() *dedicatedkmssdk.Client {
config := &dedicatedkmsopenapi.Config{
// KMS instance service only allows HTTPS.
Protocol: tea.String("https"),
// Path to the ClientKey file (clientKey_****.json).
ClientKeyFile: tea.String("<CLIENT_KEY_FILE>"),
// Password for the ClientKey (from clientKey_****_Password.txt).
Password: tea.String("<CLIENT_KEY_PASSWORD>"),
// Endpoint format: <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com
Endpoint: tea.String("<ENDPOINT>"),
}
client, err := dedicatedkmssdk.NewClient(config)
if err != nil {
panic(err)
}
return client
}Método 2: conteúdo da 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"
)
// getDkmsClientByClientKeyContent creates a KMS instance SDK client using
// the ClientKey file content directly.
func getDkmsClientByClientKeyContent() *dedicatedkmssdk.Client {
config := &dedicatedkmsopenapi.Config{
// KMS instance service only allows HTTPS.
Protocol: tea.String("https"),
// Content of the ClientKey file.
ClientKeyContent: tea.String("<CLIENT_KEY_CONTENT>"),
// Password for the ClientKey (from clientKey_****_Password.txt).
Password: tea.String("<CLIENT_KEY_PASSWORD>"),
// Endpoint format: <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com
Endpoint: tea.String("<ENDPOINT>"),
}
client, err := dedicatedkmssdk.NewClient(config)
if err != nil {
panic(err)
}
return client
}Substitua os seguintes marcadores de posição:
| Marcador de posição | Descrição | Como encontrá-lo |
|---|---|---|
<CLIENT_KEY_FILE> | Caminho para o arquivo ClientKey no disco | Nome de arquivo padrão: clientKey_****.json |
<CLIENT_KEY_CONTENT> | Conteúdo do arquivo ClientKey | Lido do arquivo clientKey_****.json baixado |
<CLIENT_KEY_PASSWORD> | Senha da ClientKey | Nome de arquivo padrão: clientKey_****_Password.txt |
<ENDPOINT> | Endereço de domínio da instância KMS | Consulte Obter o endpoint abaixo |
Configurar o certificado CA
Passe o certificado CA para RuntimeOptions para que o SDK verifique o certificado SSL/TLS do servidor.
Sempre configure o certificado CA em produção. Para ignorar a verificação somente durante testes offline, defina IgnoreSSL: true em RuntimeOptions.
import (
dedicatedkmsopenapiutil "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi-util"
"github.com/alibabacloud-go/tea/tea"
"io/ioutil"
)
// Read the CA certificate file and assign it to RuntimeOptions.
ca, err := ioutil.ReadFile("path/to/caCert.pem")
if err != nil {
panic(err)
}
runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
Verify: tea.String(string(ca)),
}Obter o endpoint
O endpoint é o endereço de domínio do gateway dedicado da instância KMS, no formato <KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com.
Para localizar o endpoint:
Acesse a página Instances e clique na guia Software Key Management ou Hardware Key Management.
Clique na instância de destino.
Na seção Basic Information, copie o valor no campo Instance VPC Endpoint.

Baixar o certificado CA
O certificado CA está associado à sua instância KMS e é necessário para verificação SSL/TLS.
Para baixar o certificado:
Acesse a página Instances e clique na guia Software Key Management ou Hardware Key Management.
Clique no ID da instância ou em Details na coluna Actions.
Na página de detalhes, clique em download ao lado de Instance CA Certificate.
O arquivo baixado é denominado PrivateKmsCA_kst-******.pem por padrão. Guarde-o em local seguro.

Próximas etapas
Com o cliente inicializado, use o objeto client e runtimeOptions para chamar operações do SDK da instância KMS, como criptografar dados ou gerar chaves de dados.