在 Google 管理控制台中, 报告 → 审计和调查 保存日志(登录、管理员、云端硬盘、OAuth 等),每个都可以从那里导出。对于 JSON,使用 Admin SDK Reports API,方法 activities.list。对于一次性导出,甚至不需要编码:API 参考页面有一个“尝试此方法”面板,可以以您的身份运行调用。大多数工作区审计数据会保留六个月。
工作区审计日志显示谁从哪里登录,哪些第三方应用获得了邮件和文件的访问权限,以及哪些文档突然与外界共享。Prime Core 为 Google Workspace 数据提供了 {N} 条检测规则,映射到 {M} MITRE ATT&CK 技术。其中包括:滥用云账户(T1078.004)、恶意 OAuth 授权(T1528)和邮件转发到外部地址(T1114.003)。
在您开始之前
权限。 超级管理员或具有报告权限的管理员角色。
选择正确的日志。 在 API 中,每个日志都是一个 applicationName:login、admin、drive、token(OAuth 授权)、user_accounts、saml、groups 等。Gmail 消息日志不属于此 API。对于这些,请使用管理控制台中的 Email Log Search,或您的版本提供的 BigQuery 导出。
保留和延迟。 大多数审计日志可追溯到约六个月前。新事件可能需要几分钟到几小时才会出现,具体取决于日志。
简单的 Python 脚本
对于可重复的导出,使用具有域范围内委派的服务帐号模仿管理员。它需要 google-api-python-client 和 google-auth:
import json
from google.oauth2 import service_account
from googleapiclient.discovery import build
creds = service_account.Credentials.from_service_account_file(
"sa.json",
scopes=["https://www.googleapis.com/auth/admin.reports.audit.readonly"],
subject="admin@example.com",
)
svc = build("admin", "reports_v1", credentials=creds)
with open("workspace_login_1019.jsonl", "w") as out:
req = svc.activities().list(
userKey="all", applicationName="login",
startTime="2026-10-19T00:00:00Z", endTime="2026-10-20T00:00:00Z",
maxResults=1000,
)
while req is not None:
resp = req.execute()
for item in resp.get("items", []):
out.write(json.dumps(item) + "n")
req = svc.activities().list_next(req, resp)
域范围的委托功能强大。仅授予此只读范围,将密钥文件保存在共享驱动器之外,完成后移除委托。每个需要的 applicationName 运行一次脚本。
要查找的内容
| 日志和事件 | 重要性 |
|---|---|
| login: 大量 login_failure 或任何 suspicious_login | 密码猜测或 Google 本身标记的登录 |
| token: 授权 | 授予第三方应用程序授权;检查它可以读取的内容 |
| admin: 角色分配、用户创建、2 步验证策略更改 | 特权更改和安全设置减弱 |
| drive: 更改对外部或“拥有链接的任何人”的访问或可见性 | 数据向外部开放 |
| user_accounts: 已禁用2SV,密码已更改 | 账户劫持清理或准备 |
上传、清理并在 LogTotal 中检查
- 上传。 打开 logtotal.com 并放入 .jsonl 文件。
- 清理。
- 检查。
出现问题时
| 症状 | 可能原因 | Fix |
|---|---|---|
| 403 或权限不足 | 管理员缺乏报告权限,或委托的范围未授权 | 检查管理员角色;检查域范围内委托项 |
| 结果为空 | 错误的 applicationName,事件太新或超出保留期 | 检查名称;等待;检查日期 |
| 停在 1,000 事件 | 未跟进分页 | 使用 pageToken 或 list_next |
| 没有 Gmail 消息事件 | 不属于报告 API | 使用 Email Log Search 或 BigQuery |
FAQ
我可以通过 Google 云获取这些日志吗?
如果您的组织与 Google 云共享工作区数据,审计日志将在组织级别出现在云日志中,我们的[Google 云审计日志指南]适用。
警报中心不够吗?
警报中心显示的是 Google 决定标记的内容。审计日志显示所有内容,包括未标记的内容。