【问题标题】:Terraform GCP vm instance create - Error 403Terraform GCP 虚拟机实例创建 - 错误 403
【发布时间】:2018-09-24 20:19:48
【问题描述】:

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

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

感谢您的帮助!

【问题讨论】:

  • 您的用户对此项目有哪些 IAM 角色?
  • 之前的编辑角色,但更改为项目所有者仍然是相同的结果。
  • 在这种情况下,是否为项目启用了必要的api?您可以使用 terraform terraform.io/docs/providers/google/r/… 执行此操作,或者先尝试使用控制台进行查看。
  • 您好亨利,感谢您的意见。计算、网络和 IAM 很少有其他 api 被启用,还有其他一些。不确定是否有任何具体要求。你有没有机会为你工作的具体代码?
  • 您能否分享来自:gcloud services 列表的输出并确认提供者身份与您所说的拥有所有者权限的用户相同?

标签: google-cloud-platform terraform terraform-provider-gcp


【解决方案1】:

Terraform 需要组织管理员权限

这是添加此权限的步骤:

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

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

a.点击页面顶部的项目下拉列表。

b.Select from对话框中,单击组织下拉列表,然后选择要向其添加组织管理员的组织。

c.在出现的列表中,单击组织以打开其IAM 权限页面。

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

4.在选择角色下拉列表中,选择Resource Manager > Organization Administrator,然后点击Save。 p>

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2022-08-02
        • 2020-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-26
        相关资源
        最近更新 更多