Maison >développement back-end >Golang >Méthodes pratiques d'utilisation de Vault pour protéger les données privées dans les projets Golang

Méthodes pratiques d'utilisation de Vault pour protéger les données privées dans les projets Golang

王林
王林original
2023-07-17 22:09:051003parcourir

Un moyen pratique d'utiliser Vault pour protéger les données privées dans les projets Golang

Introduction :
À l'ère d'Internet d'aujourd'hui, la protection de la sécurité des données privées est une question à laquelle chaque développeur doit prêter attention. Dans le développement du projet Golang, comment stocker et utiliser les données sensibles en toute sécurité constitue un défi important. Vault est un outil open source de gestion de clés et de stockage sécurisé qui peut aider les développeurs à protéger efficacement les données privées. Cet article explique comment utiliser Vault pour protéger les données privées dans les projets Golang et donne des exemples de code correspondants.

1. Comprendre Vault
Vault est un outil développé par HashiCorp pour la gestion des clés et la protection des données sensibles. Il fournit un référentiel sécurisé pour stocker et accéder aux données sensibles telles que les mots de passe de base de données, les clés API, les clés de cryptage, etc. Vault utilise divers contrôles de sécurité, tels que le contrôle d'accès, le chiffrement et les journaux d'audit, pour garantir la sécurité des données stockées.

2. Utilisation de Vault dans les projets Golang
Ci-dessous, nous expliquerons comment utiliser Vault dans les projets Golang pour protéger les données privées.

  1. Installer Vault
    Tout d'abord, nous devons installer et exécuter le serveur Vault. Vault peut être téléchargé et installé via le lien suivant : https://www.vaultproject.io/downloads.html
  2. Démarrez le serveur Vault
    Une fois l'installation terminée, utilisez la commande suivante pour démarrer le serveur Vault :

    vault server -dev

    Après avoir exécuté cette commande, Vault Le serveur fonctionnera localement et nous pourrons accéder à l'interface de l'interface utilisateur Web via l'adresse http://127.0.0.1:8200.

  3. Initialiser Vault
    Lors du premier démarrage de Vault, nous devons initialiser Vault et définir le jeton racine. Utilisez la commande suivante pour initialiser Vault :

    vault operator init

    Une fois l'initialisation terminée, Vault générera une sortie contenant le jeton racine et la clé de déchiffrement.

  4. Configurer Vault
    Créez un fichier config.hcl pour configurer les paramètres de connexion de Vault : config.hcl文件,用于配置Vault的连接参数:

    storage "file" {
      path = "./data"
    }
    
    listener "tcp" {
      address     = "127.0.0.1:8200"
      tls_disable = 1
    }
  5. 连接Vault
    使用以下代码来连接Vault,并获取访问令牌:

    package main
    
    import (
     "fmt"
     "github.com/hashicorp/vault/api"
     "log"
    )
    
    func main() {
     config := api.DefaultConfig()
     config.Address = "http://127.0.0.1:8200"
     client, err := api.NewClient(config)
     if err != nil {
         log.Fatal(err)
     }
    
     client.SetToken("<root_token>")
     fmt.Println("Connected to Vault")
    
     // TODO: 进行Vault的操作
    }

    在代码中需要替换9f93380f96c7c67c367a96333072843a为实际的根令牌值。

  6. 存储和读取敏感数据
    使用以下代码来存储和读取敏感数据:

    package main
    
    import (
     "fmt"
     "github.com/hashicorp/vault/api"
     "log"
    )
    
    func main() {
     // 连接Vault的代码省略
    
     // 存储数据
     secret := map[string]interface{}{
         "username": "admin",
         "password": "secret123",
     }
     _, err := client.Logical().Write("secret/data/myapp", secret)
     if err != nil {
         log.Fatal(err)
     }
     fmt.Println("Data stored successfully")
    
     // 读取数据
     secretData, err := client.Logical().Read("secret/data/myapp")
     if err != nil {
         log.Fatal(err)
     }
     if secretData != nil {
         fmt.Println("Username:", secretData.Data["username"])
         fmt.Println("Password:", secretData.Data["password"])
     }
    }

    以上代码中,我们将usernamepassword存储在名为myapp的路径下,并通过Readrrreee

Connectez-vous à Vault

Utilisez le code suivant pour vous connecter à Vault et obtenir le jeton d'accès :
rrreee

Vous devez remplacer 9f93380f96c7c67c367a96333072843a par la valeur réelle du jeton racine dans le code. 🎜🎜🎜🎜Stockage et lecture des données sensibles🎜Utilisez le code suivant pour stocker et lire les données sensibles : 🎜rrreee🎜Dans le code ci-dessus, nous stockons le nom d'utilisateur et le mot de passe dans Under le chemin nommé myapp et lisez les données via la méthode Read. 🎜🎜🎜🎜3. Résumé🎜Cet article présente la méthode pratique d'utilisation de Vault pour protéger les données privées dans les projets Golang. En utilisant Vault, vous pouvez protéger efficacement les données sensibles et améliorer la sécurité des projets. Nous aidons les développeurs à stocker et à utiliser en toute sécurité des données privées dans les projets Golang en comprenant les concepts de base de Vault, en installant et en configurant le serveur et en donnant des exemples de code correspondants. 🎜

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