【发布时间】:2018-07-12 11:10:06
【问题描述】:
我在 Google 部署管理器中通过 runtimeconfig.v1beta1.config 资源声明使用加密的 base64 编码值时遇到问题。
在我执行部署后,我使用 Deployment Manager 存储的值似乎与我使用 gcloud beta 运行时配置检索的值完全不同。结果,我无法解密该值。
首先我对一些秘密文本进行了加密和base64编码:
$ echo "secret"|gcloud kms encrypt --key my-crypto-key \
--keyring my-keyring --location australia-southeast1 \
--plaintext-file - --ciphertext-file - | base64 -w0
CiQAsOSNmVXBs2ayUjRePnE5+Oi5dUPuVvjn6UKKUXgxMTA56koSMABDkVUGnXlocFgdUEsQ5qLCF3PVIz5zit+ZCSXjSvNzEAO5XRv6WBRkxBJMjVcheg==
然后我将其存储在部署管理器 YAML 文件中:
resources:
- name: my-config
type: runtimeconfig.v1beta1.config
properties:
config: my-config
description: "A demo configuration"
- name: dummy-secret
type: runtimeconfig.v1beta1.variable
properties:
parent: $(ref.my-config.name)
variable: 'dummy/secret'
value: "CiQAsOSNmVXBs2ayUjRePnE5+Oi5dUPuVvjn6UKKUXgxMTA56koSMABDkVUGnXlocFgdUEsQ5qLCF3PVIz5zit+ZCSXjSvNzEAO5XRv6WBRkxBJMjVcheg=="
然后我创建部署(完成时没有错误或警告):
$ gcloud deployment-manager deployments create my-config \
--config my-config.yaml
但是当我尝试提取变量值时,它与我存储的完全不同:
$ gcloud beta runtime-config configs variables \
get-value 'dummy/secret' --config-name my-config|base64 -w0
CiQAPz8/P1U/P2Y/UjRePnE5Pz8/dUM/Vj8/P0I/UXgxMTA5P0oSMABDP1UGP3locFgdUEsQPz8/F3M/Iz5zPz8/CSU/Sj9zEAM/XRs/WBRkPxJMP1cheg==
这是可重复的/可重现的,我不知道我做错了什么。使用gcloud beta runtime-config variables set 后跟get-value 没有这个问题。
【问题讨论】:
标签: google-cloud-platform google-deployment-manager google-cloud-kms