не удается сопоставить хранилище (внутри gke) с Google KMS

#google-kubernetes-engine #hashicorp-vault #google-cloud-kms

#google-kubernetes-engine #hashicorp-хранилище #google-cloud-kms

Вопрос:

Мы хотим развернуть Hashicorp Vault (fork by Banzai Cloud) внутри нашего кластера GKE, а затем сопоставить его с 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>"
 

Это кому-нибудь что-нибудь говорит? Мы поговорили со службой поддержки выставления счетов, чтобы подтвердить, что у нас нет проблем с выставлением счетов.
Это сообщение об ошибке неверно, и мы понятия не имеем, что происходит.

Одной из наших попыток было использование Helm со следующими командами (в противном случае мы бы напрямую использовали оператор хранилища) :

 ❯ 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"
 

Кроме того, насколько мне известно, учетная запись службы Google, используемая для доступа к cloud-kms, имеет правильные разрешения :

  • Администратор облачных KMS
  • Шифровальщик / дешифровальщик криптоключов Cloud KMS
  • Администратор хранилища

Комментарии:

1. Я думаю, что это сообщение об ошибке из облачного хранилища Google; взгляните на раздел хранилища в конфигурации вашего хранилища и на то, что вы называете правильное хранилище GCS.

2. У меня заранее была корзина, я удалил ее, увидев, что она не работает, но после повторного создания вручную корзины она начала работать нормально, спасибо 🙂

Ответ №1:

После прочтения комментария @Tim Dierks я попытался заново создать корзину firestore (я удалил ее на случай, если Vault создаст ее автоматически, поскольку у нее есть права администратора хранилища), и она начала работать.

Ответ №2:

Я думаю, что в вашем случае вам нужно создать запрос в службу поддержки GCP, потому что это очень специфическая проблема в вашем GCP-GKE-Hashicorp-Vault. Вы следуете какому-то руководству? Я нашел документацию Hashicorp или вы следуете другому руководству, которое может предоставить больше контекста?