Rumah >pembangunan bahagian belakang >Golang >Golang dan Bilik Kebal: Membina seni bina perkhidmatan mikro yang selamat

Golang dan Bilik Kebal: Membina seni bina perkhidmatan mikro yang selamat

WBOY
WBOYasal
2023-07-17 08:21:391279semak imbas

Golang dan Vault: Membina seni bina perkhidmatan mikro yang selamat

Dalam pembangunan aplikasi moden, membina seni bina perkhidmatan mikro yang selamat adalah penting. Dengan populariti seni bina perkhidmatan mikro, semakin banyak perkhidmatan berjalan dalam persekitaran yang berbeza dan berkomunikasi antara satu sama lain, jadi melindungi dan mengurus data sensitif seperti kata laluan, kunci API dan bukti kelayakan pangkalan data telah menjadi sangat penting. Artikel ini akan memperkenalkan cara menggunakan Golang dan Vault untuk melaksanakan seni bina perkhidmatan mikro yang selamat.

  1. Golang dan Microservices
    Golang ialah bahasa pengaturcaraan berkuasa yang telah menjadi salah satu pilihan popular untuk membina perkhidmatan mikro kerana prestasi konkurensi yang sangat baik dan sintaks ringkas. Pustaka standard Golang menyediakan fungsi lengkap untuk mengendalikan permintaan HTTP, pemprosesan JSON, penyimpanan data, dsb. Dalam contoh ini, kami akan menggunakan Golang untuk membina perkhidmatan mikro yang mudah.
  2. Pengenalan kepada Vault
    Vault ialah alat yang dibangunkan oleh HashiCorp untuk mengurus dan melindungi data sensitif. Ia boleh menyimpan dan menjana kata laluan, kunci API, bukti kelayakan pangkalan data, dsb., dan menyediakan kawalan akses dan keupayaan pengauditan. Vault juga menyokong penjanaan dan penggiliran bukti kelayakan akses dinamik, memastikan keselamatan data sensitif.
  3. Lindungi Data Sensitif dengan Bilik Kebal
    Pertama, kita perlu membuat bahagian belakang penyulitan bernama "rahsia saya" dalam Bilik Kebal dan menyimpan data sensitif di dalamnya. Kami boleh menggunakan alat CLI atau API Vault untuk beroperasi.

Cipta bahagian belakang yang disulitkan:

$ vault secrets enable -path=secret kv

Tambah data sensitif:

$ vault kv put secret/myapp/api_key value=abc123

Kini, data sensitif kami disimpan dalam Bilik Kebal dan dilindungi oleh penyulitan. Langkah seterusnya ialah mendapatkan dan menggunakan data ini dalam kod mikroperkhidmatan Golang.

  1. Menggunakan Vault di Golang
    Untuk menggunakan Vault di Golang, kita perlu menggunakan pustaka Golang Vault untuk berkomunikasi dengan Vault. Kami boleh menggunakan arahan go get untuk memasang perpustakaan Golang Vault:
$ go get -u github.com/99designs/keyring

Seterusnya, kami akan menulis program Golang mudah untuk menyambung ke Vault dan mendapatkan data sensitif:

package main

import (
    "fmt"
    "log"

    "github.com/99designs/keyring"
)

func main() {
    vaultConfig := keyring.Config{
        ServiceName: "myapp",
        URL:         "http://localhost:8200",
    }

    keyring, err := keyring.Open(vaultConfig)
    if err != nil {
        log.Fatal(err)
    }

    item, err := keyring.Get("api_key")
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("API Key:", item.Data)
}

Dalam contoh ini, kami mentakrifkan Konfigurasi dan nama perkhidmatan Vault, selepas menyambung ke Bilik Kebal, gunakan cincin kekunci. Kaedah Dapatkan untuk mendapatkan data sensitif bernama "api_key" daripada Bilik Kebal. Akhir sekali, kami mencetak kunci API yang terhasil.

  1. Jalankan perkhidmatan mikro Golang
    Kini, kami boleh menjalankan perkhidmatan mikro Golang dan melihat sama ada data sensitif berjaya diperoleh daripada Bilik Kebal.
$ go run main.go

Jika semuanya baik-baik saja, outputnya akan serupa dengan yang berikut:

API Key: abc123

Ini bermakna kami berjaya memperoleh kunci API daripada Vault dan menggunakannya dalam perkhidmatan mikro Golang.

  1. Ringkasan
    Dalam artikel ini, kami memperkenalkan cara menggunakan Golang dan Vault untuk membina seni bina perkhidmatan mikro yang selamat. Dengan menyimpan data sensitif dalam Vault dan berkomunikasi dengannya menggunakan perpustakaan Golang Vault, kami boleh melindungi dan mengurus data sensitif, memberikan lapisan keselamatan tambahan kepada perkhidmatan mikro kami. Saya harap artikel ini membantu anda memahami cara membina seni bina perkhidmatan mikro yang selamat!

Rujukan contoh kod: https://github.com/99designs/keyring

Atas ialah kandungan terperinci Golang dan Bilik Kebal: Membina seni bina perkhidmatan mikro yang selamat. 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