# General Translation Platform: 审计日志 URL: https://generaltranslation.com/zh/docs/platform/dashboard/reference/audit-logs.mdx --- title: 审计日志 description: 查看安全敏感活动,并将事件记录传送至 Amazon S3。提供仪表板审计日志和导出设置的参考信息。 --- 审计日志是一项 Enterprise 功能,可在 Organization 和 Enterprise 层级使用。它需要该实体的管理权限,默认 **Admin** 角色拥有此权限。 ## 概览 [#overview] | 区域 | 说明 | | -------------------------- | ---------------------- | | [访问](#access) | 方案、权限和事件层级相关行为。 | | [下载](#downloads) | 日期范围限制和 JSON Lines 输出。 | | [S3 目标](#destination) | 持续交付的设置和验证。 | | [目标状态](#statuses) | 目标是否已配置、已启用、已暂停或出现错误。 | | [交付行为](#delivery-behavior) | 对象键、回填、重试和交付历史。 | | [事件记录](#event-records) | 写入每条 JSON Lines 记录的字段。 | ## 访问和下载 [#access-downloads] ### 访问 Audit Logs 需要 Enterprise 方案以及以下任一权限: * **Organization 层级:**`org:manage`。 * **Enterprise 层级:**`enterprise:manage`。 默认的 **Admin** 角色拥有此管理权限。没有该权限的用户会看到访问被拒绝页面。 Organization 导出包含该 Organization 范围内的事件。Enterprise 导出包含该 Enterprise 范围内的事件,其中包括其管理的 Organizations 中的事件。 ### 下载 **组织路径** **Organization > Settings > Audit Logs** **企业路径** **Enterprise > Settings > Audit Logs** 仪表板会下载未压缩的 JSON Lines (`.jsonl`) 文件: * 所选起止日期均包含在范围内,并按浏览器的本地时区计算。无法选择未来日期。 * 所选范围最长可达 366 天。 * 每次下载最多包含该范围内时间最早的 10,000 个事件。 * 如果匹配的事件更多,仪表板会将结果标记为已截断。请缩小范围,或使用 S3 传送获取完整的可用历史记录。 * 如果没有匹配的事件,仪表板会报告空结果,而不会下载文件。 下载日志时,会在选定文件内容后创建一条审计事件。该事件会出现在后续下载和 S3 传送中,但不会包含在当前下载的文件中。 ## S3 传送 [#s3-delivery] ### 目标 每个 Organization 或 Enterprise 都可以配置一个 S3 目标。General Translation 会使用提供的 IAM 角色及其 External ID;该 ID 在目标的整个生命周期内保持不变。系统会将对象直接写入配置的存储桶,不会存储 AWS 访问密钥。 | 字段 | 说明 | 类型 | 可选 | 默认值 | | --------------------- | -------------------------------------------------------------- | -------- | -- | ------- | | **存储桶** | 使用小写字母、数字、点和连字符的 S3 存储桶名称。必须包含 3–63 个字符,以字母或数字开头和结尾,且不得包含连续的点。 | `string` | 否 | — | | **存储桶区域** | 包含该存储桶的 AWS 区域,例如 `us-east-1`。 | `string` | 否 | — | | **前缀** | 对象键前缀。会移除空路径段及首尾斜杠;最大长度为 512 个字符。 | `string` | 是 | 空 | | **IAM 角色 ARN** | 允许对该存储桶和前缀执行 `s3:PutObject` 的 AWS IAM 角色。 | `string` | 否 | — | | **KMS 密钥 ARN** | 用于 S3 服务器端加密的客户托管 KMS 密钥或别名。必须位于存储桶所在的区域。 | `string` | 是 | 存储桶默认加密 | | **External ID** | 角色信任策略必须要求的只读值。在目标的整个生命周期内保持不变。 | `string` | 否 | 自动生成 | | **Trusted principal** | 信任策略允许调用 `sts:AssumeRole` 的只读角色 ARN。 | `string` | 否 | 因环境而异 | 保存目标会持久保存这些字段,并立即测试投递。测试会承担该角色,并通过配置的存储桶、前缀和 KMS 路径写入一个 JSON 验证对象。测试失败时,已保存的配置仍可供修正。 验证对象使用以下键格式: ```text //verification/gt_audit_export_verification__.json ``` 所有者分区为 `org_id=` 或 `enterprise_id=`。 有关信任策略工作流,请参阅[管理审计日志](/docs/platform/dashboard/guides/managing-audit-logs)。 ### 状态 | 状态 | 含义 | | ---------- | ---------------------------------------------------------- | | `PENDING` | 预先配置的目标,仅包含 External ID,以便您在首次保存前完成 IAM 信任策略。此状态下不会传送任何内容。 | | `ACTIVE` | 目标已启用。除非手动禁用了传送,否则成功保存或连接测试会将状态设为此值。 | | `DISABLED` | 传送已暂停。连接测试会保留此状态。 | | `ERROR` | 最近一次保存或连接测试未能写入验证对象。只要保持此状态,就不会传送任何事件。 | **启用**会将 `DISABLED` 或 `ERROR` 更改为 `ACTIVE`,但不会测试连接。**删除**会停止后续传送,从仪表板中移除该目标及其**最近传送记录**历史;如果配置了其他目标,还会生成新的 External ID。现有 S3 对象不受影响。 ### 传送行为 已启用的目标会接收具有以下键结构的 gzip 压缩 JSON Lines 对象: ```text //year=YYYY/month=MM/day=DD/hour=HH/audit__.jsonl.gz ``` 活跃目标每三分钟检查一次。每次扫描都会排除最近 60 秒内的事件,并且每个对象最多写入 1,000 个事件。UTC 日期分区和文件名时间戳反映的是交付时间,而非事件的 `occurred_at` 值。每个对象的内容类型为 `application/jsonl`,内容编码为 `gzip`。 交付采用至少一次语义。每次尝试都会使用新的对象键。如果上传成功但无法确认检查点已更新,后续重试可能会生成另一个包含重叠事件的对象。消费者应按事件 `id` 去重。 首次启用时,会从当前层级中最早可用的事件开始。编辑目标字段会保留导出检查点,因此先前已交付的事件不会复制到新的存储桶或前缀。删除并重新创建目标会重置检查点,并可能再次交付全部可用历史记录。 **最近传送记录**显示最新的十次尝试: | 字段 | 描述 | | -------- | ----------------------- | | **状态** | `DELIVERED` 或 `FAILED`。 | | **事件** | 尝试写入对象的事件数量。 | | **对象** | S3 对象键。失败的尝试还会显示交付错误。 | | **创建时间** | 记录该次尝试的时间。 | ## 事件记录 [#event-records] 每行包含一个 JSON 对象。未记录值时,将省略可选对象和字段。 | 字段 | 描述 | 类型 | | ------------- | ---------------------------------------------------- | -------- | | `id` | 稳定的事件标识符。用于对 S3 投递进行去重。 | `string` | | `occurred_at` | 采用 ISO 8601 时间戳格式的事件发生时间。 | `string` | | `event_type` | 以点分隔的活动标识符,例如 `project.created` 或 `api_key.deleted`。 | `string` | | `result` | 事件结果:`SUCCESS`、`FAILURE` 或 `DENIED`。 | `string` | | `actor` | 操作主体的 `type`,以及可用时的 `id`、`email` 和 `display`。 | `object` | | `source` | 可用时的请求 `ip`、`user_agent` 和 `request_id`。 | `object` | | `resource` | 可用时受影响资源的 `type` 和 `id`。 | `object` | | `scope` | 可用时关联的 `org_id` 和 `enterprise_id`。 | `object` | | `metadata` | 事件特定的上下文。 | JSON | | `changes` | 事件特定的变更值。 | JSON | 操作主体类型包括 `USER`、`API_KEY`、`SYSTEM`、`GT_ADMIN` 和 `LOCADEX`。 ### 事件类型 | 类别 | `event_type` 值 | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 身份验证 | `auth.login.success`, `auth.access.denied`, `auth.access.bypass` | | 管理员访问 | `admin.super_user.started`, `admin.super_user.stopped` | | 用户 | `user.created`, `user.updated`, `user.deleted`, `user.joined`, `user.left` | | 项目 | `project.created`, `project.updated`, `project.deleted` | | 组织 | `organization.created`, `organization.updated`, `organization.deleted`, `organization.member.invited`, `organization.member.invite_removed`, `organization.member.removed`, `organization.member.role_updated`, `organization.billing.details_updated`, `organization.billing.subscription_updated`, `organization.billing.subscription_deleted`, `organization.billing.auto_reload_updated`, `organization.billing.credits_purchased`, `organization.billing.credits_granted`, `organization.billing.recovery_payment_retried` | | 企业 | `enterprise.created`, `enterprise.updated`, `enterprise.deleted`, `enterprise.member.invited`, `enterprise.member.invite_removed`, `enterprise.member.removed`, `enterprise.member.role_updated`, `enterprise.billing.details_updated`, `enterprise.billing.auto_reload_updated`, `enterprise.billing.credits_purchased`, `enterprise.billing.recovery_payment_retried` | | API 密钥 | `api_key.created`, `api_key.updated`, `api_key.deleted`, `org_api_key.created`, `org_api_key.updated`, `org_api_key.deleted` | | 访问策略 | `access_policy.updated` | | Webhook | `dashboard.webhook.signing_secret.revealed` | | 审计日志 | `audit_log.destination.created`, `audit_log.destination.updated`, `audit_log.destination.deleted`, `audit_log.destination.tested`, `audit_log.downloaded` | | SSO 和 SCIM | `sso.provider.created`, `sso.provider.updated`, `sso.provider.deleted`, `sso.enforcement.updated`, `sso.sp_signing_key.rotated`, `scim.token.created`, `scim.connection.deleted` | | 集成 | `integration.created`, `integration.deleted`, `integration.translation.enqueued`, `account.integration.authorized`, `account.integration.revoked` | | Locadex | `locadex.settings.updated`, `locadex.workflow_settings.updated`, `locadex.secrets.updated`, `locadex.secrets.revealed`, `locadex.repository.disconnected` | ```json title="Audit event" { "id": "event_id", "occurred_at": "2026-08-13T15:19:02.000Z", "event_type": "project.created", "result": "SUCCESS", "actor": { "type": "USER", "id": "user_id", "email": "admin@example.com", "display": "admin@example.com" }, "source": { "ip": "203.0.113.10", "user_agent": "Mozilla/5.0", "request_id": "request_id" }, "resource": { "type": "PROJECT", "id": "project_id" }, "scope": { "org_id": "org_id", "enterprise_id": "enterprise_id" } } ```