首页 > 解决方案 > 无法从 Spring Cloud 配置或环境变量中解密属性

问题描述

我正在尝试让我的 KMS 库(在此处找到)来解密来自我的 application.yml 的项目,这些项目来自谷歌云配置服务器或环境变量。

在玩耍时,我尝试了多种方案来使其正常工作。理想情况下,我希望能够执行以下操作:

username: '{cipher}${db_username}${db_username}我从谷歌云配置中读取的属性或环境变量在 哪里。

到目前为止,我已经尝试过:

✅<code>username: ${username} -> 成功地从云配置或环境变量中读取纯文本属性。(无加密)

✅<code>username: '{cipher}MyEncodedString' -> Success - 解码提供的内联字符串

❗️ username: '{cipher}${username}'-> 我相信这是在尝试使用文字字符串${username}

❗️ username: '{cipher}'${username}-> 格式无效/无法读取

因为当我将字符串内联时我可以看到我的解码正在工作,所以我不认为这是解码器的问题。

我也可能很笨,这不是我想要做的场景,但对我来说,将这些存储在配置区域并让应用程序/配置文件拉入并解密它需要的内容似乎是合乎逻辑的。

如果它有所作为,而在这一点上我觉得没有,我正在尝试在 Google Cloud Run + Java + Jib 上完成所有这些

标签: javaspring-bootspring-cloud-configgoogle-cloud-rungoogle-cloud-kms

解决方案


您可以尝试使用属性文件吗?属性文件不需要 {cipher} 的单引号。机会少,但可以工作。


推荐阅读