docker - 如何在 HashiCorp Vault Docker Compose 文件中设置我自己的根令牌
问题描述
使用我当前的 Vault docker compose 文件,我无法使用我设置为 docker compose 文件的一部分的令牌登录。当 Vault 容器启动时 - 它提供自己的根令牌以在 Vault 服务器中进行身份验证。每当我们启动新容器时,这种情况就会不断变化,开发人员每次都必须从控制台记下它并使用该令牌登录 Vault。
而不是我想设置为 docker compose 文件的一部分 - 我该怎么做。
请在下面找到我的 docker compose 文件:
version: '3'
services:
myvault:
image: vault
container_name: myvault
ports:
- "192.168.99.100:8200:8200"
environment:
VAULT_SERVER: "http://192.168.99.100:8200"
TOKEN: mysuper-secret-vault-token
volumes:
- ./file:/vault/file:rw
- ./config:/vault/config:rw
cap_add:
- IPC_LOCK
解决方案
首先,出于安全原因,根令牌不应用于身份验证,因为它可以做任何事情。
Vault 团队建议根令牌仅用于足够的初始设置(通常,设置允许管理员获取更多有限令牌所需的身份验证方法和策略)或在紧急情况下,并在不再需要后立即撤销。如果需要新的根令牌,则可以使用 operator generate-root 命令和相关的 API 端点即时生成一个。
现在,关于根令牌的创建,来自Vault 文档:
创建根令牌只有三种方法:
- 在保险库初始化时生成的初始根令牌 - 此令牌没有过期
- 通过使用另一个根令牌;过期的根令牌无法创建永不过期的根令牌
- 通过使用 Vault 操作员 generate-root (示例)并获得法定人数的解封密钥持有者的许可
对于您的情况,您可以考虑使用其他一些身份验证方法而不是令牌身份验证,例如Userpass Auth Method。
Userpass Auth 将允许您为相同的用户角色设置相同的用户名/密码对。您可以创建一些脚本来启用此身份验证机制并为您的服务器的每个初始设置设置用户。
推荐阅读
- javascript - 从 Lambda 调用 Rest API(JS;Web 控制台)
- google-bigquery - 我想从重复字段的大查询中获取数据到重复
- python - Python 中没有指针;那么如何在不重复自己的情况下将值批量赋值给变量?
- javascript - 解决 Cloud Functions 中的“TypeError:无法读取未定义的属性‘数据’”
- jquery - JQuery 到 Angular-Typescript
- unit-testing - 在 buildSrc 目录中运行测试用例的问题
- github - 为什么 GitHub 检查不反映 Azure Pipelines 构建状态?
- sql - SQL Server Where 子句性能
- flutter - 当我双击flutter_console.bat时,它是在一秒钟内打开和关闭自己?
- android - 如何使 SwipeRefreshLayout wrap_content?