问题描述
我正在测试 Vault + Consul 之间的集成,以保存我的机密并将它们存储在多台机器中。我可以毫无问题地从 Vault 中查看和插入/检索我的机密。
现在我正在尝试配置 SpringCloud 以从 Vault 使用我的机密(我遵循页面 https://cloud.spring.io/spring-cloud-vault/reference/html/)并且我的 bootstrap.yml 与示例类似:
host: localhost
port: 8200
scheme: https
uri: https://localhost:8200
connection-timeout: 5000
read-timeout: 15000
config:
order: -10
它也能用!我的应用程序可以看到 Vault 中的机密。
现在,我想了解的是领事如何与此相关联?因为在使用Consul的时候我在想不需要插入Vault的地址,Consul应该负责通知这个。但我没有发现任何与此相关的有用信息。
这里有什么想法吗?或者领事只会存储我的秘密而我仍然需要连接到 Vault?
解决方法
Consul 和 Vault 之间有几个潜在的集成点。
Consul 可用作 Vault (https://www.vaultproject.io/docs/configuration/storage/consul) 的存储后端。在 Vault 1.4 之前,Consul 是 Vault 推荐的存储后端。 Vault 1.4.0 为 Vault 自己的集成存储 (https://www.vaultproject.io/docs/concepts/integrated-storage) 引入了全面可用性,从而消除了对 Consul 的依赖。
集成产品的另一种方式是使用 Vault 的 Consul Secrets Engine 获取访问 Consul 的身份验证令牌。 Spring Cloud Vault 使用它通过 Vault (https://cloud.spring.io/spring-cloud-vault/reference/html/#vault.config.backends.consul) 获取 Consul 令牌。
如果在 Vault 中存储机密/密钥满足您的需求,则没有理由将 Consul 添加到您的环境中。