Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan storan sulit Vault dalam Go?

Bagaimana untuk menggunakan storan sulit Vault dalam Go?

PHPz
PHPzasal
2023-05-11 15:16:361375semak imbas

Dalam aplikasi moden, kerahsiaan data sensitif adalah penting, seperti kunci API, kata laluan pangkalan data dan banyak lagi. Untuk memastikan keselamatan, data sensitif ini mesti disimpan dalam storan selamat dan hanya boleh diakses oleh pengguna yang dibenarkan. Vault ialah alat sumber terbuka yang dibangunkan oleh HashiCorp Ia mempunyai fungsi seperti storan selamat dan kawalan akses dinamik, dan merupakan pilihan terbaik untuk menyimpan maklumat sensitif.

Artikel ini akan membincangkan cara menggunakan storan sulit Vault dalam Go, mengakses API Vault dan memanfaatkan Vault untuk menyediakan keselamatan dan kemudahan untuk mengurus maklumat sensitif aplikasi anda.

  1. Pasang Vault

Mula-mula anda perlu memasang Vault dan mulakan pelayan Vault. Anda boleh pergi ke tapak web rasmi Vault untuk memuat turun fail binari yang sesuai untuk sistem pengendalian anda. Sebelum pemasangan, sahkan bahawa storan bahagian belakang seperti Consul atau etcd telah dipasang. Seterusnya, mulakan aplikasi Vault menggunakan arahan berikut:

$ vault server -dev

Ini akan memulakan pelayan Vault dan mendayakan mod pembangunan/ujian. Dalam mod pembangunan/ujian, pelayan Vault disimpan dalam memori dan tidak disulitkan dan digunakan untuk tujuan ujian pembangunan sahaja. Dalam persekitaran pengeluaran, anda perlu memulakan pelayan Vault dan storan hujung belakang dengan konfigurasi yang selamat.

  1. Mengkonfigurasi Bilik Kebal

Setelah pelayan Bilik Kebal dimulakan, kami perlu mencipta konfigurasi Bilik Kebal untuk menyimpan maklumat sensitif. Pertama, enjin rahsia baharu perlu dicipta.

$ vault secrets enable -path=secret kv

Ini akan mencipta enjin rahsia bernama "rahsia" pada pelayan Vault dan menetapkan jenisnya kepada "kv". Semua enjin rahsia pada pelayan Vault boleh dilihat menggunakan vault secrets list.

Seterusnya, data sensitif perlu disimpan dalam ruang storan kunci Vault. Dalam contoh ini, kami akan menyimpan kunci tandatangan untuk JWT (JSON Web Token). Data boleh disimpan ke dalam ruang storan kunci Vault menggunakan perintah vault kv put seperti berikut:

$ vault kv put secret/jwt secretkey=shhhnotsosecret

Perintah di atas akan menyimpan pasangan kunci/nilai bernama "jwt" dan menggunakan kekunci "kunci rahsia" untuk " nilai shhhnotsosecret" disimpan dalam bahagian.

  1. Menggunakan Vault dalam Go

Sekarang Vault telah dikonfigurasikan, kita perlu menggunakan API Vault dalam Go untuk membaca maklumat sensitif.

Mula-mula anda perlu memasang API klien Vault. API klien Vault boleh dipasang menggunakan arahan berikut.

$ go get github.com/hashicorp/vault/api

Seterusnya, anda perlu membuat klien Vault baharu. Pelanggan Vault boleh dibuat menggunakan arahan berikut:

import (
    "github.com/hashicorp/vault/api"
)

config := api.DefaultConfig()
config.Address = "http://127.0.0.1:8200"
client, err := api.NewClient(config)

if err != nil {
    // handle error
}

Kod di atas akan mencipta klien Vault baharu dan mengkonfigurasinya untuk berkomunikasi dengan pelayan Vault yang dijalankan pada localhost.

Seterusnya, kunci perlu dibaca dari gedung Vault. Kunci boleh diperolehi daripada stor Vault menggunakan kod berikut:

secret, err := client.Logical().Read("secret/data/jwt")

if err != nil {
    // handle error
}

Kod di atas akan membaca data daripada pasangan kunci/nilai kunci JWT Vault. Jika bacaan berjaya, objek peta[rentetan]antaramuka{} yang mengandungi data dikembalikan.

Akhir sekali, kita boleh mendapatkan kunci daripada stor kunci Vault menggunakan kod berikut:

key := secret.Data["data"].(map[string]interface{})["secretkey"].(string)

Kod di atas akan mendapat kata laluan tandatangan daripada kunci JWT Vault.

  1. Ringkasan

Vault ialah alat sumber terbuka dengan fungsi seperti storan selamat dan kawalan akses dinamik Ia adalah pilihan terbaik untuk menyimpan maklumat sensitif. Menggunakan storan sulit Vault dalam Go adalah sangat mudah. Anda hanya perlu memasang pelayan Vault, mengkonfigurasi pelayan Vault dan mencipta klien Vault untuk mengurus data sensitif dalam Vault. Dengan cara ini, anda memastikan bahawa data sensitif dilindungi dan hanya pengguna yang diberi kuasa boleh mengaksesnya.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan storan sulit Vault dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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