TraceBook アクセスモデル¶
TraceBook は DotID の統合監査証跡です — AWS CloudTrail に相当します。すべてのプラットフォームサービス(DotID、TrustMint、NovaBell など)のAPI アクティビティを記録し、console.flexgalaxy.com/tracebook/ で検索可能なタイムラインを通じてイベントを確認できます。
このページでは、TraceBook で**誰が何にアクセスできるか**、およびアクセススコープの決定方法について説明します。
アクセススコープ¶
TraceBook は、呼び出し元の ID と組織内の役割によって決まる3つのアクセススコープを定義しています:
スコープ |
誰 |
表示される内容 |
|---|---|---|
|
アカウントのルートユーザー、または |
自分のアカウントの監査イベントのみ |
|
管理アカウント**のルートユーザー、**または |
組織内のすべてのアカウントの監査イベント |
|
対象の許可セットを持たない IDC ユーザー、またはアカウントを解決できないユーザー |
監査イベントなし(アクセス拒否) |
TraceBook を使用できるユーザー¶
アカウントレベルアクセス (OWN_ACCOUNT)¶
以下のユーザーは、**自分のアカウント内**の監査イベントを閲覧できます:
ルートユーザー — Keycloak サブジェクトがアカウントを所有するユーザー。ルートユーザーは定義上アカウント管理者であり、常に TraceBook へのアクセス権を持ちます。
AdministratorAccess、IAMFullAccess、または AuditReadAccess を持つ IDC ユーザー — これらの許可セットの1つがアカウントに割り当てられた Identity Center ユーザー。その他の許可セット(例:
ReadOnlyAccess、DeveloperAccess)では TraceBook へのアクセスは**付与されません**。
組織全体アクセス (ORG_WIDE)¶
以下のユーザーは、**組織内のすべてのアカウント**の監査イベントを閲覧できます:
管理アカウントのルートユーザー — 管理アカウントは組織を作成したアカウントです。そのルートユーザーは、すべてのメンバーアカウントの監査イベントに対する完全な可視性を自動的に持ちます。
``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 |
|---|---|---|
アカウントレベルアクセス |
|
ルートユーザーまたは管理者/監査許可セットを持つ IDC ユーザー |
組織トレイル |
管理アカウントが組織トレイルを作成 |
管理アカウントのルートユーザーは自動的に組織全体のスコープを持つ |
委任アクセス |
CloudTrail 委任管理者 |
|
クロスアカウント可視性 |
組織トレイルがイベントを中央の S3 バケットに配信 |
|