Rumah > Artikel > pembangunan bahagian belakang > Panduan penyepaduan bilik kebal dalam projek Golang
Panduan Penyepaduan Vault dalam Projek Golang
Ikhtisar:
Vault ialah alat untuk mengurus dan melindungi data sensitif Ia boleh menyimpan maklumat sensitif seperti kata laluan, kunci API, token akses, dsb. Dalam projek Golang, kami boleh melindungi maklumat sensitif kami dengan menyepadukan Vault untuk mengelakkan kebocoran atau akses oleh orang yang tidak dibenarkan. Artikel ini akan memperkenalkan cara menyepadukan Vault dalam projek Golang dan memberikan contoh kod.
Langkah 1: Pasang dan konfigurasikan Vault
Mula-mula, kita perlu memasang Vault dan melakukan persediaan asas.
1.1 Memasang Vault
Anda boleh memuat turun binari Vault untuk sistem pengendalian anda daripada tapak web rasmi Vault (https://www.vaultproject.io/) dan menambahkannya pada laluan sistem anda.
1.2 Mulakan Pelayan Bilik Kebal
Jalankan arahan berikut dalam terminal untuk memulakan pelayan Bilik Kebal:
pelayan Bilik Kebal -dev
Ini akan memulakan mod pembangunan pelayan Bilik Kebal secara setempat.
1.3 Konfigurasi Vault
Tetapkan alamat Vault dengan menjalankan arahan berikut:
eksport VAULT_ADDR='http://127.0.0.1:8200'
Langkah 2: Sahkan menggunakan Vault API, kami akan
Nexgunakan API Vault untuk mengesahkan dan mendapatkan Token Akses.
2.1 Import pustaka Vault
Dalam projek Golang anda, import pustaka bilik kebal:
import (
"github.com/hashicorp/vault/api"
)
2.2 Buat klien Vault
Buat menggunakan kod berikut Pelanggan Vault:
func CreateVaultClient() (*api.Client, ralat) {
client, err := api.NewClient(&api.Config{
Address: os.Getenv("VAULT_ADDR"),
})
if err != nil {
rreee}
kembalikan pelanggan, tiada
}
2.3 Log masuk dan dapatkan token akses
Gunakan kod berikut untuk log masuk dan dapatkan token akses:
func GetVaultToken(klien *api.Client) (rentetan, ralat) {
pilihan: = peta[rentetan]antaramuka{}{
return nil, err
}
respon, err := client.Logical().Tulis("auth/approle/login", pilihan)
jika err != nil {
"role_id": os.Getenv("VAULT_ROLE_ID"), "secret_id": os.Getenv("VAULT_SECRET_ID"),
}
token, ok := response.Auth.ClientToken
jika !ok {
return "", err
}
return token, nil
}
2.4 Gunakan token akses
Gunakan token akses yang diperoleh dalam langkah sensitif fail sebelumnya dalam Maklumat Bilik Kebal:
func GetSecretFromVault(klien *api.Client, rentetan secretPath) (rentetan, ralat) {
rahsia, err := client.Logical().Baca(secretPath)
jika err != nil {
return "", errors.New("failed to retrieve token from Vault")
}
jika rahsia == tiada {
return "", err
}
data, ok := rahsia.Data["data"].(peta[rentetan]antaramuka{})
jika !ok {
return "", errors.New("secret not found")
}
kunci , ok := data["key"].(string)
jika !ok {
return "", errors.New("invalid secret format")
}
return key, nil
}
Langkah 3: Menggunakan Vault dalam Code
Dengan langkah di atas, kita sudah mempunyai Pelanggan Golang yang boleh mengesahkan dengan Vault dan mengakses maklumat sensitif. Sekarang kita boleh menggunakannya dalam kod kita.
func main() {
// Cipta klien Vault
klien, err := CreateVaultClient()
if err != nil {
return "", errors.New("key not found in secret")
}
// Dapatkan token akses
token, err := GetVaultToken()
if err != nil {
log.Fatalf("failed to create Vault client: %v", err)
}
// Gunakan token akses untuk mendapatkan maklumat sensitif daripada Vault
secretKey, err := GetSecretFromVault(client, "secret/my-secret-key")
if err != nol {
log.Fatalf("failed to get Vault token: %v", err)
}
// Gunakan maklumat sensitif yang diperoleh untuk pemprosesan logik perniagaan
// ...
}
Dalam kod di atas, kami mula-mula mencipta klien Vault, kemudian menggunakan Log masuk API Vault dan dapatkan token akses. Seterusnya, kami menggunakan token akses untuk mendapatkan maklumat sensitif daripada Vault dan menggunakannya untuk pemprosesan logik perniagaan kami.
Kesimpulan:
Melindungi dan mengurus maklumat sensitif dalam projek Golang menjadi lebih mudah dan selamat dengan menyepadukan Vault. Dengan menggunakan API Vault, kami boleh mengesahkan dan mengakses maklumat sensitif yang disimpan dalam Vault dengan mudah. Kami berharap panduan penyepaduan dan kod sampel yang disediakan dalam artikel ini akan membimbing anda dalam menggunakan Vault dalam projek Golang anda.
Atas ialah kandungan terperinci Panduan penyepaduan bilik kebal dalam projek Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!