Permission compute.regions.get ошибка в terraform google kubernetes engine - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь использовать terraform-google-modules/kubernetes-engine/google//modules/beta-private-cluster модуль версии "~> 7.3" для создания кластера в регионе europe-west2. Но я получаю сообщение об ошибке:

Error: googleapi: Error 403: Google Compute Engine: Required 'compute.regions.get' 
permission for 'projects/***/regions/europe-west2'., forbidden

Странно то, что я пытаюсь сделать это, используя пользователя с ролью Editor. Таким образом, он должен иметь разрешение на чтение региона. Я пытался добавить больше ролей для пользователя (сделал все виды администраторов), но результат все тот же. Подскажите пожалуйста, где может быть моя ошибка?

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

Мне удалось решить эту проблему. Оказалось, что мой провайдер отбросил некоторые роли, которые необходимы для правильной работы GKE. В частности,

  • serviceAccount:service-${project-number}@compute-system.iam.gserviceaccount.com должно быть roles/compute.serviceAgent.

  • serviceAccount:service-${project-number}@container-engine-robot.iam.gserviceaccount.com должно быть roles/compute.serviceAgent.

Чтобы узнать, что я отключил службу движка Kubernetes и включил ее снова, облачное хранилище Google автоматически восстановило необходимые роли для учетных записей этой службы.

0 голосов
/ 20 марта 2020

Проверьте, имеет ли ваша учетная запись службы [id]@cloudservices.gserviceaccount.com роль редактора.

Перечислите все учетные записи служб с помощью команды gcloud projects get-iam-policy [project-id] и найдите учетную запись. это должно выглядеть примерно так:

- members:
  - serviceAccount:67993345594-compute@developer.gserviceaccount.com
  - serviceAccount:679934532594@cloudservices.gserviceaccount.com
  - serviceAccount:service-674567382594@containerregistry.iam.gserviceaccount.com
  - serviceAccount:test2-468@asdf.iam.gserviceaccount.com
  - serviceAccount:asdf@appspot.gserviceaccount.com
  role: roles/editor

Во-вторых, сверху находится учетная запись, которую вы ищете, а в нижней строке написано «Роли / Редактор», что является правильной ситуацией.

Если эта учетная запись не имеет этой роли, вы можете предоставить ее с помощью команды:

gcloud projects add-iam-policy-binding [project] / 
--member serviceAccount:[id]@cloudservices.gserviceaccount.com --role roles/editor

Все это описано в документации .

Очень похожие вопросы обсуждались на StackOverflow здесь и здесь .

...