Maison >développement back-end >Golang >Comment utiliser le stockage confidentiel Vault dans Go ?
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.
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.
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
vault kv put
comme suit : $ vault kv put secret/jwt secretkey=shhhnotsosecretLa commande ci-dessus stockera une clé/valeur nommée "jwt" Oui, et stockez la valeur "shhhnotsosecret" dans la section en utilisant la clé "secretkey".
$ go get github.com/hashicorp/vault/apiEnsuite, 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.
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!