チームの監査ログをNDJSON、CSV、またはJSONにエクスポートして、コンプライアンス、アーカイブ、後続の分析に利用できます。
監査ログに含まれる内容
アカウントの状態を変更するすべてのアクション — 招待、ロール変更、キーのローテーション、Website設定、請求の変更など — は次のフィールドとともに記録されます:
- id — ログエントリの一意のid
- action — 何が起こったか(例:
team.invite_member、website.update_settings) - resource_type + resource_id — 何に対して操作が行われたか
- actor_id — どのチームメンバーが操作を実行したか
- metadata — 追加のコンテキスト(ソース、ハッシュ化されたIPなど)
- created_at — UTCタイムスタンプ
metadata内のIPアドレスは、日次でローテーションされるソルトを用いた一方向ハッシュとして保存されます。これにより、生IPを公開することなくフォレンジック上の価値を保持できます。
ダッシュボード内の設定 → セキュリティ → Audit logでも同じ監査証跡を参照できます。
プランごとの利用可否
監査ログのエクスポートはProプラン以上でご利用いただけます。(FreeプランではAPIキーの作成ができないため、このエンドポイントはFreeではアクセスできません。)
認証
このエンドポイントはExternal APIの一部であり、APIキーで呼び出されます:
Authorization: Bearer YOUR_API_KEY
ダッシュボードからAPIキーを作成してください:設定 → セキュリティ → API Keys → 新しいキー。フルアクセスキーはすべてのエンドポイントで機能します。
アカウントが複数のチームに属している場合は、各リクエストのX-Zenovay-Team-Idヘッダーで対象のチームを指定してください。
監査ログをエクスポート
curl -L "https://api.zenovay.com/v1/cli/mutate/audit/export?format=ndjson" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o zenovay-audit.ndjson
サポートされる形式
format | Content-Type | 適した用途 |
|---|---|---|
ndjson(デフォルト) | application/x-ndjson | ログ解析パイプラインへのストリーミング(行区切りJSON) |
csv | text/csv | Excel、Google Sheets、BIツールで開く |
json | application/json | プログラムで処理するための単一のJSON配列 |
レスポンスはContent-Disposition: attachment; filename="zenovay-audit.<format>"とともに送信されるため、ほとんどのHTTPクライアントはこれをディスクに保存します。
エクスポートはチームの利用可能な監査履歴を返します(監査ログは24か月保持されます)。単一のエクスポートは最大10,000件の最新エントリを返します。より大きなアーカイブの場合は、定期的にエクスポートをスケジュール実行して、コールドストレージに追加してください。より軽量でインタラクティブな検索は、下記の/v1/cli/mutate/audit/logsを使用してください。
最近のエントリを取得(ページネーション)
インタラクティブな問い合わせには/v1/cli/mutate/audit/logsを使用します:
curl "https://api.zenovay.com/v1/cli/mutate/audit/logs?since=7d&limit=100" \
-H "Authorization: Bearer YOUR_API_KEY"
クエリパラメータ
| パラメータ | デフォルト | 備考 |
|---|---|---|
since | 7d | 時間範囲:1h、7d、4w、12m |
action | – | 完全一致のactionで絞り込み |
actor | – | ユーザーidで絞り込み |
limit | 50 | 1リクエストあたり最大200 |
要求されたlimitを超えるエントリがさらに存在する場合、レスポンスにはpagination.next_cursorが含まれます。より古いエントリに到達するには、limitを増やすか(最大200)、sinceウィンドウを減らしてください。完全なアーカイブについては、上記のエクスポートエンドポイントを使用してください。このエンドポイントは1回の呼び出しで最大10,000件の最新エントリを返します。
ベストプラクティス
- 定期的なエクスポートをスケジュールする。 NDJSONをコールドストレージ(S3 Glacier、R2など)に保存する週次のcronジョブは、不変の監査トレイルを低コストで維持する有効な方法です。
- APIキーを定期的にローテーションする ほか、チームメンバーのオフボーディング後にもローテーションしてください。
- エクスポートを機密情報として扱う。 エントリ自体は機密ではありませんが、運用上の活動を記述しているため、公開バケットや共有ドライブには置かないでください。
- Webhookと組み合わせて使う。 特定のアクションにリアルタイムで反応するためにWebhookを使い、エクスポートは定期的な完全照合として活用してください。
発生し得るエラー
| ステータス | 意味 |
|---|---|
401 unauthorized | APIキーが欠落しているか無効、またはキーがチームに紐付いていない |
402 upgrade_required | プランに監査ログのエクスポートが含まれていません — Proまたはそれ以上にアップグレードしてください |
400 invalid_format | formatはndjson、csv、jsonのいずれかである必要があります |
すべてのレスポンスにはx-request-idヘッダーも含まれます。サポートチケットに含めていただくと、エンドツーエンドで該当の呼び出しを追跡できます。