Mulai cepat: Mengelola rahasia dengan menggunakan pustaka klien Azure Key Vault Go
Dalam mulai cepat ini, Anda akan belajar menggunakan Azure SDK untuk Go untuk membuat, mengambil, mencantumkan, dan menghapus rahasia dari brankas kunci Azure.
Anda dapat menyimpan berbagai jenis objek di brankas kunci Azure. Ketika Anda menyimpan rahasia di brankas kunci, Anda menghindari keharusan untuk menyimpannya dalam kode Anda, yang membantu meningkatkan keamanan aplikasi Anda.
Mulai dengan paket azsecrets dan pelajari cara mengelola rahasia Anda di brankas kunci Azure menggunakan Go.
Prasyarat
- Langganan Azure. Jika belum memiliki langganan, Anda dapat membuatnya secara gratis.
- Go versi 1.18 atau yang lebih baru, diinstal.
- Azure CLI, diinstal.
Siapkan
Untuk tujuan mulai cepat ini, Anda menggunakan paket azidentity untuk mengautentikasi ke Azure dengan menggunakan Azure CLI. Untuk mempelajari tentang berbagai metode autentikasi, lihat Autentikasi Azure dengan Azure SDK untuk Go.
Masuk ke portal Microsoft Azure
Di Azure CLI, jalankan perintah berikut ini:
az login
Jika Azure CLI dapat membuka browser default Anda, CLI akan melakukannya pada halaman masuk portal Azure.
Jika halaman tidak terbuka secara otomatis, buka https://aka.ms/devicelogin, lalu masukkan kode otorisasi yang ditampilkan di terminal Anda.
Masuk ke portal Azure dengan kredensial akun Azure Anda.
Buat grup sumber daya dan instans brankas kunci
Jalankan perintah Azure CLI berikut:
az group create --name quickstart-rg --location eastus
az keyvault create --name quickstart-kv --resource-group quickstart-rg
Membuat modul Go baru dan menginstal paket
Jalankan perintah Go berikut:
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
Kode sampel
Buat file bernama main.go dan salin kode berikut ke dalam file tersebut:
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")
}
Jalankan kode
Sebelum Anda menjalankan kode, buat variabel lingkungan bernama
KEY_VAULT_NAME
. Atur nilai variabel lingkungan ke nama brankas kunci yang Anda buat sebelumnya.export KEY_VAULT_NAME=quickstart-kv
Untuk menjalankan aplikasi Go, jalankan perintah berikut:
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
Contoh kode
Lihat dokumentasi modul untuk mendapatkan contoh lainnya.
Membersihkan sumber daya
Hapus grup sumber daya dan semua sumber daya yang tersisa dengan menjalankan perintah berikut:
az group delete --resource-group quickstart-rg