我们有一个部署在CloudFoundry / Bluemix中的应用程序。应用程序从VCAP_SERVICES
环境变量读取其数据库连接。存储在环境变量中的db密码已加密,我们会在应用程序启动时对其进行解密。
我们正在关注Spring Cloud Service Connectors。云连接器是否提供任何挂钩,以便我们可以在创建DataSource实例之前从VCAP_SERVICES解密密码?
答案 0 :(得分:2)
你为什么要这样做?应用程序从哪里获取其解密密钥?如果它在应用程序中进行了硬编码,那么这是一个反模式会导致难以旋转密钥。如果它通过环境变量,那么它不比将未加密的数据库凭证存储为Cloud Foundry中的服务更安全 - CF中的服务只不过是特定于域的环境变量组。我无法看到加密它们会增加任何安全性。
回答这个问题:不是开箱即用的,但你可能会拦截作用于Cloud Foundry为你的应用提供的环境变量的Spring组件流。
创建ServiceInfo
个实例的抽象类是CloudFoundryServiceInfoCreator。你可以看看可能提供这个的自定义实现?有一个blog post describing how Spring Cloud Connectors works。您也可以扩展CloudFoundryConnector。