【发布时间】:2020-09-16 00:40:30
【问题描述】:
我按照 terraform 运行。我错误地使用了google_storage_bucket_iam_policy 而不是google_storage_bucket_iam_binding,所以它没有添加新策略,而是替换了所有现有策略。
data "google_iam_policy" "deploy-script-admin-policy" {
binding {
role = "roles/storage.objectAdmin"
members = [
"serviceAccount:${google_service_account.deploy-script.email}",
]
}
}
# deploy script can read/write to a bucket
resource "google_storage_bucket_iam_policy" "policy" {
bucket = "my-bucket"
policy_data = data.google_iam_policy.deploy-script-admin-policy.policy_data
}
现在我无法运行 terraform 计划,因为我无法访问自己的存储桶。我收到类似<my email> does not have storage.buckets.get access to the Google Cloud Storage bucket., forbidden 的错误消息。
我去了 GCP 控制台并尝试删除或更新此存储桶的权限,但它也不起作用,因为存储桶权限不允许它(我有所有者和 storage.admin 角色)。
我该如何从这种情况中恢复过来?如果这是唯一的选择,我不介意删除存储桶。
编辑: 我不知道发生了什么,但也许 GCP 有某种方式可以从这种情况中自动恢复。由于某种原因,我能够在一段时间后再次从控制台编辑存储桶......
【问题讨论】:
-
你不能。因为这个操作是权威操作。因此建议保存当前配置,然后在其之上构建
标签: google-cloud-platform terraform google-cloud-iam