GCP 日志路由器接收器没有将日志路由到主题?

GCP Log Router Sink Not Routing Logs to Topic?

上下文: 我正在尝试通过日志接收器将 GCP 审计日志存储在 Pub/Sub 主题中,这样我就可以在订阅中提取这些消息(并有一个第 3 方订阅该订阅。

尝试的解决方案:
包含过滤器的日志接收器:logName:"cloudaudit.googleapis.com" 将日志路由到 -> Pub/Sub 存储这些消息的主题 ->订阅(基于拉取)以查看这些消息。

问题: 来自接收器的日志似乎没有在主题中结束。当我尝试查看主题中的消息时(通过单击 GCP GUI 中的拉取),我没有收到任何消息,即使我确定存在审计日志(我 运行 对上述包含过滤器的查询) 并继续非常频繁地生成。

问题:为什么日志没有被路由到主题或者为什么当我从主题中拉出日志时主题没有显示日志?

这是一个权限问题。当你创建一个sink的时候,这个sink作为一个identity,你可以这样获取

gcloud logging sinks describe \
 --format='value(writerIdentity)' <SINK_NAME>

然后,授予此身份发布到pubsub的权限,例如

gcloud pubsub topics add-iam-policy-binding <TOPIC_ID> \
  --member=<WRITER_IDENTITY> --role=roles/pubsub.publisher

编辑 1

通过控制台

  • 转到日志路由器部分,单击该行末尾的 3 点并查看接收器详细信息

  • 从那里新建一个windows显示作者身份,复制它

  • 最后,转到 PubSub 主题,select 主题前面的复选框。转到右侧面板,获得许可后,单击添加成员。这里添加你的作者身份和select对应的角色