Назад | Перейти на главную страницу

GCE Требуется разрешение 'compute.zones.list' для 'projects / someproject'

Я создал проект в GCP. Затем я создал учетную запись службы с Compute Admin роль. После этого я включил Compute Engine API для моего проекта, но не могу работать с экземплярами:

#gcloud compute instances list  
ERROR: (gcloud.compute.instances.list) Some requests did not succeed:
- Required 'compute.zones.list' permission for 'projects/someproject'

Что я делаю не так ?

Первый раз я создал сервисный аккаунт cloud66 в тестовый период Google. Скорее всего, это повлияло на права доступа. Затем я переключил биллинг с тестового периода на платный. Я удалил и заново создал учетную запись службы cloud66 в разделе «API и службы -> Учетные данные». Но была политика доступа для «cloud66» с ролью «ComputeAdmin» в разделе «IAM». Когда я удалил политику доступа из раздела «IAM» и заново создал учетную запись службы, проблема была решена.

Убедитесь, что учетная запись службы, которую вы используете для запуска этой команды, имеет правильный Роль Compute Engine. Вы можете сделать это здесь: IAM & admin> IAM.

-- ОБНОВИТЬ --

Для проверки того, что учетная запись службы имеет правильные разрешения, выполните следующие команды в Cloud Shell:

$ gcloud iam service-accounts keys create key.json \ --iam-account new-sa@some-project-name.iam.gserviceaccount.com

Приведенная выше команда создаст и загрузит ключ для этой учетной записи службы в формате JSON.

$ gcloud projects add-iam-policy-binding some-project-name \ --member serviceAccount:new-sa@some-project-name.iam.gserviceaccount.com \ --role=roles/compute.admin

Эта команда назначит роль compute.admin учетной записи службы new-sa.

$ gcloud auth activate-service-account --key-file=key.json

$ gcloud compute instances list

И с этим олицетворять new-sa сервисный аккаунт, используя уже загруженный файл key.json, и выполните соответствующую команду, чтобы вывести список экземпляров в какое-то имя-проекта проект. Если это успешно, проблема в другом месте.