TraceBook 访问模型

TraceBook 是 DotID 的统一审计跟踪——类似于 AWS CloudTrail。它记录所有平台服务(DotID、TrustMint、NovaBell 等)的 API 活动,并允许用户通过 console.flexgalaxy.com/tracebook/ 上的可搜索时间线查看事件。

本页描述 TraceBook 中**谁可以访问什么内容**以及如何确定访问范围。

访问范围

TraceBook 定义了三种访问范围,由调用者的身份和组织角色决定:

范围

可见内容

OWN_ACCOUNT

账户的根用户,**或者**拥有 AdministratorAccessIAMFullAccessAuditReadAccess 权限集的 IDC 用户

仅本账户的审计事件

ORG_WIDE

**管理账户**的根用户,**或者**已注册为 audit 服务**委托管理员**的账户的根用户

组织中所有账户的审计事件

NONE

没有符合条件的权限集的 IDC 用户,或无法解析账户的用户

无审计事件(拒绝访问)

谁可以使用 TraceBook

账户级访问 (OWN_ACCOUNT)

以下用户可以查看**其自身账户内**的审计事件:

  1. 根用户 — 其 Keycloak 主体拥有该账户的用户。根用户按定义是账户管理员,始终拥有 TraceBook 访问权限。

  2. 拥有 AdministratorAccess、IAMFullAccess 或 AuditReadAccess 的 IDC 用户 — 已被分配这些权限集之一的 Identity Center 用户。其他权限集(如 ReadOnlyAccessDeveloperAccess)**不**授予 TraceBook 访问权限。

组织范围访问 (ORG_WIDE)

以下用户可以查看**组织中所有账户**的审计事件:

  1. 管理账户的根用户 — 管理账户是创建组织的账户。其根用户自动拥有对每个成员账户审计事件的完全可见性。

  2. ``audit`` 服务委托管理员账户的根用户 — 组织管理员可以将成员账户指定为 audit 服务命名空间的委托管理员。注册后,该委托账户的根用户将获得对审计事件的组织范围只读访问权限。

    POST /api/v1/organizations/{orgId}/delegated-admins
    
    { "service_name": "audit", "account_id": "<member-account-id>" }
    

    有关委托规则和资格,请参阅架构指南中的 delegated-administrators

访问决策流程

当用户打开 TraceBook 时,前端调用 /audit-api/v1/audit/me 端点。审计服务使用以下逻辑确定范围:

1. Extract the caller's realm and subject from the JWT token.

2. If the realm is NOT an IDC realm (i.e. a root user):
   a. Look up the account owned by this subject.
   b. If the account is a management account → scope = ORG_WIDE.
   c. If the account is a delegated admin for "audit" → scope = ORG_WIDE.
   d. Otherwise → scope = OWN_ACCOUNT (own account only).

3. If the realm IS an IDC realm (i.e. an IDC user):
   a. Read the permission set from the "ps" URL parameter or
      session context.
   b. If the permission set is AdministratorAccess, IAMFullAccess,
      or AuditReadAccess → scope = OWN_ACCOUNT.
   c. Otherwise → scope = NONE (no access).

4. Return { scope, accounts[] } to the frontend.
   - OWN_ACCOUNT → accounts contains only the caller's account.
   - ORG_WIDE → accounts contains all member accounts in the org.
   - NONE → accounts is empty, frontend shows access denied.

与 AWS CloudTrail 的对比

概念

AWS CloudTrail

FlexGalaxy TraceBook

账户级访问

拥有 cloudtrail:LookupEvents 权限的 IAM 用户

根用户或拥有管理员/审计权限集的 IDC 用户

组织跟踪

管理账户创建组织跟踪

管理账户根用户自动拥有组织范围

委托访问

CloudTrail 委托管理员

audit 服务委托管理员

跨账户可见性

组织跟踪将事件投递到中央 S3 桶

ORG_WIDE 范围查询所有成员账户的事件