如何在HashiCorp Vault Docker Compose文件中设置我自己的根令牌

时间:2018-04-24 21:07:20

标签: docker docker-compose hashicorp-vault

使用我当前的Vault docker撰写文件,我无法使用我的令牌登录,而令牌已设置为我的docker compose文件的一部分。当Vault容器启动时 - 它提供自己的根令牌以在Vault服务器中进行身份验证。每当我们启动新容器时,这都会不断变化,开发人员必须每次都从控制台记下它并使用该令牌登录Vault。

而不是我想设置为docker compose文件的一部分 - 我该怎么做。

请在下面找到我的码头撰写文件:

toString()

3 个答案:

答案 0 :(得分:3)

@Learn Java您可以通过在以下环境中传递 VAULT_DEV_ROOT_TOKEN_ID 来创建自己的根令牌,但要记住的一件事是,仅当您在开发模式下使用保管库时,此方法才有效完全推荐用于生产。

访问https://www.vaultproject.io/docs/commands/server.html

version: '3'
services:
myvault:
    image: vault
    container_name: myvault
    ports:
      - 8200:8200
    environment:
       VAULT_SERVER: "http://127.0.0.1:8200"
       VAULT_DEV_ROOT_TOKEN_ID: "my-token"

答案 1 :(得分:1)

首先,出于安全原因,不应将root令牌用于身份验证,因为它可以执行任何

  

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

现在,关于根令牌创建,来自vault documentation

  

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

     
      
  • 在保险库初始化时生成的初始根令牌 - 此令牌没有到期
  •   
  • 使用另一个根令牌;具有过期的根令牌无法创建永不过期的根令牌
  •   
  • 通过使用保险柜运营商generate-root(示例)并获得法定数量的非密封密钥持有者
  •   

对于您的情况,您可以考虑使用其他auth methods代替令牌身份验证,例如Userpass Auth Method

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

答案 2 :(得分:0)

遵循暖通空调文档 (https://hvac.readthedocs.io/en/stable/overview.html#initialize-the-client)

我能够使用以下 python 脚本获取 root 令牌:

import hvac
from icecream import ic
client = hvac.Client(url='http://localhost:8200')
ic(client.is_authenticated())
ic(client.sys.is_initialized())

shares = 5
threshold = 3

result = client.sys.initialize(shares, threshold)
ic(result['root_token'])
ic(result['keys'])

ic(client.sys.is_initialized())