Rumah > pembangunan bahagian belakang > Golang > Panduan penyepaduan bilik kebal dalam projek Golang

Panduan penyepaduan bilik kebal dalam projek Golang

WBOY
Lepaskan: 2023-07-17 14:16:36
asal
1628 orang telah melayarinya

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

Nex

gunakan 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"),
Salin selepas log masuk

})

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
Salin selepas log masuk

}

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"),
Salin selepas log masuk

}

token, ok := response.Auth.ClientToken
jika !ok {

return "", err
Salin selepas log masuk
Salin selepas log masuk

}

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")
Salin selepas log masuk

}

jika rahsia == tiada {

return "", err
Salin selepas log masuk
Salin selepas log masuk

}

data, ok := rahsia.Data["data"].(peta[rentetan]antaramuka{})
jika !ok {

return "", errors.New("secret not found")
Salin selepas log masuk

}

kunci , ok := data["key"].(string)
jika !ok {

return "", errors.New("invalid secret format")
Salin selepas log masuk

}

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")
Salin selepas log masuk

}

// Dapatkan token akses
token, err := GetVaultToken()
if err != nil {

log.Fatalf("failed to create Vault client: %v", err)
Salin selepas log masuk

}

// 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)
Salin selepas log masuk

}

// 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan