讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Go中使用Vault保密存储?

轻静君_7580

轻静君_7580

发布时间:2023-05-11 15:16:36

|

1708人浏览过

|

来源于php中文网

原创

在现代应用程序中,敏感数据的保密性非常关键,例如api密钥、数据库密码等等。为了保证安全性,这些敏感数据必须储存在安全存储中,并且只能被经过授权的用户访问。vault是一款由hashicorp开发的开源工具,具有安全存储和动态访问控制等功能,是实现存储敏感信息的最佳选择。

本文将讨论如何在Go中使用Vault保密存储,访问Vault API,并利用Vault提供安全性和便利性来管理应用程序的敏感信息。

  1. 安装Vault

首先需要安装Vault并启动Vault服务器。可以去Vault官网下载适合你操作系统的二进制文件。 在安装之前,确认已经安装了Consul或etcd等后端存储。接下来,启动Vault应用程序,可以使用以下的命令:

$ vault server -dev

这将启动Vault服务器,并且启用开发/测试模式。在开发/测试模式下,Vault服务器存储在内存中,并且未加密,仅用于开发测试目的。在生产环境中,您需要使用安全的配置来启动Vault服务器和后端存储。

  1. 配置Vault

一旦Vault服务器启动,我们需要创建一个Vault配置,用于存储敏感信息。首先,需要创建一个新的秘密引擎。

$ vault secrets enable -path=secret kv

这将在Vault服务器上创建一个名为“secret”的秘密引擎,并将其类型设置为“kv”。可以使用vault secrets list查看Vault服务器上的所有秘密引擎。

接下来,需要将敏感数据存储到Vault密钥存储空间中。在本例中,我们将存储JWT(JSON Web Token)的签名密钥。可以使用vault kv put命令将数据存储到Vault密钥存储空间,如下所示:

$ vault kv put secret/jwt secretkey=shhhnotsosecret

以上命令将存储一个名为“jwt”的键/值对,并使用“secretkey”键将“shhhnotsosecret”值存储在节中。

  1. 在Go中使用Vault

现在已经配置了Vault,接下来我们需要在Go中使用Vault API读取敏感信息。

Go语言(Golang)1.26.0
Go语言(Golang)1.26.0

Go语言(Golang)1.26.0版本官方下载,版本号 1.26.0,适合旧项目维护、兼容性测试和指定版本开发环境搭建。

下载

首先需要安装Vault客户端API。可以使用以下命令来安装Vault客户端API。

$ go get github.com/hashicorp/vault/api

接下来,需要创建一个新的Vault客户端。可以使用以下命令创建Vault客户端:

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
}

以上代码将创建一个新的Vault客户端,并将其配置为与运行在本地主机上的Vault服务器通信。

接下来,需要从Vault存储区中读取密钥。可以使用以下代码从Vault存储区中获取密钥:

secret, err := client.Logical().Read("secret/data/jwt")

if err != nil {
    // handle error
}

以上代码将从Vault JWT密钥的键/值对中读取数据。如果读取成功,则返回一个包含数据的map[string]interface{}对象。

最后,我们可以使用以下代码从Vault的密钥存储区中获取密钥:

key := secret.Data["data"].(map[string]interface{})["secretkey"].(string)

以上代码将从Vault JWT密钥中获取签名密码。

  1. 总结

Vault是一款开源工具,具有安全存储和动态访问控制等功能,是实现存储敏感信息的最佳选择。在Go中使用Vault保密存储非常容易。只需要安装Vault服务器、配置Vault服务器和创建Vault客户端就可以管理Vault中的敏感数据。通过这种方式,可以确保敏感数据得到保护,并且只有经过授权的用户才能访问它。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

0

2026.10.15

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

0

2026.10.15

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

0

2026.10.15

VS Code 怎么配置开发环境
VS Code 怎么配置开发环境

VS Code开发环境专题汇集编辑器安装、语言扩展、编译器、解释器、终端和调试配置文章,覆盖Java、Python、C++和PHP等常见语言的入门设置。

0

2026.10.15

C++ 开发环境怎么搭建
C++ 开发环境怎么搭建

C++开发环境专题汇集Windows、Linux下的编译器与IDE安装配置教程,涵盖GCC、Clang、Visual Studio、CLion和VS Code,以及编译运行首个程序的步骤。

0

2026.10.15

Python 虚拟环境是什么
Python 虚拟环境是什么

Python虚拟环境专题介绍项目依赖隔离的作用,汇集venv与uv创建、激活、退出及解释器切换的相关文章,并覆盖Windows、Linux和VS Code中的常见配置问题。

0

2026.10.15

Python 怎么安装并配置环境变量
Python 怎么安装并配置环境变量

Python安装与环境变量配置专题汇集Windows、macOS和Linux的安装步骤、PATH设置、pip配置及常见报错排查文章,帮助完成解释器安装并验证命令行可以正常运行。

0

2026.10.15

PHP 连接 MySQL 失败怎么办
PHP 连接 MySQL 失败怎么办

PHP连接MySQL失败专题汇集PDO与MySQLi扩展配置、账号权限、主机端口、套接字和认证方式等排查文章,覆盖连接报错、密码变更与容器环境配置,帮助按错误提示定位原因并修复。

0

2026.10.15

PHP 表单提交后如何获取数据
PHP 表单提交后如何获取数据

PHP表单提交后如何获取数据专题汇集HTML表单提交、GET与POST接收、$_POST和$_GET读取、跨文件传值、单选与下拉字段获取,以及空值和接收失败排查等文章,帮助新手完成从提交到处理的完整流程。

0

2026.10.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn