目前,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
默认情况下不包含任何内容的目录。阅读服务器配置文档,我没有看到为机密指定默认配置的方法。
我想添加一个模拟此命令的配置文件:
vault secrets enable -address=http://127.0.0.1:8200 -version=1 -path=myV1SecretPath kv
是否可以通过配置选项实现?或者我仅需要构建自己的Docker映像即可完成此操作?
使用配置文件无法做到这一点-在运行的服务器上启用引擎,而配置文件仅配置基本的服务器行为-监听接口,数据存储位置等。启动时有意义的事情。
同时,服务器在启动时无法访问,因为它是密封的(在您的情况下,它以开发人员模式运行,因此实际上将以未密封的方式启动,但这不是Vault设计的一般情况)。
您需要自己将此调用添加到自定义的Docker映像中(应该不太困难),或者作为包装docker-compose调用的脚本的一部分添加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句