Google 云服务帐户监控警报

Google Cloud service account monitoring alerts

背景

我有一个 Google 云项目 运行 我的 N 个应用程序。每个应用都有一个独享的IAM服务账号(共N个服务账号),权限最小

场景

假设其中一个服务帐户被泄露了。攻击者将尝试利用这些凭据。因为他不知道这个账号到底有什么样的权限,我们会试着打电话给他看看是否有效。

问题

我想“收听”审核日志。一旦我看到“访问被拒绝”类型的日志,我就会知道这个服务帐户有问题。

  1. 是否可以将所有这些访问被拒绝事件写入 Google Cloud Stackdriver?
  2. 您建议如何实施?

谢谢

这是一种解决方法:

  • 创建新的云 pubsub 主题
  • 使用上一步中创建的云 pubsub 主题的目标服务创建一个新的日志路由接收器(将过滤器设置为类似于 protoPayload.authenticationInfo.principalEmail="<service-account-name>@<project-name>.iam.gserviceaccount.com" AND protoPayload.authorizationInfo.granted="false" 仅获取有关您的服务帐户的身份验证操作失败的消息)
  • 创建一个云函数,该函数通过发布 pubsub 主题的新消息触发;这个函数可以做任何你想做的事情,比如向电子邮件地址发送消息、寻呼你或你可以在代码中想到的任何其他内容。

Is this possible to write all those access denied incidents to Google Cloud Stackdriver?

大多数但不是全部 Google 云服务支持这一点。但是,访问成功也会被记录。

  • 您将需要启用数据访问审核日志。
  • 这可能会产生大量的日志信息。
  • 组织和文件夹的访问日志只能通过 API 而不是控制台。
  • 在启用数据访问审核日志之前查看定价。

How you recommend implementing it?

这个问题不适合 Whosebug,因为它寻求建议和意见。通常,您会将日志导出到 Google Cloud Pub/Sub 以供 Cloud Functions、Cloud 运行 等服务处理。也有 DataDog 等为此设计的商业服务服务支持类型。将日志导出到 Google BigQuery 是另一个流行的选项。

阅读发表在 DataDog 网站上的这篇关于数据访问审计日志及其服务的文章。我不推荐他们的服务,只是提供一个 link 来了解更多信息。他们的文章很好

Best practices for monitoring GCP audit logs

要了解您需要处理的字段,请阅读此文档:

AuthorizationInfo

这个link也将帮助:

Understanding audit logs