使用 Terraform 时云存储权限不足

Cloud Storage Insufficient Permission while using Terraform

我正在 GCP 中使用 Terraform 设置 IaC。当我 运行 管道时,我遇到错误

Error: Failed to get existing workspaces: querying Cloud Storage failed: googleapi: Error 403: Insufficient Permission, insufficientPermissions

这是我的后端 gcs:

data "tf_state" "my_app" {
  backend = "gcs"
  config = {
    bucket = "my_bucket"
    prefix = "envs/${module.variables.environment}/my_app"
  }
}

我可以在控制台上访问 my_bucket 中的内容,但在 运行 terraform 时出现错误。

谁能告诉我如何解决这个问题?

我现在已经在 gitlab CI/CD 变量中以 json 格式声明 Google 应用程序凭据,然后在 .gitlab.yml 文件中使用它。

# Environments definition
.dev:
  variables:
    PROJECT_ID: <projecct-id>
    DEPLOYED_MODULES: "my-module"
    GOOGLE_CREDENTIALS: ${GOOGLE_APPLICATION_CREDENTIALS}
    TF_LOG: ""
  environment:
    name: dev
  only:
    refs:
    - develop

我们使用如下方式引用状态文件,即 GCS

terraform {
  backend "gcs" {}
}

然后在.gitlab-ci.yaml

before_script:
  - terraform init -input=false -backend-config=env/dev/gcs-bucket.tfvars

gcs-bucket.tfvars

的内容
bucket  = "your-bucket-name"
prefix  = "folder name"