由于访问范围不足而导致 API 尝试失败的 GCP Stackdriver 日志事件

由于访问范围不足而导致 API 尝试失败的 GCP Stackdriver 日志事件

我想监控那些尝试超出其给定访问范围的 API 调用的 Compute Engine 服务帐号。这可以通过gcloud命令或使用元数据服务器中的 OAuth 令牌进行手动 API 交互来实现。

以下是一个具体的例子:

  • 计算实例使用常规 GCP 默认设置启动,包括默认服务帐户和默认访问范围。
  • 用户登录该计算实例上的 SSH 会话并gcloud auth list显示活动帐户是默认服务帐户。
  • 用户运行gcloud compute instances listInsufficient Permission: Request had insufficient authentication scopes由于访问范围限制,此操作失败。

但是,我在 StackDriver 中找不到与此尝试相关的任何内容。我已为、和所有服务配置了 Cloud Admin ReadAudit Data ReadLogs Data Write

我确实会看到成功的 API 调用的日志事件,例如,如果我删除范围限制并重复上述步骤。

我还看到了具有适当访问范围但缺乏 IAM 权限的失败 API 调用的日志事件。

但是,由于访问范围而失败的尝试没有任何效果。

有人知道这是否可能吗?

答案1

这是可能的。使用高级日志查询. 转到日志 > 日志查看器并使用此查询: resource.type="api"匹配相应的资源类型

虽然上述信息准确,但与您的案件无关。这确实是一个误会。

更新:

我认为,如果用户由于范围限制而无权执行gsutil命令,则该命令将在系统级别失败,并且不会记录该消息(例如,尝试tail /var/log/auth.log以普通用户身份运行并查找该调用的记录)。如上所述这里仅特定信息会被存储。

使用异常检测希望这能有所帮助。

相关内容