Terraform:googleapi:错误 403:资源项目的权限被拒绝

Abh*_*aya 12 google-api google-cloud-platform terraform devops terraform-provider-gcp

googleapi:错误403:资源项目shared_vpc_host_name的权限被拒绝。,禁止

我正在尝试使用 Terraform 项目 facotry 模块创建共享 vpc 和服务项目,但我遇到了错误,不确定它是否真的与权限相关。这是我收到的错误

Error: googleapi: Error 403: Permission denied on resource project shared_vpc_host_name., forbidden

on .terraform/modules/project_factory/terraform-google-project-factory-8.1.0/modules/core_project_factory/main.tf line 136, in resource "google_compute_shared_vpc_service_project" "shared_vpc_attachment":
136: resource "google_compute_shared_vpc_service_project" "shared_vpc_attachment" {

Error: Error retrieving IAM policy for compute subnetwork "projects/shared_vpc_host_name/regions/us-central1/subnetworks/10.128.0.0": googleapi: Error 403: Permission denied on resource project shared_vpc_host_name., forbidden
Run Code Online (Sandbox Code Playgroud)

Cla*_*rts 7

对于像我这样的人:我的问题是我在provider块中使用了无效的密钥。

provider "google" {
  credentials = "this_was_wrong.json"
  project = "project-id"
}
Run Code Online (Sandbox Code Playgroud)

正如埃迪·奈特在回答中所说:

您很可能遇到权限问题。今天,我发现自己试图瞄准一个存在的项目……但我通过 gcloud 进行身份验证的帐户并不是我想象的那样。


小智 5

当我错误地将项目名称“myProject”改为“project”时,我得到了同样的错误,如下所示:

provider "google" {
  credentials = file("myCredentials.json")
  project     = "myProject" // Mistakenly put the project name "myProject"
  region      = "asia-northeast1"
}
Run Code Online (Sandbox Code Playgroud)

这是我的项目名称编号ID

在此输入图像描述

然后,我将项目 ID“myproject-338117”放入“project”

provider "google" {
  credentials = file("myCredentials.json")
  project     = "myproject-338117" // Put the project id "myproject-338117"
  region      = "asia-northeast1"
}
Run Code Online (Sandbox Code Playgroud)

最后,我可以解决这个错误。


小智 2

我刚才在遇到类似的错误消息时偶然发现了您未回答的问题,因此我会将我的经验放在这里,以防其他人遇到它。

我遇到错误,不确定它是否真的与权限有关

您很可能遇到权限问题。今天,我发现自己试图瞄准一个存在的项目……但我通过 gcloud 进行身份验证的帐户并不是我想象的那样。在这种情况下,您需要更改项目 ID 或更改 gcloud 身份验证。

您的问题也可能与子网有关。检查您的 IAM 角色以确保您已授予自己在该子网上工作的权限。

旁注...由于目标不存在的区域,我还一度遇到权限错误

总共:

  1. 检查您使用的帐户是否正确
  2. 检查您是否使用了正确的项目
  3. 检查您是否已正确分配 IAM 角色