当前位置: 首页 > 知识库问答 >
问题:

无法将(gke内部)保险库映射到谷歌KMS

康锦
2023-03-14

我们希望在我们的GKE集群中部署Hashicorp Vault(Banzai Cloud的fork),然后将其映射到Cloud KMS/FireStore。我们已经在EKS/S3/AWS KMS上做到了,它工作得很好。

然而,在GKE上,保险库吊舱正在崩溃,并出现以下错误消息:

2021-02-09T11:36:46.455Z [WARN]  storage migration check error: error="failed to read value for "core/migration": googleapi: got HTTP response code 403 with body: <?xml version='1.0' encoding='UTF-8'?><Error><Code>UserProjectAccountProblem</Code><Message>User project billing account not in good standing.</Message><Details>The billing account for the owning project is disabled in state closed</Details></Error>"
❯ kubectl create secret -n vault generic gcp-sa-vault-json --from-literal=GOOGLE_APPLICATION_CREDENTIALS=/etc/gcp/gcp-sa-vault.json --from-file=gcp-sa-vault.json=./gcp-sa-vault.json
❯ helm install vault banzaicloud-stable/vault -n vault \
--set "vault.customSecrets[0].secretName=gcp-sa-vault-json" \
--set "vault.customSecrets[0].mountPath=/etc/gcp" \
--set "vault.config.storage.gcs.bucket=vault-ha" \
--set "vault.config.seal.gcpckms.project=our-projectID" \
--set "vault.config.seal.gcpckms.region=europe-west1" \
--set "vault.config.seal.gcpckms.key_ring=vault" \
--set "vault.config.seal.gcpckms.crypto_key=vault-unsealer" \
--set "unsealer.args[0]=--mode" \
--set "unsealer.args[1]=google-cloud-kms-gcs" \
--set "unsealer.args[2]=--google-cloud-kms-key-ring" \
--set "unsealer.args[3]=vault" \
--set "unsealer.args[4]=--google-cloud-kms-crypto-key" \
--set "unsealer.args[5]=vault-unsealer" \
--set "unsealer.args[6]=--google-cloud-kms-location" \
--set "unsealer.args[7]=europe-west1" \
--set "unsealer.args[8]=--google-cloud-kms-project" \
--set "unsealer.args[9]=our-projectID" \
--set "unsealer.args[10]=--google-cloud-storage-bucket" \
--set "unsealer.args[11]=vault-ha"

此外,据我所知,用于访问cloud-kms的谷歌服务帐户拥有正确的权限:

  • 云KMS管理
  • 云KMS加密密钥加密/解密器
  • 存储管理

共有1个答案

郤仰岳
2023-03-14

在阅读@Tim Dierks评论后,我尝试重新创建firestore bucket(我已经删除了它,以防Vault会自动创建它,因为它有存储管理权限),它开始工作了。

 类似资料:
  • 我正在考虑在不久的将来在谷歌Kubernetes引擎上部署一个集群。我也一直在研究使用Hashicorp的Vault来管理我的集群可以访问的秘密。具体地说,我想利用动态秘密来提高安全性。 有更多使用Kubernetes和/或Vault经验的人能指出这种方法的任何潜在缺点吗?谢谢你。

  • 我在链接protobuf库时遇到了一个问题。 /tmp/ccKgczB9。o: 勾选数据。pb。抄送:(.text 0x444):未定义对google::protobuf::internal::kEmptyString“/tmp/ccKgczB9的引用。o: 勾选数据。pb。抄送:(.text 0x4a9):未定义对google::protobuf::internal::kEmptyString“

  • 将x-www-form-urlencode数据发布到Spring。这是有效的: 另一方面,这给出了一个例外: 不支持内容类型'application/x-www-form-urlencoded;charset=utf-8' 这将导致bean上的所有字段为空: FUD: 表单数据: POM:

  • 我尝试使用my console在谷歌云平台上部署云功能。我使用的命令是, 但我得到了这个错误, 错误:(gcloud.functions.deploy)操作错误:代码=3,消息=Build failed:无法解析存储源:googleapi:错误404:未找到,未找到 我试着在谷歌上搜索,但似乎以前没有人遇到过这个错误消息。我也尝试过改变项目,部署效果很好。 如果有人知道是什么导致了这个错误,以及我

  • 我使用http://jsonlint.com来验证JSON是否有效。因此,我要么需要更改JSON或代码,要么可能两者都需要。有什么想法吗?

  • 我试图在Jenkins从机上运行Selenium脚本。由于某些漏洞,我无法使用Java 1.8。我在slave agent上安装了JDK 9.0.4,但在尝试从Jenkins运行脚本时,出现以下异常 设置: Jenkins 2.303.3 Java版本:9.0.4