0

Spring Boot - 2.0.0.M3 Spring 云 - Finchley.M1

我想知道是否有人在使用数据库存储后端的生产设置中使用具有 vault 和 git 支持的 Spring Cloud 配置服务器。我已经使用 Vault 评估了 Spring 云配置,并考虑是否使用 Oracle JCE 来加密用户名/密码或 Vault 并寻求相同的建议。我们正在开发 Springboot/微服务。

以下是我的发现 -

  1. Vault 将引入一个额外的层,因此将引入额外的安全用例,在与 Vault 通信时进行审计。

  2. Spring cloud Config 执行器端点在此时为生成加密值而破坏了里程碑版本,如果我们寻求 Oracle JCE 支持,/encrypt /decrypt 可能无法工作,因此我们通过稳定版本生成加密值。

  3. 我们不希望使用 consul 服务器,而是尝试使用 Cassandra 作为存储后端。

  4. 我使用 AppRole 使用 Vault Authentication 后端并生成了一个具有读取权限的令牌(与根令牌不同,因为使用相同的令牌是不安全的)。但是,Spring Cloud 配置目前仅支持来自客户端的基于 Token 的身份验证。这意味着我们首先从 Vault 生成令牌,然后将其作为命令行/环境变量传递。一些额外的关注点是令牌的到期(尽管我们可以有非到期令牌不确定利弊)、重启、安全问题、实例化新的微服务。云配置端没有提供动态令牌/身份验证。

  5. 对于里程碑版本,我发现客户端加密/解密目前无法使用推荐的 RSA jar 包含。这是我打开的票。 https://github.com/spring-cloud/spring-cloud-config/issues/805#issuecomment-332491536

这些是我的一些观察,如果有任何案例研究/白皮书解决生产微服务环境的 Spring Cloud config vault 用例、设置和挑战,请分享您的想法。

谢谢

4

2 回答 2

0

感谢 Spring Cloud Vault 确实支持但不支持带有 Vault 的 Spring cloud config。唯一的方法似乎是将 X-Config-token 从微服务传递到配置服务器。我们对手动或通过脚本生成令牌的这一部分持怀疑态度。特别是在容器化和新的 MS 实例将产生时。不确定这种方法,尤其是在生产设置中。

于 2017-10-12T03:29:19.280 回答
0

感谢您与我联系。有人认为我会说 App Role 后端使用两个不同的令牌,并且 spring-cloud-config-vault 确实确实支持此功能,请参阅:http ://cloud.spring.io/spring-cloud-vault/single /spring-cloud-vault.html#_approle_authentication. 根据文档,我利用 Vault 的方式与利用配置服务器的方式相同。我不加密我的配置中的任何值,我只是不把它们放在那里。我将秘密值放在保险库中并让它服务于配置。只要键不发生冲突,您就不必弄乱任何东西,否则您可能需要调整优先级以使保险库获胜,再次查看我在上面指出的文档。我个人不会在 spring-cloud-config 中搞乱加密/解密。因为您必须将密钥签入 SCM 或将它们分发给您的团队以进行本地开发,所以您失去了拥有这些密钥 IMO 的价值。

于 2017-10-11T13:35:06.490 回答