在使用Terraform构建Google Cloud Platform (GCP)基础设施时,经常会遇到一些权限问题。本文将通过一个实际的案例,展示如何解决GCP中Cloud Storage与Pub/Sub主题和订阅之间的权限问题。背景介绍假设我们有一个Cloud Storage Bucket,配置了通知功能来将事件发布到Pub/Sub主题,然后通过订阅来消费这些消息。为了处理未确认的消息,我们设置了一个死信队列(Dead Letter Queue)。尽管一切看起来配置得很好,但在实践中,经常会遇到权限错误,尤其是在涉及到死信队列时。问题描述在GCP控制台中,观察到以下错误:Pub/Sub主题无法发布消息到死信队列。订阅无法从主题中拉取消息。解决步骤1. 检查服务账号权限首先,确保所有涉及的服务账号都有适当的权限:data "google_storage_project_service_account" "gcs_account" {} resource "google_pubsub_topic_iam_member" "request_binding" { topic = google_pubsub_topic.requests.id role = "roles/pubsub.publisher" member = "se