1

这是我第一次尝试通过 terraform 在 GCP 上创建 VM。这是我创建的 2 个文件。

提供者.tf

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

计算.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 图像存在一些语法问题,但即使在更改为多个其他相同问题之后也是如此。服务帐户对项目具有所有者权限,因此我可以排除。有人可以在这里帮助我吗..

感谢帮助!

4

3 回答 3

1

Terraform 需要组织管理员权限

这是添加此权限的步骤:

  1. 以 Google Workspace 或 Cloud Identity 超级管理员身份登录 Google Cloud Console,然后导航到 IAM 和管理页面: 转到管理页面

2.选择您要编辑的组织:

一个。单击页面顶部的项目下拉列表。

湾。在“选择自”对话框中,单击组织下拉列表,然后选择要向其添加组织管理员的组织。

C。在显示的列表中,单击组织以打开其IAM 权限页面。

  1. 单击添加,然后输入您要设置为组织管理员的一位或多位用户的电子邮件地址。

4.在选择角色下拉列表中,选择资源管理器 > 组织管理员,然后单击保存

组织管理员可以执行以下操作:

  • 完全控制组织。建立了 Google Workspace 或 Cloud Identity 超级管理员与 Google Cloud 管理员之间的职责分离。


  • 通过分配相关的 IAM 角色来委派关键职能的责任。

我建议您创建一个不同的服务帐户以将您的项目分开,您可以在此处查看如何创建您的服务帐户

于 2021-04-27T00:20:07.340 回答
0

我和宝拉在一起。仔细检查您的提供商凭据。这段代码没有任何问题。

于 2018-04-18T22:42:11.850 回答
0

面临同样的问题。我分配了以下角色并且它起作用了。计算管理员、计算实例管理员、服务帐户、服务帐户管理员

于 2020-07-27T13:27:21.987 回答