具有默认秘密路径的 Hashicorp Vault 配置文件 (v1)
Hashicorp Vault configuration file with default secret path (v1)
我正在与 Vault for my project and using the 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 图像(应该不会太难),或者作为包装您的 docker-compose 调用的脚本的一部分.
我正在与 Vault for my project and using the 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 图像(应该不会太难),或者作为包装您的 docker-compose 调用的脚本的一部分.