Partilhar via


Guia de início rápido: gerenciar segredos usando a biblioteca de cliente do Azure Key Vault Go

Neste início rápido, você aprenderá a usar o SDK do Azure para Go para criar, recuperar, listar e excluir segredos de um cofre de chaves do Azure.

Você pode armazenar uma variedade de tipos de objeto em um cofre de chaves do Azure. Quando você armazena segredos em um cofre de chaves, evita ter que armazená-los em seu código, o que ajuda a melhorar a segurança de seus aplicativos.

Comece com o pacote azsecrets e saiba como gerenciar seus segredos em um cofre de chaves do Azure usando o Go.

Pré-requisitos

Configurar

Para fins deste início rápido, você usa o pacote azidentity para autenticar no Azure usando a CLI do Azure. Para saber mais sobre os vários métodos de autenticação, consulte Autenticação do Azure com o SDK do Azure para Go.

Inicie sessão no portal do Azure

  1. Na CLI do Azure, execute o seguinte comando:

    az login
    

    Se a CLI do Azure puder abrir seu navegador padrão, ela fará isso na página de entrada do portal do Azure.

    Se a página não abrir automaticamente, vá para https://aka.ms/devicelogine insira o código de autorização exibido no terminal.

  2. Entre no portal do Azure com suas credenciais de conta.

Criar um grupo de recursos e uma instância do cofre de chaves

Execute os seguintes comandos da CLI do Azure:

az group create --name quickstart-rg --location eastus
az keyvault create --name quickstart-kv --resource-group quickstart-rg

Os nomes do Cofre de Chaves são globalmente exclusivos, por isso é possível que o nome já tenha sido usado. Talvez seja necessário escolher um valor exclusivo para o nome do Cofre da Chave.

Crie um novo módulo Go e instale pacotes

Execute os seguintes comandos Go:

go mod init kvSecrets
go get -u github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets
go get -u github.com/Azure/azure-sdk-for-go/sdk/azidentity

Código de exemplo

Crie um arquivo chamado main.go e, em seguida, cole o seguinte código nele:

package main

import (
    "context"
    "fmt"
    "log"
    "os"
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
    "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets"
)

func main() {
    mySecretName := "secretName01"
    mySecretValue := "secretValue"
    vaultURI := fmt.Sprintf("https://%s.vault.azure.net/", os.Getenv("KEY_VAULT_NAME"))

    // Create a credential using the NewDefaultAzureCredential type.
    cred, err := azidentity.NewDefaultAzureCredential(nil)
    if err != nil {
        log.Fatalf("failed to obtain a credential: %v", err)
    }

    // Establish a connection to the Key Vault client
    client, err := azsecrets.NewClient(vaultURI, cred, nil)

    // Create a secret
    params := azsecrets.SetSecretParameters{Value: &mySecretValue}
    _, err = client.SetSecret(context.TODO(), mySecretName, params, nil)
    if err != nil {
        log.Fatalf("failed to create a secret: %v", err)
    }

    // Get a secret. An empty string version gets the latest version of the secret.
    version := ""
    resp, err := client.GetSecret(context.TODO(), mySecretName, version, nil)
    if err != nil {
        log.Fatalf("failed to get the secret: %v", err)
    }

    fmt.Printf("secretValue: %s\n", *resp.Value)

    // List secrets
    pager := client.NewListSecretsPager(nil)
    for pager.More() {
        page, err := pager.NextPage(context.TODO())
        if err != nil {
            log.Fatal(err)
        }
        for _, secret := range page.Value {
            fmt.Printf("Secret ID: %s\n", *secret.ID)
        }
    }

    // Delete a secret. DeleteSecret returns when Key Vault has begun deleting the secret.
    // That can take several seconds to complete, so it may be necessary to wait before
    // performing other operations on the deleted secret.
    delResp, err := client.DeleteSecret(context.TODO(), mySecretName, nil)
    if err != nil {
        log.Fatalf("failed to delete secret: %v", err)
    }

    fmt.Println(delResp.ID.Name() + " has been deleted")
}

Executar o código

  1. Antes de executar o código, crie uma variável de ambiente chamada KEY_VAULT_NAME. Defina o valor da variável de ambiente como o nome do cofre de chaves que você criou anteriormente.

    export KEY_VAULT_NAME=quickstart-kv
    
  2. Para iniciar o aplicativo Go, execute o seguinte comando:

    go run main.go
    
    secretValue: createdWithGO
    Secret ID: https://quickstart-kv.vault.azure.net/secrets/quickstart-secret
    Secret ID: https://quickstart-kv.vault.azure.net/secrets/secretName
    quickstart-secret has been deleted
    

Exemplos de código

Consulte a documentação do módulo para obter mais exemplos.

Clean up resources (Limpar recursos)

Exclua o grupo de recursos e todos os recursos restantes executando o seguinte comando:

az group delete --resource-group quickstart-rg

Próximos passos