Создание экземпляра виртуальной машины Terraform GCP - ошибка 403

это моя первая попытка создать виртуальную машину на GCP через terraform. вот 2 файла, которые я создал.

provider.tf

provider "google" {
credentials = "${file("xxxxxx.json")}"
project = "project-1-200623"
region = "us-central1"
}

compute.tf

# Create a new instance
resource "google_compute_instance" "default" {
   name = "test"
   machine_type = "n1-standard-1"
   zone = "us-central1-a"
   boot_disk {
      initialize_params {
      image = "debian-cloud/debian-8"
   }
}
network_interface {
   network = "default"
   access_config {}
}

service_account {
   scopes = ["userinfo-email", "compute-ro", "storage-ro"]
   }
}

I am getting below error:

Error: Error applying plan:

1 error(s) occurred:

* google_compute_instance.default: 1 error(s) occurred:

* google_compute_instance.default: Error loading zone 'us-central1-a': googleapi: Error 403: Required 'compute.zones.get' permission for 'projects/project-1-200623/zones/us-central1-a', forbidden.

In

Первоначально я думал, что проблема с синтаксисом с изображением vm, но даже после перехода на несколько других аналогичных проблем. У служебной учетной записи есть права владельца на проект, поэтому я могу исключить это. может кто-нибудь, пожалуйста, помогите мне здесь ..

Цените помощь!


person latech    schedule 14.04.2018    source источник
comment
Какие роли IAM есть у вашего пользователя в этом проекте?   -  person Henry Dobson    schedule 14.04.2018
comment
Раньше роль редактора была изменена на владельца проекта, результат тот же.   -  person latech    schedule 14.04.2018
comment
В таком случае, включены ли необходимые API для проекта? Вы можете сделать это с помощью terraform terraform.io/docs/providers/google/ r / или поэкспериментируйте с консолью, чтобы увидеть в первую очередь.   -  person Henry Dobson    schedule 14.04.2018
comment
Привет, Генри, спасибо за вклад. compute, network и IAM, включены несколько других API и несколько других. Не уверен, есть ли какие-либо конкретные требования. есть ли у вас конкретный код, который работает на вас?   -  person latech    schedule 15.04.2018
comment
Можете ли вы поделиться выводом из: gcloud services list и подтвердить, что идентификатор поставщика такой же, как у пользователя, который, по вашему мнению, имеет разрешения владельца?   -  person Henry Dobson    schedule 15.04.2018
comment
Мне удалось применить вашу конфигурацию, удалив = ›region = us-central1 из файла конфигурации provider.tf.   -  person Shibboleet    schedule 17.04.2018
comment
Я также рекомендую дважды проверить правильность ключа учетной записи службы и имени проекта, указанных в файле конфигурации provider.tf. Если вы пытаетесь запустить конфигурацию Terraform в проекте, в котором учетная запись службы не имеет правильных разрешений (роли), это может привести к сообщению об ошибке разрешения, подобному указанному вами. Итак, проверьте: учетные данные = $ {file (xxxxxx.json)} project = project-1-200623   -  person Shibboleet    schedule 17.04.2018


Ответы (3)


Terraform требуется разрешение администратора организации

вот шаги, чтобы добавить это разрешение:

  1. Войдите в Google Cloud Console как суперадминистратор Google Workspace или Cloud Identity и перейдите на страницу IAM & Admin: перейти на страницу администратора

2. Выберите организацию, которую хотите отредактировать:

а. Щелкните раскрывающийся список проекта вверху страницы.

б. В диалоговом окне Выбрать из щелкните раскрывающийся список организации и выберите организацию, в которую вы хотите добавить администратора организации.

c. В появившемся списке щелкните организацию, чтобы открыть ее страницу Разрешения IAM.

  1. Нажмите Добавить, а затем введите адрес электронной почты одного или нескольких пользователей, которых вы хотите назначить администраторами организации.

4. В раскрывающемся списке Выберите роль выберите Диспетчер ресурсов ›Администратор организации, а затем нажмите Сохранить.

Администратор организации может делать следующее:

  • Получите полный контроль над организацией. Установлено разделение обязанностей между суперадминистратором Google Workspace или Cloud Identity и администратором Google Cloud.

  • Делегируйте ответственность за критические функции, назначая
    соответствующие роли IAM.

Я рекомендую вам создать другую учетную запись службы, чтобы ваши проекты были разделены. Вы можете проверить, как создать учетную запись службы здесь

person Jorge Navarro    schedule 27.04.2021

Я с Полой. Дважды проверьте свои учетные данные провайдера. В этом коде нет ничего плохого.

person Henry Dobson    schedule 18.04.2018

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

person Amit    schedule 27.07.2020