【问题标题】:Error 403: Storage objects forbidden in GCP错误 403:GCP 中禁止存储对象
【发布时间】:2022-01-01 08:44:31
【问题描述】:

我正在尝试在 GCP 中创建所有新的沙盒项目,以便于部署和升级项目。使用 Terraform 我正在创建一个 GKE 集群。问题是,terraform 脚本是为一个名为 NP-H 的项目的服务帐户编写的。现在,我正在尝试在名为 let' say NP-S 的项目中使用相同的脚本创建集群。

我运行了 Terraform init 并遇到了一个

错误 403:XXX.serviceaccount 没有 storage.object.create 对谷歌云存储对象的访问权限。,禁止。 存储:对象不存在。 现在,是 Terraform 脚本或服务帐户权限的问题吗?

如果是 Terraform 脚本,我需要做哪些更改?

PS:我能够创建一个存储桶并将它们上传到云存储......

【问题讨论】:

  • 你在哪里运行你的 terraform 脚本?

标签: google-cloud-platform terraform google-kubernetes-engine bucket


【解决方案1】:

您可以通过两种方式存储凭据:

provider "google" {
  credentials = file("service-account-file.json")
  project = "PROJECT_ID"
  region  = "us-central1"
  zone    = "us-central1-c"
}

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

确保服务帐户来自项目 ID NP-S,Menu > IAM & admin > service account,并具有适当的权限:Menu > IAM & admin > IAM > ...

cat service-account-file.json

并确保它是来自正确项目 ID 的电子邮件。如果需要,您可以使用所有者/编辑角色进行快速测试以隔离问题,因为这些角色拥有最多的权限。

【讨论】:

  • 服务帐户密钥文件是一种不好的做法。当您的环境上下文允许使用服务帐户模拟时,首选服务帐户模拟
  • @guillaumeblaquiere 提示今天学到了一些东西。看到这个,读起来很好:medium.com/google-cloud/…
  • 感谢您的帮助。我想知道,如果我们没有服务帐户权限,我们有什么选择?
猜你喜欢
  • 2020-04-05
  • 2013-01-15
  • 2018-05-17
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多