首页 > 解决方案 > 如何在 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

标签: dockerdocker-composehashicorp-vault

解决方案


首先,出于安全原因,根令牌不应用于身份验证,因为它可以做任何事情

Vault 团队建议根令牌仅用于足够的初始设置(通常,设置允许管理员获取更多有限令牌所需的身份验证方法和策略)或在紧急情况下,并在不再需要后立即撤销。如果需要新的根令牌,则可以使用 operator generate-root 命令和相关的 API 端点即时生成一个。

现在,关于根令牌的创建,来自Vault 文档

创建根令牌只有三种方法:

  • 在保险库初始化时生成的初始根令牌 - 此令牌没有过期
  • 通过使用另一个根令牌;过期的根令牌无法创建永不过期的根令牌
  • 通过使用 Vault 操作员 generate-root (示例)并获得法定人数的解封密钥持有者的许可

对于您的情况,您可以考虑使用其他一些身份验证方法而不是令牌身份验证,例如Userpass Auth Method

Userpass Auth 将允许您为相同的用户角色设置相同的用户名/密码对。您可以创建一些脚本来启用此身份验证机制并为您的服务器的每个初始设置设置用户。


推荐阅读