使用 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"
我正在 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"