无法将(在 gke 内部)Vault 映射到 Google KMS
can't map (inside gke) Vault to Google KMS
我们想在我们的 GKE 集群中部署 Hashicorp Vault(Banzai Cloud 的分支),然后将其映射到 Cloud KMS / Firestore。
我们已经在 EKS / S3 / AWS KMS 上完成了它并且工作正常。
但是,在 GKE 上,保险库 pods 正在崩溃并显示以下错误消息:
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>"
这对任何人来说有什么意义吗?我们与计费支持人员进行了交谈,以确认我们没有任何计费问题。
此错误消息不正确,我们不知道发生了什么。
我们的一个尝试是通过以下命令使用 Helm(否则我们将直接使用 vault 操作符):
❯ 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 的 google 服务帐户具有正确的权限:
- 云 KMS 管理员
- 云 KMS 加密密钥 Encrypter/Decrypter
- 存储管理员
我认为您的情况需要在 GCP 支持上创建支持票证,因为在您的 GCP-GKE-Hashicorp-Vault 中这是一个非常具体的问题。你在跟随一些指南吗?我找到了 Hashicorp documentation,或者您正在遵循另一个可以提供更多上下文的指南?
阅读@Tim Dierks 评论后,我尝试重新创建 firestore 存储桶(我删除了它以防 Vault 自动创建它,因为它具有存储管理员权限)并且它开始工作。
我们想在我们的 GKE 集群中部署 Hashicorp Vault(Banzai Cloud 的分支),然后将其映射到 Cloud KMS / Firestore。 我们已经在 EKS / S3 / AWS KMS 上完成了它并且工作正常。
但是,在 GKE 上,保险库 pods 正在崩溃并显示以下错误消息:
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>"
这对任何人来说有什么意义吗?我们与计费支持人员进行了交谈,以确认我们没有任何计费问题。 此错误消息不正确,我们不知道发生了什么。
我们的一个尝试是通过以下命令使用 Helm(否则我们将直接使用 vault 操作符):
❯ 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 的 google 服务帐户具有正确的权限:
- 云 KMS 管理员
- 云 KMS 加密密钥 Encrypter/Decrypter
- 存储管理员
我认为您的情况需要在 GCP 支持上创建支持票证,因为在您的 GCP-GKE-Hashicorp-Vault 中这是一个非常具体的问题。你在跟随一些指南吗?我找到了 Hashicorp documentation,或者您正在遵循另一个可以提供更多上下文的指南?
阅读@Tim Dierks 评论后,我尝试重新创建 firestore 存储桶(我删除了它以防 Vault 自动创建它,因为它具有存储管理员权限)并且它开始工作。