Node-Vault 开源项目教程
node-vault Client for HashiCorp's Vault 项目地址: https://gitcode.com/gh_mirrors/no/node-vault
1. 项目介绍
Node-Vault 是一个为 Node.js 编写的 HashiCorp Vault 的 HTTP API 客户端。HashiCorp Vault 是一个开源的秘密管理工具,用于加密、存储和严格控制敏感数据。Node-Vault 使得 Node.js 应用程序能够轻松地与 Vault 交互,以安全地管理秘密。
2. 项目快速启动
准备工作
- 确保你的系统中已安装 Node.js(版本 >= 16.0.0)。
安装
通过 npm 安装 Node-Vault:
npm install -S node-vault
初始化和启动 Vault
为了测试 Node-Vault,你需要在本地运行一个 Vault 实例。可以使用 Docker 来简化这个过程:
docker run -p 8200:8200 vault
编写示例代码
创建一个名为 example.js
的文件,并添加以下代码:
const vault = require('node-vault')({ apiVersion: 'v1', endpoint: 'http://127.0.0.1:8200' });
vault.init({ secret_shares: 1, secret_threshold: 1 })
.then(result => {
const keys = result.keys;
vault.token = result.root_token;
return vault.unseal({ secret_shares: 1, key: keys[0] });
})
.then(() => {
return vault.write('secret/hello', { value: 'world', lease: '1s' });
})
.then(() => {
return vault.read('secret/hello');
})
.then(() => {
return vault.delete('secret/hello');
})
.catch(console.error);
运行示例:
node example.js
3. 应用案例和最佳实践
存储和检索秘密
使用 Node-Vault,您可以轻松地存储和检索秘密。以下是一个简单的例子:
vault.write('secret/mysecret', { value: 's3cr3t' })
.then(() => {
return vault.read('secret/mysecret');
})
.then(secret => {
console.log(secret.value);
})
.catch(console.error);
Kubernetes 认证
Node-Vault 支持与 Kubernetes 集成的认证方式。以下是如何使用 Kubernetes 认证的一个示例:
const token = await fs.readFileSync('/var/run/secrets/kubernetes.io/serviceaccount/token', 'utf8');
vault.kubernetesLogin({ role: 'example-role', jwt: token, kubernetesPath: 'example-cluster'})
.then(result => {
// 使用返回的认证信息
})
.catch(console.error);
4. 典型生态项目
Node-Vault 可以与多种类型的 Node.js 项目集成,包括但不限于以下几种:
- Web 应用程序:保护用户会话和 API 密钥。
- 微服务:在服务之间安全地共享配置和凭据。
- CI/CD 管道:自动化秘密的管理和轮换。
通过将 Node-Vault 集成到您的项目中,您可以确保敏感数据的安全性,并遵循最佳的秘密管理实践。
node-vault Client for HashiCorp's Vault 项目地址: https://gitcode.com/gh_mirrors/no/node-vault
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考