Maison > développement back-end > Golang > le corps du texte

Gestion des clés dans Golang : comment utiliser Vault pour gérer les mots de passe de bases de données cryptés

WBOY
Libérer: 2023-07-19 16:37:28
original
1639 Les gens l'ont consulté

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 :

  1. Tout d'abord, vous devez installer Vault. Vous pouvez télécharger la dernière version de Vault depuis le site officiel de Vault et l'installer conformément à la documentation officielle.
  2. Une fois l'installation terminée, vous devez démarrer le serveur Vault. Vous pouvez utiliser la commande suivante :

    vault server -dev
    Copier après la connexion

    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.

  3. 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
    Copier après la connexion

    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 :

  1. 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
    Copier après la connexion
  2. Importer le SDK Vault :

    import (
        "github.com/hashicorp/vault/api"
    )
    Copier après la connexion
  3. Obtenir le client Vault :

    func getVaultClient() (*api.Client, error) {
        config := &api.Config{
            Address: os.Getenv("VAULT_ADDR"),
        }
        return api.NewClient(config)
    }
    Copier après la connexion
  4. 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
    }
    Copier après la connexion

    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.

  5. 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连接到数据库
    Copier après la connexion

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
}
Copier après la connexion

Remarques :

  1. L'exemple ci-dessus est exécuté en fonction du mode de développement du serveur Vault, en utilisant l'adresse IP locale et le port 8200 par défaut. Dans un environnement de production réel, vous devez utiliser l'adresse et le port corrects.
  2. Dans le serveur Vault, vous devez ajouter un mot de passe nommé "secret/data/database" afin que le code ci-dessus puisse obtenir correctement le mot de passe.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal