> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 監査ログ：APIアクティビティの追跡とコンプライアンス対応

> Diditの監査ログで、すべてのAPIアクティビティを追跡・検索できます。ユーザー、メソッド、ステータス、期間でフィルターでき、コンプライアンス監査、セキュリティレビュー、デバッグに役立ちます。

監査ログは、組織内のすべてのAPIアクティビティを網羅的に記録し、検索できるようにしたものです。Console、お客様の連携、チームメンバーのいずれから送られたものであっても、Diditプラットフォームへのリクエストはすべて、セキュリティ、コンプライアンス、トラブルシューティングのために自動的に記録されます。

![Didit Consoleの監査ログ](https://mintcdn.com/didit-0f962782/ibesJiSLVa9jZb5z/images/console-audit-logs.jpg?fit=max\&auto=format\&n=ibesJiSLVa9jZb5z\&q=85\&s=bcd436f764486143268f5c5ca67d9d14)

***

## 監査ログを使う理由

| 課題 | 解決策 |
| - | - |
| 規制上のコンプライアンス要件 | プランで保持される期間までさかのぼって、すべてのアクティビティの完全な監査証跡を確認できます |
| セキュリティインシデントの調査 | 誰がいつ何をしたかを正確に追跡できます |
| 連携の問題のデバッグ | 各リクエストのパス、ステータス、マスキング済みの本文を確認できます |
| チームの説明責任 | どのチームメンバーがどのデータにアクセスしたかを追跡できます |
| 利用状況のモニタリング | APIの利用傾向を把握できます |

***

## 監査ログへのアクセス

Didit Consoleで**Settings > Organization > Audit log**を開きます。組織内で行われたすべてのAPIリクエストが時系列で一覧表示されます。

各ログエントリには次の情報が含まれます。

| フィールド | 説明 |
| - | - |
| **タイムスタンプ** | リクエストが行われた日時 |
| **ユーザー** | 操作を行った主体です。認証済みチームメンバーのメールアドレス、リクエストを行ったAPIキーの名前（**API key**タグ付き）、または調査担当が自ら下した判定の場合は**調査担当**のいずれかです |
| **メソッド** | HTTPメソッド(GET、POST、PUT、DELETE) |
| **パス** | 呼び出されたAPIエンドポイント |
| **ステータス** | HTTPレスポンスのステータスコード |
| **IPアドレス** | リクエストの送信元IP |
| **アプリケーション** | リクエストが関連付けられたアプリケーション |

### 調査担当が下した判定

[調査担当](https://docs.didit.me/ja/console/investigator.md)が自ら下した判定は、メンバーやAPIキーではなく**調査担当**として記録されます。対象となるのは、セッションの承認・却下や再提出の要求、取引のステータス設定、ケースの解決・エスカレーション・情報要求です。
エントリには、その判定に対応する調査担当のレポートへのリンクが含まれます。
担当者が調査担当の推奨を受け入れた場合や覆した場合、エントリはその担当者として記録されます。

***

## フィルターと検索

監査ログの画面には強力なフィルター機能があり、探している情報を正確に見つけられます。

### スマート検索

検索バーは、入力内容から検索対象を自動的に判別します。

| 検索の種類 | 例 | 動作 |
| - | - | - |
| **完全一致のパス** | `/v1/organization/.../sessions/` | このリクエストパスに完全一致するログを検索します |
| **完全一致のメールアドレス** | `admin@company.com` | この特定のユーザーのログを検索します |
| **完全一致のIP** | `192.168.1.100` | このIPアドレスからのログを検索します |
| **ワイルドカード** | `/v1/*/analytics/*` | ワイルドカードを含むパターンに一致するログを検索します |
| **一般テキスト** | `sessions` | すべてのフィールドを対象にあいまい検索します |

### 利用できるフィルター

| フィルター | 説明 | 例 |
| - | - | - |
| **アプリケーション** | 特定のアプリケーションで絞り込みます | ドロップダウンから選択 |
| **メンバーとAPIキー** | リクエストを行ったAPIキーで絞り込みます | 選択したアプリケーションのキーを選択 |
| **実行者** | メンバー、APIキー、The Investigator のいずれかが行った操作のみを表示します | **The Investigator** |
| **メソッド** | HTTPメソッドで絞り込みます | `GET`、`POST`、`PUT`、`DELETE` |
| **ステータスコード** | レスポンスのステータスで絞り込みます | `200`、`401`、`500` |
| **日付範囲** | 期間で絞り込みます | 過去7日間、カスタム期間 |

***

## データ保持

監査ログをどこまでさかのぼって閲覧できるか、またエクスポートできるかどうかは、プランによって決まります。

| プラン | 閲覧できる期間 | エクスポート |
| - | - | - |
| Free | 30日間 | 不可 |
| Growth | 1年間 | 不可 |
| Scale | 3年間 | 可 |
| Enterprise | 契約で定める期間 | 可 |

エクスポートに対応していないプランでエクスポートを行うと、`"code": "plan_limit_exceeded"`を含む`403`が返されます。

***

## セキュリティとプライバシー

### 記録される情報

監査ログには、APIリクエストに関する次のメタデータが記録されます。

* リクエストのタイムスタンプと所要時間
* ユーザーの識別情報(メールアドレス、ユーザーID)、またはリクエストを行ったAPIキー(キーの名前とシークレットの先頭数文字のみで、シークレット全体は決して記録されません)
* リクエストパスとクエリパラメーター
* レスポンスのステータスコード
* クライアントのIPアドレスとユーザーエージェント

### APIキーによる呼び出しのリクエスト本文とレスポンス本文

APIキーで行われた呼び出しについては、書き込みのJSONリクエスト本文と、書き込みまたはエラーに対するレスポンスのマスキング済みコピーも監査ログに保持されるため、呼び出しが失敗した理由を確認できます。
成功した読み取りに対するレスポンスは保持されません。

マスキングはデフォルト拒否方式です。

* 構造は保持されます。フィールド名、ネスト、値の型、配列の長さ、文字列の長さが対象です。
* 値が保持されるのは、Diditが定義するフィールド内にあり、そのフィールドが想定する形式を持つ、Didit独自の識別子、ステータス、コード、件数、タイムスタンプのいずれかである場合のみです。
* 真偽値が保持されるのは、Diditが定義するフィールド内にある場合のみです。
* それ以外の値はすべて、`[redacted:string:12]`、`[redacted:number:5]`、`[redacted:boolean]`のように型と長さを示すマーカーに置き換えられます。`null`は`null`のまま保持されます。
* キーとして使われたメールアドレスや電話番号など、単純な識別子ではないフィールド名は`[redacted:key:23]`に置き換えられます。
* フォームやファイルアップロードなど、JSONではない本文は、その内容の種類を示す注記に置き換えられます。
* 残った内容は4,096文字で切り詰められます。

クエリパラメーターにも同じマスキングが適用されます。
保持されるのは`content-type`、`user-agent`、レート制限ヘッダーなどの標準ヘッダーのみで、それ以外のヘッダーは値ごと破棄されます。
`metadata`や`vendor_data`など、お客様のシステムから送信される値は、フィールド名がDiditのフィールドと同じ名前であっても、決して保持されません。

### 記録されない情報

機密データを保護するため、次の情報は自動的に除外されます。

* 認証トークンと認証情報
* パスワードとシークレット
* 検証セッションの個人データ

### アクセス制御

監査ログを閲覧するには、`audit-logs`の読み取り権限と一覧表示権限が必要です。Reader、Compliance Officer、Developer、Admin、Ownerの各役割にはこれらの権限があり、[カスタム役割](https://docs.didit.me/ja/console/roles-permissions.md)の場合は役割エディターでAudit logsを選択すると付与されます。

***

## 主なユースケース

> [accordion] コンプライアンス監査
>
> 誰が検証データにアクセスしたかを完全に把握できていることを監査人に示します。
>
> 1. 監査対象期間に合わせて日付範囲でフィルターします
> 2. 必要に応じて、特定のアプリケーションやユーザーでフィルターします
> 3. 記録用に結果をエクスポートするか、スクリーンショットを撮ります

> [accordion] セキュリティ調査
>
> 不正アクセスが疑われる場合は、次の手順で調査します。
>
> 1. 影響を受けたユーザーのメールアドレスや不審なIPアドレスで検索します
> 2. インシデントが疑われる時期の前後の日付範囲でフィルターします
> 3. 認証の失敗、想定外のエンドポイント、不自然な時間帯など、通常と異なるパターンを探します

> [accordion] 連携のデバッグ
>
> API連携の問題をトラブルシューティングする場合は、次の手順で確認します。
>
> 1. 対象のエンドポイントパスで検索します
> 2. `4xx`または`5xx`のステータスコードでフィルターしてエラーを見つけます
> 3. タイムスタンプを控え、自社アプリケーションのログと照合します

> [accordion] チームのアクティビティ確認
>
> チームがプラットフォームをどのように利用しているかをモニタリングします。
>
> 1. 特定のチームメンバーのメールアドレスでフィルターします
> 2. どのセッションや機能にアクセスしたかを確認します
> 3. チームメンバーが適切な手順に従っていることを確認します

***

## ベストプラクティス

1. **定期的な確認**: 監査ログを定期的に確認し、異常を早期に発見します。
2. **検索を絞り込む**: 具体的なフィルターを使ってノイズを減らし、関連するエントリーをすばやく見つけます。
3. **日付範囲**: 大規模なデータセットでパフォーマンスを高めるため、常に日付範囲を指定します。
4. **検索をブックマークする**: よく使うフィルターの組み合わせをブラウザのブックマークに保存し、すばやくアクセスできるようにします。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.