Heim >Backend-Entwicklung >Golang >Wie verwende ich den vertraulichen Vault-Speicher in Go?
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.
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.
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
vault kv put
wie unten gezeigt im Vault-Schlüsselspeicherplatz gespeichert werden: $ vault kv put secret/jwt secretkey=shhhnotsosecretDer obige Befehl speichert ein Schlüssel/Wert-Paar mit dem Namen „jwt“ und verwendet „secretkey“. Der Schlüssel speichert den Wert „shhhnotsosecret“ im Abschnitt.
$ go get github.com/hashicorp/vault/apiAls 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.
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!