我在通过 runtimeconfig.v1beta1.config 资源声明在 Google 部署管理器中使用加密的 base64 编码值时遇到问题。
执行部署后,我使用 Deployment Manager 存储的值似乎与我使用 gcloud beta runtime-configs 检索的值完全不同。结果,我无法解密该值。
首先,我对一些秘密文本进行了加密和 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
。