首页 > 解决方案 > Hashicorp 保险库:无法使用节点保险库写入秘密

问题描述

我正在编写一个使用 Hashicorp 保险库来存储密码和证书的应用程序。现在我正在使用默认的用户名/密码方法来验证我的客户端应用程序。

当我尝试添加一个秘密时,我{ statusCode: 301, body: undefined }在设置apiVersion = v1和设置为时{ statusCode: 404, body: { errors: [] } }得到v2

配置:

let vaultOptions = {
    apiVersion: 'v2',
    endpoint: '0.0.0.0:8200'
};

const nodeVault = require('node-vault')(vaultOptions);
nodeVault.token = "secret token";

nodeVault.write('/secret/new', {"foo":"bar"}).then(
  function (value: any) {
    console.log(value);
  })
  .catch((err: any)=> {
    console.log(err);
  });

由于默认情况下已初始化保管库容器,因此我没有使用该init功能。

我想知道我在这里错过了什么。

标签: node.jstypescripthashicorp-vault

解决方案


该问题通过添加/data到路径得到解决,并且请求数据必须在对象内{"data": .....}

nodeVault.write('/secret/data/new', {"data": {"foo":"bar"}}).then(
  function (value: any) {
    console.log(value);
  })
  .catch((err: any)=> {
    console.log(err);
  });

这是因为 Vault 容器正在运行v2 engine


推荐阅读