Heim >Backend-Entwicklung >Golang >Wie verwende ich den vertraulichen Vault-Speicher in Go?

Wie verwende ich den vertraulichen Vault-Speicher in Go?

PHPz
PHPzOriginal
2023-05-11 15:16:361441Durchsuche

In modernen Anwendungen ist die Vertraulichkeit sensibler Daten wie API-Schlüssel, Datenbankkennwörter usw. von entscheidender Bedeutung. Um die Sicherheit zu gewährleisten, müssen diese sensiblen Daten in einem sicheren Speicher gespeichert werden und nur autorisierten Benutzern zugänglich sein. Vault ist ein von HashiCorp entwickeltes Open-Source-Tool. Es verfügt über Funktionen wie sichere Speicherung und dynamische Zugriffskontrolle und ist die beste Wahl für die Speicherung sensibler Informationen.

In diesem Artikel wird erläutert, wie Sie den vertraulichen Vault-Speicher in Go verwenden, auf die Vault-API zugreifen und Vault nutzen, um Sicherheit und Komfort bei der Verwaltung der vertraulichen Informationen Ihrer Anwendung zu bieten.

  1. Vault installieren

Zuerst müssen Sie Vault installieren und den Vault-Server starten. Sie können auf der offiziellen Website von Vault die für Ihr Betriebssystem geeignete Binärdatei herunterladen. Vergewissern Sie sich vor der Installation, dass Backend-Speicher wie Consul oder etcd installiert wurde. Starten Sie als Nächstes die Vault-Anwendung mit dem folgenden Befehl:

$ vault server -dev

Dadurch wird der Vault-Server gestartet und der Entwicklungs-/Testmodus aktiviert. Im Entwicklungs-/Testmodus wird der Vault-Server unverschlüsselt im Speicher gespeichert und nur für Entwicklungstestzwecke verwendet. In einer Produktionsumgebung müssen Sie den Vault-Server und den Backend-Speicher mit einer sicheren Konfiguration starten.

  1. Vault konfigurieren

Sobald der Vault-Server gestartet ist, müssen wir eine Vault-Konfiguration erstellen, in der vertrauliche Informationen gespeichert werden. Zunächst muss eine neue geheime Engine erstellt werden.

$ vault secrets enable -path=secret kv

Dadurch wird eine geheime Engine mit dem Namen „secret“ auf dem Vault-Server erstellt und ihr Typ auf „kv“ gesetzt. Sie können Vault Secrets List verwenden, um alle Secret Engines auf dem Vault-Server anzuzeigen. vault secrets list查看Vault服务器上的所有秘密引擎。

接下来,需要将敏感数据存储到Vault密钥存储空间中。在本例中,我们将存储JWT(JSON Web Token)的签名密钥。可以使用vault kv put

Als nächstes müssen sensible Daten im Vault-Schlüsselspeicherplatz gespeichert werden. In diesem Beispiel speichern wir den Signaturschlüssel für JWT (JSON Web Token). Daten können mit dem Befehl vault kv put wie unten gezeigt im Vault-Schlüsselspeicherplatz gespeichert werden:

$ vault kv put secret/jwt secretkey=shhhnotsosecret

Der obige Befehl speichert ein Schlüssel/Wert-Paar mit dem Namen „jwt“ und verwendet „secretkey“. Der Schlüssel speichert den Wert „shhhnotsosecret“ im Abschnitt.
  1. Vault in Go verwenden

Nachdem Vault konfiguriert wurde, müssen wir die Vault-API in Go verwenden, um vertrauliche Informationen zu lesen.

Zuerst müssen Sie die Vault-Client-API installieren. Die Vault-Client-API kann mit dem folgenden Befehl installiert werden.

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

Als nächstes müssen Sie einen neuen Vault-Client erstellen. Ein Vault-Client kann mit dem folgenden Befehl erstellt werden:

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
}

Der obige Code erstellt einen neuen Vault-Client und konfiguriert ihn für die Kommunikation mit dem Vault-Server, der auf localhost ausgeführt wird.

Als nächstes muss der Schlüssel aus dem Vault-Speicherbereich gelesen werden. Der Schlüssel kann mit dem folgenden Code aus dem Vault-Store bezogen werden:

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

if err != nil {
    // handle error
}

Der obige Code liest die Daten aus dem Schlüssel/Wert-Paar des Vault-JWT-Schlüssels. Wenn der Lesevorgang erfolgreich ist, wird ein Map[string]interface{}-Objekt zurückgegeben, das die Daten enthält.

Schließlich können wir den Schlüssel mit dem folgenden Code aus dem Schlüsselspeicher von Vault erhalten:

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

Der obige Code ruft das Signaturkennwort vom Vault-JWT-Schlüssel ab.
  1. Zusammenfassung

Vault ist ein Open-Source-Tool mit Funktionen wie sicherer Speicherung und dynamischer Zugriffskontrolle, was es zur besten Wahl für die Speicherung sensibler Informationen macht. Die Verwendung des vertraulichen Vault-Speichers in Go ist sehr einfach. Sie müssen lediglich den Vault-Server installieren, den Vault-Server konfigurieren und einen Vault-Client erstellen, um vertrauliche Daten in Vault zu verwalten. So stellen Sie sicher, dass sensible Daten geschützt sind und nur autorisierte Benutzer darauf zugreifen können. 🎜

Das obige ist der detaillierte Inhalt vonWie verwende ich den vertraulichen Vault-Speicher in Go?. 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