не могу сопоставить (внутри gke) Vault с Google KMS

Мы хотим развернуть Hashicorp Vault (форк 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, имеет необходимые разрешения:

  • Администратор Cloud KMS
  • Шифрование / дешифратор Cloud KMS CryptoKey
  • Администратор хранилища

person GuiFP    schedule 09.02.2021    source источник
comment
Я думаю, что это сообщение об ошибке из Google Cloud Storage; Обратите внимание на раздел вашего хранилища в конфигурации Vault и на то, что вы называете правильную корзину GCS.   -  person Tim Dierks    schedule 10.02.2021
comment
У меня было ведро заранее, я удалил его, видя, что он не работает, но после повторного создания вручную ведро стало работать нормально, спасибо :)   -  person GuiFP    schedule 12.02.2021


Ответы (2)


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

person GuiFP    schedule 12.02.2021

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

person David C    schedule 09.02.2021