作者:风之云织2004 | 来源:互联网 | 2023-01-29 12:30
目前我正在使用docker-compose文件来设置我的dev/prod环境.我正在使用环境变量来存储机密,数据库凭据等.经过一些搜索,我发现可以使用Vault来保护凭据.我尝试了几个带有保险库的基本示例,但我仍然不知道如何将Vault与docker-compose文件一起使用.有人能指出我一个正确的方法.如果Vault不是docker-compose的好解决方案,那么我可以使用哪些机制来保护凭证,而不是将它们作为纯文本存储在环境中.
1> StampyCode..:
这是我目前在开发中使用Vault的docker-compose配置,但我在生产中使用专用服务器(而不是Docker).
# docker_compose.yml
version: '2'
services:
myvault:
image: vault
container_name: myvault
ports:
- "127.0.0.1:8200:8200"
volumes:
- ./file:/vault/file:rw
- ./config:/vault/config:rw
cap_add:
- IPC_LOCK
entrypoint: vault server -cOnfig=/vault/config/vault.json
如果必须重建容器,则卷装入可确保保存Vault配置.
要使用'文件'后端,要使此设置可以为Docker/Git移植,您还需要创建一个名为的目录config
并将此文件放入其中,命名为vault.json
:
# config/vault.json
{
"backend": {"file": {"path": "/vault/file"}},
"listener": {"tcp": {"address": "0.0.0.0:8200", "tls_disable": 1}},
"default_lease_ttl": "168h",
"max_lease_ttl": "0h"
}
注:
虽然ROOT_TOKEN
在此配置静态的(不会改变之间的集装箱版本),任何生成VAULT_TOKEN
发出的app_role
每一个金库,必须启封时间将失效.
我发现当重新启动容器时,Vault有时会变得密封.