Maison >développement back-end >Golang >Gestion des clés dans Golang : comment utiliser Vault pour gérer les mots de passe de bases de données cryptés
Gestion des clés dans Golang : Comment utiliser Vault pour gérer les mots de passe de bases de données cryptés
Citation :
Pendant le processus de développement, il est crucial de protéger les données sensibles telles que les mots de passe des bases de données. Pour prévenir les risques de sécurité potentiels, les développeurs ont besoin d'un moyen sûr et fiable de gérer ces mots de passe. Cet article explique comment utiliser Vault pour gérer les mots de passe de bases de données cryptés afin de protéger la sécurité des données.
1. Introduction générale :
Vault est un outil open source utilisé pour gérer et protéger les informations sensibles. Il fournit un moyen centralisé de gérer et de distribuer en toute sécurité les mots de passe, les certificats et autres informations secrètes. Dans Golang, nous pouvons utiliser Vault pour gérer les mots de passe de bases de données cryptés.
2. Installez et configurez Vault :
Une fois l'installation terminée, vous devez démarrer le serveur Vault. Vous pouvez utiliser la commande suivante :
vault server -dev
Cette commande démarrera un serveur Vault en mode développement. Dans un environnement de production réel, vous devez utiliser différents paramètres pour démarrer le serveur Vault.
Ensuite, vous devez configurer le serveur Vault. Vous pouvez utiliser la commande suivante pour configurer le serveur Vault :
export VAULT_ADDR=http://127.0.0.1:8200
Cette commande définira l'adresse du serveur Vault sur l'adresse IP de la machine et définira le port sur 8200.
3. Utilisez Golang pour intégrer Vault :
Tout d'abord, vous devez installer le SDK de Vault dans Golang. Vous pouvez utiliser la commande suivante pour installer le SDK Vault :
go get github.com/hashicorp/vault/api
Importer le SDK Vault :
import ( "github.com/hashicorp/vault/api" )
Obtenir le client Vault :
func getVaultClient() (*api.Client, error) { config := &api.Config{ Address: os.Getenv("VAULT_ADDR"), } return api.NewClient(config) }
Utiliser le client Vault pour obtenir le mot de passe de la base de données :
func getDatabasePassword() (string, error) { client, err := getVaultClient() if err != nil { return "", err } secret, err := client.Logical().Read("secret/data/database") if err != nil { return "", err } password := secret.Data["password"].(string) return password, nil }
Ce code utilisera le client de Vault pour lire le secret nommé « secret/data/database » à partir du serveur Vault et renvoyer la valeur du secret.
Dans votre application, vous pouvez utiliser le code ci-dessus pour obtenir le mot de passe de la base de données cryptée :
password, err := getDatabasePassword() if err != nil { log.Fatal(err) } // 使用password连接到数据库
4. Résumé :
Utiliser Vault pour gérer les mots de passe de la base de données cryptée est un moyen efficace de protéger les données sensibles. En intégrant Golang à l'aide du SDK de Vault, nous pouvons obtenir en toute sécurité les mots de passe de base de données et les utiliser dans notre application. Cette approche offre une plus grande sécurité et prévient les risques de sécurité potentiels. J'espère que cet article vous aidera à comprendre comment utiliser Vault pour gérer les mots de passe de bases de données cryptés.
Exemple de code :
package main import ( "fmt" "log" "os" "github.com/hashicorp/vault/api" ) func getVaultClient() (*api.Client, error) { config := &api.Config{ Address: os.Getenv("VAULT_ADDR"), } return api.NewClient(config) } func getDatabasePassword() (string, error) { client, err := getVaultClient() if err != nil { return "", err } secret, err := client.Logical().Read("secret/data/database") if err != nil { return "", err } password := secret.Data["password"].(string) return password, nil } func main() { password, err := getDatabasePassword() if err != nil { log.Fatal(err) } fmt.Println("Database password: ", password) // Connect to the database using the password }
Remarques :
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!