Rumah >pembangunan bahagian belakang >Golang >Bina aplikasi teragih selamat dengan Golang dan Vault

Bina aplikasi teragih selamat dengan Golang dan Vault

WBOY
WBOYasal
2023-07-20 08:01:511468semak imbas

Bina aplikasi teragih selamat menggunakan Golang dan Vault

Pengenalan:
Dalam era digital hari ini, keselamatan adalah salah satu fokus yang mesti diberi perhatian oleh pembangun. Apabila aplikasi menjadi lebih kompleks dan semakin dibina menggunakan sistem teragih, melindungi data sensitif aplikasi menjadi lebih penting. Dalam artikel ini, kami akan meneroka cara membina aplikasi teragih selamat menggunakan bahasa pengaturcaraan Golang dengan alat Vault HashiCorp. Kami akan menumpukan pada cara menggunakan Vault untuk menyimpan dan mengurus data sensitif dan menjadikannya boleh diakses melalui aplikasi Golang.

  1. Apakah itu Vault?
    Vault ialah alat sumber terbuka yang dibangunkan oleh HashiCorp untuk menyimpan, mengakses dan mengurus data sensitif dengan selamat. Ia menyediakan kawalan akses yang fleksibel, pengesahan dan mekanisme penyulitan untuk membantu pembangun mengurus data sensitif seperti kunci, kata laluan dan token API dengan selamat. Ini menjadikan Vault alat yang ideal untuk membina aplikasi teragih yang selamat.
  2. Memasang dan Mengkonfigurasi Vault
    Mula-mula, kita perlu memasang Vault dalam persekitaran setempat. Anda boleh memuat turun versi terkini untuk sistem pengendalian anda daripada laman web rasmi HashiCorp. Selepas pemasangan selesai, kami perlu mengkonfigurasi pelayan Vault.

Berikut ialah contoh fail konfigurasi pelayan Vault yang mudah (config.hcl):

listener "tcp" {
    address = "127.0.0.1:8200"
    tls_disable = 1
}

storage "file" {
    path = "/path/to/vault/data"
}

Fail konfigurasi di atas menentukan alamat pendengaran dan laluan storan pelayan Vault. Anda boleh mengubah suai mengikut keperluan anda.

Arahan untuk memulakan pelayan Vault adalah seperti berikut:

$ vault server -config=config.hcl

Pelayan Vault akan bermula pada alamat yang dinyatakan dalam fail konfigurasi dan mendengar permintaan daripada pelanggan.

  1. Akses Vault menggunakan SDK Vault
    Untuk menggunakan Vault dalam aplikasi Golang, kami perlu memasang dan menggunakan SDK Golang Vault. Anda boleh menggunakan arahan berikut untuk memasang SDK:

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

Kemudian, kita boleh menggunakan contoh kod berikut untuk menyambung dan mengakses Vault:

package main

import (
    "fmt"
    "os"

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

func main() {
    // 使用环境变量设置Vault的地址和凭据
    vaultAddress := os.Getenv("VAULT_ADDR")
    vaultToken := os.Getenv("VAULT_TOKEN")

    // 创建Vault的API客户端
    client, err := api.NewClient(&api.Config{
        Address: vaultAddress,
    })
    if err != nil {
        fmt.Println("无法创建Vault客户端:", err)
        return
    }

    // 使用提供的Token进行身份验证
    client.SetToken(vaultToken)

    // 通过API客户端访问Vault
    // 在这里添加你的代码逻辑...

}

Dalam kod di atas, kami menetapkan alamat Vault dan token akses dengan membaca pembolehubah persekitaran, dan Gunakan maklumat ini untuk mencipta klien API Vault. Anda boleh menyesuaikannya mengikut keperluan.

  1. Menyimpan dan mengakses data sensitif
    Vault menyediakan satu set API untuk pembangun menyimpan dan mengakses data sensitif. Berikut ialah beberapa contoh penggunaan kaedah API yang biasa digunakan:
  • Menyimpan data sensitif:

    // 密文应该是已加密的敏感数据(如密码、API令牌等)
    plaintext := "my-secret-plaintext"
    
    // 创建一个存储KV的秘密引擎
    secret, err := client.Logical().Write("secret/data/my-secrets", map[string]interface{}{
      "data": map[string]interface{}{
          "secret": plaintext,
      },
    })
    if err != nil {
      fmt.Println("存储敏感数据失败:", err)
      return
    }
    fmt.Println("敏感数据已存储:", secret)
  • Membaca data sensitif:

    // 读取存储的敏感数据
    secret, err := client.Logical().Read("secret/data/my-secrets")
    if err != nil {
      fmt.Println("读取敏感数据失败:", err)
      return
    }
    fmt.Println("敏感数据:", secret.Data["secret"])

Dengan contoh kod di atas dan dengan itu menjadi sensitif, kita boleh menyimpan data yang sensitif. data sensitif dalam aplikasi.

Ringkasan:
Dalam artikel ini, kami memperkenalkan cara membina aplikasi teragih selamat menggunakan bahasa pengaturcaraan Golang dengan alat Vault. Kami mempelajari peranan Vault dan proses pemasangan serta konfigurasi serta menggunakan SDK Vault Golang untuk menyambung dan mengakses pelayan Vault. Kami juga meneroka cara menggunakan Vault untuk menyimpan dan mengakses data sensitif.

Dengan membina aplikasi teragih selamat menggunakan Golang dan Vault, kami boleh melindungi data sensitif dalam aplikasi kami dengan lebih baik, mengurangkan potensi risiko keselamatan dan meningkatkan keselamatan aplikasi. Kita harus memasukkan keselamatan ke dalam peringkat awal proses pembangunan dan mengikuti amalan terbaik untuk memastikan keselamatan aplikasi kita.

Atas ialah kandungan terperinci Bina aplikasi teragih selamat dengan Golang dan Vault. 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