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

Gestion des clés dans Golang : utilisation de Vault pour stocker et accéder aux mots de passe

王林
Libérer: 2023-07-17 12:09:15
original
1470 Les gens l'ont consulté

Gestion des clés dans Golang : utilisez Vault pour stocker et accéder aux mots de passe

Introduction :
Dans le développement quotidien, nous avons souvent besoin d'utiliser des mots de passe et des informations sensibles pour nous connecter à des bases de données, accéder aux API, etc. Cependant, coder en dur ces mots de passe et informations sensibles directement dans le code n’est pas une pratique sécurisée. Pour mieux protéger ces informations sensibles, nous pouvons utiliser Vault comme outil de gestion de clés. Cet article explique comment utiliser Vault dans Golang pour stocker et accéder en toute sécurité aux mots de passe.

Qu'est-ce que Vault ?
Vault est un outil puissant développé par HashiCorp. Il fournit un moyen sécurisé de gérer les informations sensibles telles que les mots de passe, les clés API, etc. Vault utilise des politiques de stockage et d'accès cryptées pour protéger ces informations sensibles, garantissant que seuls les utilisateurs autorisés peuvent y accéder.

Utiliser Vault dans Golang :
Tout d'abord, nous devons installer Vault localement et démarrer le serveur Vault. La documentation d'installation et de démarrage de Vault peut être obtenue sur le site officiel https://www.vaultproject.io/.

Une fois le serveur Vault démarré, nous pouvons utiliser VaultClient dans l'application Golang pour obtenir et stocker les mots de passe.

Tout d'abord, nous devons ajouter les dépendances suivantes à notre projet Golang :

import (
    "github.com/hashicorp/vault/api"
)
Copier après la connexion

Ensuite, nous devons configurer l'adresse et les informations d'authentification du serveur Vault :

client, err := api.NewClient(&api.Config{
    Address: "http://localhost:8200", // 设置Vault服务器的地址
})

if err != nil {
    log.Fatal(err)
}

client.SetToken("YOUR_VAULT_TOKEN") // 设置Vault服务器的访问令牌
Copier après la connexion

Maintenant, nous pouvons utiliser VaultClient pour obtenir et stocker des mots de passe. Voici un exemple de code :

Obtenez le mot de passe de Vault :

func getPassword(path string) (string, error) {
    secret, err := client.Logical().Read("secret/data/" + path) // 从Vault中读取密码
    if err != nil {
        return "", err
    }

    password, ok := secret.Data["password"].(string)
    if !ok {
        return "", fmt.Errorf("Invalid password")
    }

    return password, nil
}
Copier après la connexion

Stockez le mot de passe dans Vault :

func storePassword(path, password string) error {
    data := map[string]interface{}{
        "password": password,
    }

    _, err := client.Logical().Write("secret/data/" + path, data) // 将密码存储到Vault中
    if err != nil {
        return err
    }

    return nil
}
Copier après la connexion

Comme vous pouvez le voir, lors de l'obtention du mot de passe, nous devons spécifier le chemin où le mot de passe est stocké dans Vault. Lors du stockage du mot de passe, nous devons fournir le mot de passe et le chemin de stockage.

En plus des mots de passe, nous pouvons également stocker et obtenir d'autres informations sensibles, telles que des clés API, des chaînes de connexion à une base de données, etc.

Résumé :
Dans cet article, nous avons appris à utiliser Vault dans les applications Golang pour stocker et accéder aux mots de passe. En utilisant Vault, nous pouvons gérer les informations sensibles de manière plus sécurisée et garantir que seuls les utilisateurs autorisés y ont accès. Grâce aux exemples de code ci-dessus, nous pouvons facilement intégrer Vault dans le projet Golang et protéger nos informations sensibles. J'espère que cet article vous aidera à mieux gérer vos mots de passe et vos informations sensibles.

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