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

Pri*_*lly 2 logging producer-consumer audit-logging google-cloud-platform google-cloud-pubsub

上下文:我正在尝试通过日志接收器将 GCP 审核日志存储在 Pub/Sub 主题中,以便我可以在订阅中提取这些消息(并让第三方订阅该订阅)。

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

问题:来自接收器的日志似乎并未出现在主题中。当我尝试查看主题中的消息(通过单击 GCP GUI 中的“pull”)时,我没有收到任何消息,即使我确信审核日志存在(我针对上面的包含过滤器运行了查询)并继续非常频繁地生成。

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

gui*_*ere 7

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

gcloud logging sinks describe \
 --format='value(writerIdentity)' <SINK_NAME>
Run Code Online (Sandbox Code Playgroud)

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

gcloud pubsub topics add-iam-policy-binding <TOPIC_ID> \
  --member=<WRITER_IDENTITY> --role=roles/pubsub.publisher
Run Code Online (Sandbox Code Playgroud)

编辑1

虽然控制台

  • 转到日志路由器部分,单击该行末尾的 3 个点并查看接收器详细信息 在此输入图像描述

  • 从那里一个新窗口显示作者身份,复制它 在此输入图像描述

  • 最后,转到 PubSub 主题,选中主题前面的复选框。转到右侧面板,获得许可后,单击“添加成员”。在这里添加您的作家身份并选择对应的角色 在此输入图像描述