哪个用户或服务帐号用于删除 Stackdriver 日志?

Which user or service account was used to delete Stackdriver logs?

我试图在 StackDriver 工具中尽可能多地保留日志。我知道可以创建、删除和读取日志(使用客户端库或 gcloud CLI)。

"Audit logs" 对我来说不是问题,因为它们无法删除,但其他日志呢?

例如:来自计算实例 VM 或容器的 syslog

有没有办法知道使用哪个用户帐户或服务帐户从 Stackdriver 删除日志? StackDriver 中的删除会被记录下来?

Stackdriver Logging 中的日志保留期限记录在 https://cloud.google.com/logging/quotas#logs_retention_periods

截至 2019 年 8 月:

  • 管理 activity、AXT 和系统事件日志保留 400 天
  • 数据访问审核日志和所有其他日志默认保留 30 天

在 Stackdriver 中,各个日志条目被分组在一个 "Log" 中,这些条目以 LogName 命名。可以使用 DeleteLog API or using the equivalent gcloud logging logs delete CLI 命令删除日志。

要检查谁删除了日志,您可以使用如下过滤器检查管理员 activity 审核日志:

resource.type=logging_log AND 
logName:cloudaudit.googleapis.com%2Factivity AND 
protoPayload.methodName=google.logging.v2.LoggingServiceV2.DeleteLog

protoPayload.authenticationInfo.principalEmail 字段将包含用于调用 API 的用户帐户或服务帐户。