在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置

Posted

技术标签:

【中文标题】在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置【英文标题】:Externalize Vault token/backend configuration for SpringBoot application on Pivotal Cloud Foundry 【发布时间】:2019-06-24 04:53:28 【问题描述】:

我需要外部化 Vault 令牌和后端以在我的 SpringBoot/Cloud 应用程序中使用,以便可以将相同的二进制文件部署到不同的 Pivotal Cloud Foundry 空间。例如我有一个.jar 我想pushDevTestQAPROD 空间而不必重建.jar

我还有一个由git 回购支持的ConfigServer 和一个User Provided Service,它们可以保存信息,但只是移动了外部化问题,并没有解决它。而且它会导致更多问题,特别是创建对象的顺序。

我正在努力获取 vault tokenvault backend 等相关信息,以使用来自 .jar 的外部化设置。

我能找到的所有示例都使用bootstrap.propertiesapplication.yml

spring:
  cloud:
    config:
      token: YourVaultToken

这显然行不通,因为它嵌入在 .jar 中并且是特定于环境的。

使用默认 Spring 魔术绑定的解决方案将不起作用,因为 我需要使用 VaultTemplate 手动进行调用。

外化客户端配置最惯用的方法是什么 如何连接到 Vault 并使用 VaultTemplate 阅读秘密,我不必重建 .jar 用于每个环境。

【问题讨论】:

【参考方案1】:

这是spring boot的配置。您可以使用环境变量 (SPRING_CLOUD_CONFIG_TOKEN=xxx) 或 java 系统属性 (-Dspring.cloud.config.token=xxx)。你也可以在 CF 上使用User Provided Services。

【讨论】:

这些建议都不能解决手动连接到保管库服务的问题。只是在ENV 中设置该令牌不允许我连接到保险库,还有其他必须设置的东西,backenduri 等。我已经尝试了这两个和两个 解决方案 在对象创建顺序方面存在缺陷。 无论哪种方式,这都不是真正的答案,而更像是评论。 不,不能手动使用VaultTemplate。它只适用于自动魔法属性绑定,这对我的场景来说是不够的。 抱歉,您似乎询问了如何将令牌外部化。也许您可以在问题中解释您要做什么。你没有在那里提到VaultTemplate

以上是关于在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 微服务在 Pivotal Cloud Foundry 平台上部署时无法通过 Kerberos 身份验证

Pivotal Cloud Foundry安全原理解析

Pivotal Cloud Foundry - Spring Cloud 服务

如何为 Pivotal Cloud Foundry 托管的 JSP/Servlet 应用程序从 SiteMinder 会话注销?

在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置

将Spring-boot Backbone应用程序部署到Pivotal Cloud Foundry中