当前位置: 首页 > 知识库问答 >
问题:

使用node-vault访问HashiCorp Vault KV secret

吴伟志
2023-03-14

我试图用“node-vault”访问HashiCorp Vault KV,但一直得到“statuscode:404”

$env:VAULT_ADDR="http://127.0.0.1:8200"
vault secrets enable -version=1 kv
vault status
Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    1
Threshold       1
Version         1.1.3
Cluster Name    vault-cluster-28a041c6
Cluster ID      0ec85d70-8e87-dff6-347f-b1959fad8b44
HA Enabled      false

3)然后使用

const rootKey = //whatever;
const unsealKey = //whatever;

var options = {
    apiVersion: 'v1',
    endpoint: 'http://127.0.0.1:8200',
    token: rootKey
};

var vault = require("node-vault")(options);
vault.unseal({ key: unsealKey })
    .then(() => {
        vault.write('secret/hello', { value: 'world' })
            .then((res) => console.log(res))
            .catch((err) => console.error(err));
    });

vault.write('secret/hello', { value: 'world', lease: '1s' })
    .then( () => vault.read('secret/hello'))
    .then( () => vault.delete('secret/hello'))
    .catch(console.error);

这返回一个状态404,另外需要做什么来避免404?

{ Error: Status 404
    at handleVaultResponse (XX\TestCodes\Node-VaultTest\node_modules\node-vault\src\index.js:49:21)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  response:
   { statusCode: 404,
     body:
      { request_id: '2992e6c2-5146-6569-1f48-55f75da88993',
        lease_id: '',
        renewable: false,
        lease_duration: 0,
        data: null,
        wrap_info: null,
        warnings: [Array],
        auth: null } } }
{ Error: Status 404
    at handleVaultResponse (XX\TestCodes\Node-VaultTest\node_modules\node-vault\src\index.js:49:21)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  response:
   { statusCode: 404,
     body:
      { request_id: '2f280fa4-6596-c06f-2168-091246e0a2a1',
        lease_id: '',
        renewable: false,
        lease_duration: 0,
        data: null,
        wrap_info: null,
        warnings: [Array],
        auth: null } } }

共有1个答案

司马昕
2023-03-14

您将kv存储作为版本1挂载。node-vault从版本2 kv存储中读取机密所使用的实际路径与Vault的版本1 kv存储不同且不兼容。

使用-version2安装kv存储。如果未指定,则默认为V1。

 类似资料:
  • Microsoft提供了几种方法来获得对Azure密钥存储库机密的安全访问,特别是使用托管身份或服务主体作为身份提供者。然而,这些方法被明确地设计用于处理基于Azure的资源,如web应用程序和微服务。它们不能与UWP/WINUI桌面应用程序一起工作。 到目前为止,我发现的允许UWP/WINUI桌面应用程序访问Key Vault的唯一方法是加载应用程序的Azure注册信息(TenentId、Cli

  • 问题内容: 我正在寻找一种在Java App(使用JDBC)中打开Access MDB文件的方法。 快速的Google搜索建议我为此需要JDBC-ODBC Bridge。 这是否意味着我需要配置要在其上运行应用程序的每个系统,以便为要打开的MDB提供ODBC DSN? 还有一个问题(因为我以前从未使用过ODBC):通信是通过某种套接字(以客户机/服务器方式)还是通过方法/函数调用(例如嵌入Derb

  • 我正在尝试编写一个Java程序,将Vault导出数据下载到Google云存储桶中,因为导出数据在两周后被删除。Vault数据与典型的GCS存储桶和对象标识关联,因此可能存储在GCS中。似乎有两个Java客户端库,com。谷歌。云存储和com。谷歌。应用程序编程接口。服务。存储,它似乎完成了我需要的功能,但以不同的方式工作,并使用不同的身份验证源(凭据对象)。如果我使用com。谷歌。应用程序编程接口

  • 问题内容: 我正在使用Access,并尝试复制在MSDN上发现的某些语法。不幸的是,Access语法中的FROM语句似乎有问题。我不知道为什么。 问题答案: MS Access中枢转的语法与sql server不同。您必须使用该功能来旋转数据。 语法将类似于以下内容:

  • 我已经使用了Azure vault Rest API,并在此页面上使用了“尝试”选项 https://docs.microsoft.com/en-us/rest/api/keyvault/vaults/createorupdate#uri-parameters。 我以用户身份登录。并使用这个API,试图创建一个保险库,并提供了对在azure应用程序上注册的同一租户下的应用程序的访问。 我面临的问题

  • 问题内容: 我正在尝试使用访存api来带回一些数据,但是一旦检索到它就无法将其映射到控制台。 我得到的错误是 response.map不是函数 所以我试图解析响应(即var data = JSON.parse),该响应不起作用,并显示错误 有趣的是,当对XMLHttp请求执行相同操作时,需要解析它,因此我也想知道为什么这两种检索数据方法之间的区别。 如果有人能指出正确的方向,我将不胜感激。 问题答