具有默认秘密路径(v1)的Hashicorp Vault配置文件

问题描述 投票:1回答:1

我正在为我的项目使用Vault,并使用Go API

当前,API仅支持/v1路径,这很好。我的问题是,在我的开发配置中,我有一个docker-compose.yml文件,该文件使用以下简单配置进行设置:

version: '3.7'

services:
  my-vault:
    image: library/vault:1.4.0
    container_name: my-vault
    cap_add:
      - IPC_LOCK
    environment:
      VAULT_DEV_ROOT_TOKEN_ID: devroot
      VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
    ports:
      - 8200:8200

当我通过UI手动创建我的秘密引擎(并将其显式设置为V1时),我可以使用我的代码了。我只需设置数据,Go库就可以像一个超级按钮一样工作:

client, err := vault.NewClient(vault.DefaultConfig())
if err != nil {
    panic(err)
}

myMapValues := map[string]interface{}{}
myMapValues["mykey"] = "someSecretValue"

_, err := client.Logical().Write("myV1SecretPath/hello", myMapValues)
if err != nil {
    panic(err)
}

在Docker容器中,我看到:

/ # ps aux | grep vault
    6 vault     0:07 vault server -config=/vault/config -dev-root-token-id=devroot -dev-listen-address=0.0.0.0:8200 -dev

我在那里看到配置位置被设置为目录/vault/config,默认情况下该目录不包含任何内容。读取Server Configuration documentation时,看不到为机密指定默认配置的方法。

我想添加一个模拟此命令的配置文件:

vault secrets enable -address=http://127.0.0.1:8200 -version=1 -path=myV1SecretPath kv

这是否可以通过配置选项来完成,或者我只需要构建自己的Docker映像即可完成此操作?

docker hashicorp-vault
1个回答
0
投票

这不能通过配置文件来完成-启用引擎是在运行中的服务器上完成,而配置文件仅配置服务器的基本行为-监听接口,数据存储位置等。开始时有意义的事情-向上。

与此同时,服务器由于处于密封状态而无法在启动时访问存储(在您的情况下,它以开发模式运行,因此实际上将以未密封状态启动,但这不是Vault设计的一般情况。) >

[您将需要自己将此调用添加到自定义的Docker映像(应该不太困难),或者作为包装docker-compose调用的脚本的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.