【发布时间】:2020-08-04 11:51:28
【问题描述】:
我正在尝试将服务帐户设置为机密 - 我在一年前做过,它可以工作,但现在 - 无论我如何处理它,应用程序都看不到它,并说有 @987654321 @ - 创建普通秘密时,我知道你必须换行,所以
echo -n "secret" | base64
并将该值保密并应用,但我的多行文件
cat secret.json
{
"type": "service_account",
"project_id": "smth-smth",
"private_key_id": "blabla"
...
}
无论我如何处理 - 无论是像第一个示例中那样手动放置,还是使用
cat secret.json | base64
# or
base64 < secret.json
秘密已创建,但应用程序抛出
Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Input byte array has incorrect ending byte at 3104
当我将新密钥与服务帐户的最后一个密钥进行比较时,区别在于输出的样子
工作是这样的——当我尝试解密 base64 时
echo -n "<long string of base64 encrypred sa> | base64 -D
{ "type": "service_account", "project_id": "blabla"... }
所以它在一行中,我尝试解密的新 SA 以文件中的格式输出 - 所以 json 的每一部分都在新行中 - 我尝试手动将它们全部放在一行中但没有成功
有人知道吗?如何正确地将多行文件放入秘密(base64)中?
【问题讨论】:
-
您是在使用
Google Kubernetes Engine- 云提供商还是只使用 Kubernetes?您使用的是什么 Kubernetes 版本?你是如何创造这个秘密的? -
是的 GKE,只是将变量中的普通 base64 直接从文档中放入一个秘密中,那里没有魔法,秘密的格式在 kuberentes 版本中改变了那么多吗?运行最新或可能是一个月前的版本,所以不要认为这是问题
标签: kubernetes google-kubernetes-engine kubernetes-helm