Google cloud platform 如何将策略附加到资源(在本例中为PubSub主题)?

Google cloud platform 如何将策略附加到资源(在本例中为PubSub主题)?,google-cloud-platform,terraform,google-cloud-pubsub,terraform-provider-gcp,Google Cloud Platform,Terraform,Google Cloud Pubsub,Terraform Provider Gcp,这将创建一个服务帐户,该帐户对项目的所有PubSub基础结构都具有编辑权限 如何将策略(由服务帐户+角色/pubsub.editor生成)附加到最初创建的主题 (这样服务帐户就可以从roles/pubsub.editor获得权限,但只能访问最初创建的名为“argo事件”的主题。) 这个问题是在terraform实现类似于GCPs通用概念的策略附件的假设下编写的。有几种方法可以将策略附加到主题或订阅。有趣的是,这种方法不是通用的,而是特定于要绑定到的资源(在本例中是pubsub主题),至少有三种

这将创建一个服务帐户,该帐户对项目的所有PubSub基础结构都具有编辑权限

如何将策略(由服务帐户+角色/pubsub.editor生成)附加到最初创建的主题

(这样服务帐户就可以从roles/pubsub.editor获得权限,但只能访问最初创建的名为“argo事件”的主题。)



这个问题是在terraform实现类似于GCPs通用概念的策略附件的假设下编写的。

有几种方法可以将策略附加到主题或订阅。有趣的是,这种方法不是通用的,而是特定于要绑定到的资源(在本例中是pubsub主题),至少有三种方法:

在这种情况下,解决方案可能如下所示:

resource "google_pubsub_topic" "topic" {
  name   = "argo-events"
}

resource "google_service_account" "argo_events_pubsub_publish" {
  account_id   = "pubsub-publish"
}

resource "google_project_iam_member" "argo_events_pubsub_publish" {
  role   = "roles/pubsub.editor"
  member = "serviceAccount:${google_service_account.argo_events_pubsub_publish.email}"
}

有几种方法可以将策略附加到主题或订阅。有趣的是,这种方法不是通用的,而是特定于要绑定到的资源(在本例中是pubsub主题),至少有三种方法:

在这种情况下,解决方案可能如下所示:

resource "google_pubsub_topic" "topic" {
  name   = "argo-events"
}

resource "google_service_account" "argo_events_pubsub_publish" {
  account_id   = "pubsub-publish"
}

resource "google_project_iam_member" "argo_events_pubsub_publish" {
  role   = "roles/pubsub.editor"
  member = "serviceAccount:${google_service_account.argo_events_pubsub_publish.email}"
}

我不知道谷歌的提供商,但是如果你想在资源之间引用属性,你可以使用
google\u service\u account.argo\u events\u pubsub\u publish.account\u id
。因此,如果返回您想要的值,您只需要在相关的resourcetrue中引用它,但我的问题更多的是针对我必须使用哪些地形资源来实现此功能。使用
google\u pubsub\u topic\u iam\u binding
google\u pubsub\u topic\u iam\u member
。这个链接有一个例子。完成一个解决方案后,发布一个答案@约翰·汉利:谢谢,明天我会试一试。甚至没有考虑检查PubSub特定的资源……我不知道谷歌的提供者,但是如果你想在资源之间引用属性,你可以使用<代码> GoGoLeServices帐户。因此,如果返回您想要的值,您只需要在相关的resourcetrue中引用它,但我的问题更多的是针对我必须使用哪些地形资源来实现此功能。使用
google\u pubsub\u topic\u iam\u binding
google\u pubsub\u topic\u iam\u member
。这个链接有一个例子。完成一个解决方案后,发布一个答案@约翰·汉利:谢谢,明天我会试一试。甚至没有考虑检查一个PUBSUB特定的资源…