Sdílet prostřednictvím


Rychlý start: Správa tajných kódů pomocí klientské knihovny Azure Key Vault Go

V tomto rychlém startu se dozvíte, jak pomocí sady Azure SDK for Go vytvářet, načítat, vypisovat a odstraňovat tajné kódy ze služby Azure Key Vault.

Do trezoru klíčů Azure můžete uložit různé typy objektů . Když ukládáte tajné kódy do trezoru klíčů, nemusíte je ukládat do kódu, což pomáhá zlepšit zabezpečení vašich aplikací.

Začněte s balíčkem azsecrets a zjistěte, jak spravovat tajné kódy v trezoru klíčů Azure pomocí Go.

Požadavky

Nastavení

Pro účely tohoto rychlého startu použijete balíček azidentity k ověření v Azure pomocí Azure CLI. Další informace o různých metodách ověřování najdete v tématu Ověřování Azure pomocí sady Azure SDK for Go.

Přihlášení k webu Azure Portal

  1. V Azure CLI spusťte následující příkaz:

    az login
    

    Pokud Azure CLI dokáže otevřít váš výchozí prohlížeč, provede to na přihlašovací stránce Azure Portal.

    Pokud se stránka neotevře automaticky, přejděte na https://aka.ms/devicelogina zadejte autorizační kód, který se zobrazí v terminálu.

  2. Přihlaste se k Azure Portal pomocí přihlašovacích údajů svého účtu.

Vytvoření skupiny prostředků a instance trezoru klíčů

Spusťte následující příkazy Azure CLI:

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

Vytvoření nového modulu Go a instalace balíčků

Spusťte následující příkazy 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

Ukázka kódu

Vytvořte soubor s názvem main.go a vložte do něj následující kód:

package main

import (
    "context"
    "fmt"
    "log"

    "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 := os.Getenv("AZURE_KEY_VAULT_URI")

    // 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")
}

Spuštění kódu

  1. Před spuštěním kódu vytvořte proměnnou prostředí s názvem KEY_VAULT_NAME. Nastavte hodnotu proměnné prostředí na název trezoru klíčů, který jste vytvořili dříve.

    export KEY_VAULT_NAME=quickstart-kv
    
  2. Aplikaci Go spustíte spuštěním následujícího příkazu:

    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
    

Příklady kódu

Další příklady najdete v dokumentaci k modulu .

Vyčištění prostředků

Spuštěním následujícího příkazu odstraňte skupinu prostředků a všechny její zbývající prostředky:

az group delete --resource-group quickstart-rg

Další kroky