问题标签 [hashicorp-vault]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1130 浏览

consul - 如何在外部服务器上设置保管库

我已经能够通过以下 .hcl 文件在本地主机上使用 Vault。

我想在云中的盒子上安装保险库,我的团队需要单独查询和使用保险库。关于如何做到这一点的任何提示?

我应该将所有流量从端口 80 重定向到盒子上的 localhost 以使用 API 吗?

使用以下库https://github.com/ianunruh/hvac

谢谢

0 投票
0 回答
3430 浏览

java - java.security.cert.CertificateException:从弹簧服务器连接保险库服务器时找不到与本地主机匹配的名称

我有启用 TLS 的保险库领事和服务器以及与保险库连接以读取机密的 Spring 应用程序服务器,但是当创建 VaultPropertySource bean 时,它会尝试连接我的保险库服务器“ https://localhost:8200/v1/secret/myapp ” 并且以某种方式失败并出现异常“java.security.cert.CertificateException:从弹簧服务器连接保险库服务器时找不到与本地主机匹配的名称”

请注意,我已经从控制台生成了自签名证书:

0 投票
1 回答
304 浏览

c# - 使用 Hashcorp Vault 密码更新 npgsql 池连接

我正在研究使用Hashicorp 的 Vault软件在我的 C# Web 服务应用程序中使用VaultSharp postgresql 秘密后端来管理 Postgres 数据库密码。

这些应用程序使用具有持久连接的数据库池连接到 PostgreSql 服务器。

我的理解是,在此设置中,Vault 将动态生成和撤销提供给我的应用程序的数据库用户名和密码。

但是我不清楚的是,我的应用程序是否有一种自动化的方式可以在租约到期之前动态地重新验证到数据库服务器?或者我是否需要手动管理我的持久数据库连接并在租约到期之前手动断开/重新连接它们?

我希望这将是 npgsql 或可以为我处理此问题的类似数据库驱动程序中的一个功能,或者是否有一种方法可以在现有连接上使用新的用户名和密码重新进行身份验证。

0 投票
1 回答
2217 浏览

docker - 如何从 HashiCorp 的 Vault HTTP API 中获取秘密到 docker 容器中?

尝试使用 HTTP API 从 HashiCorps Vault 获取秘密到 dockerfile 内的环境变量中。需要从私有 git 存储库下载文件的秘密。

Dockerfile相关部分

docker-compose.yml相关部分

运行docker-compose build返回以下输出:

看起来PRIVATE_TOKEN没有在指定位置设置。它只是从私有存储库下载登录页面。

0 投票
1 回答
1110 浏览

oauth2 - 使用 Hashicorp Vault 在 OAuth2 密码流中存储客户端 ID 和机密

我是 Hashicorp Vault 的新手。我希望使用 Hashicorp Vault 为 OAuth2 密码流保护我的客户端 ID 和密码。每次调用我的后端 REST API 时,它都需要客户端 ID 和密码,以及用户名和密码的用户凭据。我将如何以安全的方式做到这一点,并且只让我的应用程序通过它而不在我的 javascript 客户端中披露它?

谢谢。

约翰

0 投票
1 回答
8813 浏览

ansible - 将 Hashicorp Vault 与 Ansible 一起使用 - 插件设置

我想使用 Hashicorp Vault 和 Ansible 来检索我将在 Ansible playbook 中使用的用户名/密码。

保险柜已设置 - 我创建了一个秘密。整合两者的步骤是什么?关于插件的文档不是很好。我尝试了从 ansible 查找文件,这可行,但是如何使用 3rd 方插件?有人可以帮助我遵循以下步骤吗?

  1. 安装插件,pip install ansible-modules-hashivault
  2. 与https://github.com/jhaals/ansible-vault 2.a有什么区别
    我把环境变量(VAULT ADDR & VAULT TOKEN)放在哪里?
  3. 更改ansible.cfg为指向vault.py位于我的 Ansible 项目的“插件”文件夹中的点
  4. 要测试基本集成,我可以使用以下剧本吗? https://pypi.python.org/pypi/ansible-modules-hashivault

    /li>

试过这个,但我得到:

0 投票
2 回答
2344 浏览

hashicorp-vault - HashiCorp Vault 密封问题

我已经开始使用 Hashicorp 的 Vault 来管理机密,并且对 Vault 的日常密封有一些疑问。我的工作流程有两个身份验证后端;特定用户以写入权限访问 Vault 以添加新的秘密,服务器对他们需要的秘密具有只读访问权限。

1) 正常情况下,Vault是否处于非密封状态?我相信它作为一个动态配置的服务器不应该协调解封。

2) 对场外工作人员进行密封的目的是为了轮换钥匙和防入侵吗?

3) 确保 Vault 进程始终运行的最佳实践是什么,因为如果它死了,Vault 将被密封?此外,在高可用配置中,如果一个 Vault 节点的进程死亡,它是否会为所有人密封 Vault?

0 投票
1 回答
823 浏览

encryption - HashiCorp Vault 项目 - 支持的加密算法

Vault 项目具有以下特点:

数据加密:Vault 可以在不存储数据的情况下加密和解密数据。这允许安全团队定义加密参数,开发人员可以将加密数据存储在 SQL 等位置,而无需设计自己的加密方法。

过境秘密后端

传输秘密后端处理传输中数据的加密功能。保险柜不存储发送到后端的数据。它也可以被视为“密码学即服务”。

  1. 它是否支持使用 secp192r1 曲线的 ECDSA?
  2. POST /transit/keys/<name>- 创建指定类型的新命名加密密钥,稍后可用于加密/解密或签名/验证。它是否创建私有和公共密钥对?有什么方法可以获取/输出公钥吗?
  3. 是否可以创建自定义秘密后端来执行加密操作但不会返回私钥?
0 投票
1 回答
246 浏览

hashicorp-vault - 访问秘密存储的服务

我试图了解人类、服务和秘密商店之间的相互作用。我一直在查看 HashiCorp Vault 文档和教程,以尝试更好地理解。我正在使用 Vault 而不是下面更繁琐的“秘密商店”:

用例是当服务需要访问 Vault 以获取机密(例如 db 连接字符串)时。使用凭据配置服务以访问 Vault 的人似乎也知道这些凭据,并且可以随时冒充该服务。

另一方面,如果 Vault 也是服务的身份提供者,它可以提供一次性使用的初始凭据,以便在服务初始化期间使用。然后,这些被轮换出来。此时,人类无法模拟他们在“正常操作”期间设置的服务。

但是,我没有在文档中阅读过这个用例,所以我很困惑。

为了更清楚起见,我知道最终必须信任某人。例如,操作工程师可以拥有自己的凭据来访问 Vault 并获取同一数据库的密码。这将允许用户访问,但不允许该用户模拟服务。是否有任何理由让操作工程师在初始化后还应该知道服务自己的凭据以访问 Vault?

0 投票
2 回答
5064 浏览

terraform - (远程)状态文件中的 Terraform 和明文密码

Terraform repo 上有很多关于这个问题的 Git 问题,有很多有趣的评论,但到目前为止,我仍然看不到这个问题的解决方案。

Terraform 将纯文本值(包括密码)存储在 tfstate 文件中。

大多数用户都需要远程存储它们,以便团队可以在相同的基础设施上同时工作,其中大多数用户将状态文件存储在 S3 中。

那么如何隐藏密码呢?

这里有人使用 Terraform 进行生产吗?您是否以纯文本形式保存密码?您是否有特殊的工作流程来删除或隐藏它们?当你运行terraform applythen 时会发生什么?

我考虑了以下选项:

  • 将它们存储在 Consul 中 - 我不使用 Consul
  • 从状态文件中删除它们 - 这每次都需要执行另一个进程,我不知道 Terraform 将如何处理具有空/不可读/无效密码的资源
  • 存储一个默认密码,然后更改(因此 Terraform 在 tfstate 文件中将有一个无效密码) - 与上面相同
  • 使用 Vault 资源 - 听起来这还不是一个完整的工作流程
  • 使用 git-repo-crypt 将它们存储在 Git 中 - Git 也不是一个选项
  • 全局加密 S3 存储桶 - 如果人们以“管理员”级别访问 AWS,这不会阻止人们看到纯文本密码,但这似乎是迄今为止最好的选择

从我的角度来看,这是我希望看到的:

  • 状态文件不包含密码
  • 状态文件已加密
  • 状态文件中的密码是指向其他资源的“指针”,例如“vault:backend-type:/path/to/password”
  • 每次 Terraform 运行都会从指定的提供者那里收集所需的密码

这只是一个愿望。

但回到这个问题 - 你如何在生产中使用 Terraform?