为Terraform设置gcs后端的问题

时间:2019-12-21 15:28:51

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

我一直在尝试设置terraform后端以将状态文件存储在GCS存储桶中。我已经创建了一个服务帐户,该帐户是项目所有者,并且具有gcs存储桶存储管理员访问权限,但仍然遇到以下错误:

初始化后端... 错误加载状态:发生2个错误:         *编写“ gs://terraform-ubuntu-state-maintain/gcp/terraform.tfstate/default.tflock”失败:googleapi:错误403:权限不足,PerfectPer 任务         *存储:对象不存在。

p.s:已经使用前缀路径“ gcp”创建了gcs存储桶。还授予了服务帐户权限。

2 个答案:

答案 0 :(得分:2)

我的错误是 ~/.config/gcloud/application_default_credentials.json 中的“配额项目”指向一个不存在的项目。

答案 1 :(得分:0)

我遇到了类似的问题,原来是我正在使用的存储桶名称。 GCS存储桶名称(例如S3存储桶名称)是GLOBAL,因此经常出现如下与权限相关的错误:

Error: Error inspecting states in the "gcs" backend:
    querying Cloud Storage failed: googleapi: Error 403: terraform@xxx.iam.gserviceaccount.com does not have storage.objects.list access to terraform-state., forbidden

与权限相关,但实际上是错误的,因为您正尝试从其他用户的存储桶中读取内容。

P.S。 OG的名为terraform-state的存储桶必须获取很多用于列出/创建对象的API请求...