Maison  >  Article  >  développement back-end  >  Comment utiliser le stockage confidentiel Vault dans Go ?

Comment utiliser le stockage confidentiel Vault dans Go ?

PHPz
PHPzoriginal
2023-05-11 15:16:361375parcourir

Dans les applications modernes, la confidentialité des données sensibles telles que les clés API, les mots de passe des bases de données, etc. est essentielle. Pour garantir la sécurité, ces données sensibles doivent être stockées dans un stockage sécurisé et accessibles uniquement aux utilisateurs autorisés. Vault est un outil open source développé par HashiCorp. Il possède des fonctions telles que le stockage sécurisé et le contrôle d'accès dynamique, et constitue le meilleur choix pour stocker des informations sensibles.

Cet article explique comment utiliser le stockage confidentiel Vault dans Go, accéder à l'API Vault et exploiter Vault pour assurer la sécurité et la commodité de gérer les informations sensibles de votre application.

  1. Installer Vault

Vous devez d'abord installer Vault et démarrer le serveur Vault. Vous pouvez accéder au site officiel de Vault pour télécharger le fichier binaire adapté à votre système d'exploitation. Avant l'installation, confirmez que le stockage backend tel que Consul ou etcd a été installé. Ensuite, démarrez l'application Vault à l'aide de la commande suivante :

$ vault server -dev

Cela démarrera le serveur Vault et activera le mode développement/test. En mode développement/test, le serveur Vault est stocké en mémoire et non chiffré et est utilisé uniquement à des fins de tests de développement. Dans un environnement de production, vous devez utiliser une configuration sécurisée pour démarrer le serveur Vault et le stockage principal.

  1. Configurer Vault

Une fois le serveur Vault démarré, nous devons créer une configuration Vault pour stocker les informations sensibles. Tout d’abord, un nouveau moteur secret doit être créé.

$ vault secrets enable -path=secret kv

Cela créera un moteur secret nommé "secret" sur le serveur Vault et définira son type sur "kv". Vous pouvez utiliser la liste des secrets du coffre-fort pour afficher tous les moteurs de secrets sur le serveur Vault. vault secrets list查看Vault服务器上的所有秘密引擎。

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

Ensuite, les données sensibles doivent être stockées dans l'espace de stockage des clés du Vault. Dans cet exemple, nous stockerons la clé de signature pour JWT (JSON Web Token). Les données peuvent être stockées dans l'espace de stockage des clés du coffre-fort à l'aide de la commande vault kv put comme suit :

$ vault kv put secret/jwt secretkey=shhhnotsosecret

La commande ci-dessus stockera une clé/valeur nommée "jwt" Oui, et stockez la valeur "shhhnotsosecret" dans la section en utilisant la clé "secretkey".
  1. Utiliser Vault dans Go

Maintenant que Vault a été configuré, nous devons utiliser l'API Vault dans Go pour lire les informations sensibles.

Vous devez d'abord installer l'API du client Vault. L'API du client Vault peut être installée à l'aide de la commande suivante.

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

Ensuite, vous devez créer un nouveau client Vault. Un client Vault peut être créé à l'aide de la commande suivante :

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
}

Le code ci-dessus créera un nouveau client Vault et le configurera pour communiquer avec le serveur Vault exécuté sur localhost.

Ensuite, la clé doit être lue depuis la zone de stockage du coffre-fort. La clé peut être obtenue dans la boutique Vault en utilisant le code suivant :

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

if err != nil {
    // handle error
}

Le code ci-dessus lira les données de la paire clé/valeur de la clé Vault JWT. Si la lecture réussit, un objet map[string]interface{} contenant les données est renvoyé.

Enfin, nous pouvons obtenir la clé du magasin de clés de Vault en utilisant le code suivant :

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

Le code ci-dessus obtiendra le mot de passe de signature de la clé Vault JWT.
  1. Summary

Vault est un outil open source avec des fonctions telles que le stockage sécurisé et le contrôle d'accès dynamique, et constitue le meilleur moyen de stocker des données sensibles. informations choisir. Utiliser le stockage confidentiel Vault dans Go est très simple. Il vous suffit d'installer le serveur Vault, de configurer le serveur Vault et de créer un client Vault pour gérer les données sensibles dans Vault. De cette façon, vous garantissez que les données sensibles sont protégées et que seuls les utilisateurs autorisés peuvent y accéder. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn