导读:每一个应用程序都有需要保密的信息,这些信息可能包括数据库凭证,外部服务认证,甚至某些资源的位置。所有这些都统称为密钥。应用程序需要一个安全的地方来存储这些密钥,无论是在应用程序启动时还是在空闲时。
本文我们将讨论如何使用Vault进行密钥管理。
问题
如何安全地存储配置密钥?
解决方案
使用QuarkusVault(https://oreil.ly/UMKuH)
扩展插件去查找密钥。
在处理密钥时,最关键的是存储它们,使被禁止的用户无法读取,保护对密钥的访问,仅让需要这些密钥的服务可以访问它们。
Vault是一个为存储和使用密钥提供统一接口,并简化用例的工具。
关于 Vault
Vault(https://oreil.ly/UMKuH)是一个安全访问密钥的开源工具。如何在生产中运行Vault不在本书的讨论范围之内。
为了简化 Vault的安装,使用 VaultDocker 容器:
docker run --rm --cap-add=IPC_LOCK -eVAULT_ADDR=http://localhost:8200 \
-p8200:8200 --name=dev-vault vault:1.2.2
你可能需要设置以下环境变量:
$ exportVAULT_ADDR='http://0.0.0.0:8200'
解封密钥和根令牌显示在下面,以备你想封存 /解封 Vault或重新认证:
Unseal Key:s7WbMScSOh02ERK6XEfl6ep6BReRQZzl9VekrrnyKE8=
Root Token:s.ty3QS2uNaxPdiFsSZpCQfjpc ①
①令牌,用于初始化访问 Vault
在Vault容器内打开 shell,配置 Vault并添加一个 secret:
docker exec -it dev-vault sh
exportVAULT_TOKEN=s.ty3QS2uNaxPdiFsSZpCQfjpc ①
vault kv pu