Heim >Backend-Entwicklung >Golang >Golang und Vault: Aufbau einer sicheren Microservices-Architektur

Golang und Vault: Aufbau einer sicheren Microservices-Architektur

WBOY
WBOYOriginal
2023-07-17 08:21:391306Durchsuche

Golang und Vault: Aufbau einer sicheren Microservices-Architektur

In der modernen Anwendungsentwicklung ist der Aufbau einer sicheren Microservices-Architektur von entscheidender Bedeutung. Mit der Popularität der Microservice-Architektur laufen immer mehr Dienste in unterschiedlichen Umgebungen und kommunizieren miteinander. Daher ist der Schutz und die Verwaltung sensibler Daten wie Passwörter, API-Schlüssel und Datenbankanmeldeinformationen besonders wichtig geworden. In diesem Artikel wird erläutert, wie Sie mit Golang und Vault eine sichere Microservice-Architektur implementieren.

  1. Golang und Microservices
    Golang ist eine leistungsstarke Programmiersprache, die aufgrund ihrer hervorragenden Parallelitätsleistung und prägnanten Syntax zu einer der beliebtesten Optionen für die Erstellung von Microservices geworden ist. Die Standardbibliothek von Golang bietet vollständige Funktionen zur Verarbeitung von HTTP-Anfragen, JSON-Verarbeitung, Datenspeicherung usw. In diesem Beispiel verwenden wir Golang, um einen einfachen Microservice zu erstellen.
  2. Einführung in Vault
    Vault ist ein von HashiCorp entwickeltes Tool zur Verwaltung und zum Schutz sensibler Daten. Es kann Passwörter, API-Schlüssel, Datenbankanmeldeinformationen usw. speichern und generieren und bietet Zugriffskontroll- und Prüffunktionen. Vault unterstützt auch die Generierung und Rotation dynamischer Zugangsdaten und gewährleistet so die Sicherheit sensibler Daten.
  3. Sensible Daten mit Vault schützen
    Zuerst müssen wir in Vault ein Verschlüsselungs-Backend mit dem Namen „my-secret“ erstellen und darin sensible Daten speichern. Für den Betrieb können wir das CLI-Tool oder die API von Vault verwenden.

Verschlüsseltes Backend erstellen:

$ vault secrets enable -path=secret kv

Sensible Daten hinzufügen:

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

Jetzt werden unsere sensiblen Daten im Vault gespeichert und durch Verschlüsselung geschützt. Der nächste Schritt besteht darin, diese Daten im Golang-Microservice-Code abzurufen und zu verwenden.

  1. Vault in Golang verwenden
    Um Vault in Golang verwenden zu können, müssen wir die Golang-Bibliothek von Vault verwenden, um mit Vault zu kommunizieren. Wir können den Befehl go get verwenden, um die Golang-Bibliothek von Vault zu installieren:
$ go get -u github.com/99designs/keyring

Als Nächstes schreiben wir ein einfaches Golang-Programm, um eine Verbindung zu Vault herzustellen und vertrauliche Daten abzurufen:

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)
}

In diesem Beispiel definieren wir die Konfiguration und den Dienstnamen von Vault. Nachdem Sie eine Verbindung zu Vault hergestellt haben, verwenden Sie die Methode keyring.Get, um vertrauliche Daten mit dem Namen „api_key“ von Vault abzurufen. Abschließend drucken wir den resultierenden API-Schlüssel aus.

  1. Führen Sie den Golang-Microservice aus
    Jetzt können wir den Golang-Microservice ausführen und prüfen, ob die sensiblen Daten erfolgreich aus dem Vault abgerufen wurden.
$ go run main.go

Wenn alles in Ordnung ist, sieht die Ausgabe etwa wie folgt aus:

API Key: abc123

Das bedeutet, dass wir den API-Schlüssel erfolgreich von Vault erhalten und ihn im Golang-Microservice verwendet haben.

  1. Zusammenfassung
    In diesem Artikel haben wir vorgestellt, wie man Golang und Vault zum Aufbau einer sicheren Microservices-Architektur verwendet. Durch die Speicherung sensibler Daten in Vault und die Kommunikation mit ihnen über die Golang-Bibliothek von Vault können wir sensible Daten schützen und verwalten und so unseren Microservices eine zusätzliche Sicherheitsebene bieten. Ich hoffe, dieser Artikel hilft Ihnen zu verstehen, wie Sie eine sichere Microservices-Architektur aufbauen!

Codebeispielreferenz: https://github.com/99designs/keyring

Das obige ist der detaillierte Inhalt vonGolang und Vault: Aufbau einer sicheren Microservices-Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn