メインコンテンツへスキップ
バージョン: 最新版

監査API

概要

監査APIは、Omiseアカウントで実行されたすべてのアクションを追跡する包括的な監査ログへのアクセスを提供します。監査ログを使用して、ユーザーアクティビティの監視、構成変更の追跡、問題の調査、コンプライアンス記録の維持を行います。

利用可能なエンドポイント

できること

  • ユーザーアクションの追跡 - アカウントでユーザーが実行したすべてのアクションを監視
  • 構成変更 - ルーティンググループ、ルール、設定の変更を追跡
  • アクティビティタイムライン - アカウントアクティビティの時系列履歴を表示
  • コンプライアンス監査 - 規制コンプライアンスのための記録を維持
  • セキュリティ監視 - 不審なアクティビティを検出・調査
  • アクター別フィルター - 特定のユーザーが実行したアクションを検索

監査ログの構造

各監査ログエントリには以下が含まれます:

アクター情報

  • actor_email - アクションを実行したユーザーのメールアドレス
  • actor_type - アクターのタイプ(例: user)

アクションの詳細

  • verb - 実行されたアクション(例: rules_switched)
  • created_at - アクションが発生したタイムスタンプ

リソース情報

  • auditable_type - 影響を受けたリソースのタイプ(例: routing_group)
  • auditable_uid - 影響を受けたリソースの一意識別子

検索可能なフィールド

アクターフィルター

誰がアクションを実行したかでフィルター:

  • アクターのメールアドレス
  • アクターのタイプ

アクションフィルター

どのアクションが実行されたかでフィルター:

  • アクションの動詞(例: rules_switched)
  • 日時範囲

リソースフィルター

何が影響を受けたかでフィルター:

  • リソースタイプ
  • リソースの一意識別子

ユースケース

ユーザーのすべてのアクションを検索

GET /audits/search?scope=audit&filters[actor_email][]=admin@example.com

構成変更を検索

GET /audits/search?scope=audit&filters[auditable_type]=routing_group

最近のルール変更を検索

GET /audits/search?scope=audit&filters[verb]=rules_switched&filters[created]=2024/01/01..2024/12/31

特定のリソースに対するアクションを検索

GET /audits/search?scope=audit&filters[auditable_uid]=rgrp_test_5xuy4w91xqz7d1w9u0t

使用例

フィルター付きで監査ログを検索

const omise = require('omise')({
secretKey: 'skey_test_...'
});

// 特定のユーザーによるルーティンググループの変更を検索
const results = await omise.search.list({
scope: 'audit',
filters: {
actor_email: ['admin@example.com'],
auditable_type: 'routing_group',
created: '2024/01/01..2024/12/31'
}
});

console.log(`${results.total}件の監査エントリが見つかりました`);
results.data.forEach(audit => {
console.log(`${audit.created_at}: ${audit.actor_email} - ${audit.verb}`);
});

Python例

import omise

omise.api_secret = 'skey_test_...'

# すべてのルール切り替えアクションを検索
results = omise.Search.execute(
scope='audit',
filters={
'verb': 'rules_switched',
'created': '2024/01/01..2024/12/31'
}
)

print(f'{results["total"]}件の監査エントリが見つかりました')
for audit in results['data']:
print(f'{audit["created_at"]}: {audit["actor_email"]} - {audit["verb"]}')

レスポンス形式

{
"object": "search",
"data": [
{
"object": "audit",
"id": "audt_test_5xuy4w91xqz7d1w9u0t",
"actor_email": "admin@example.com",
"actor_type": "user",
"auditable_type": "routing_group",
"auditable_uid": "rgrp_test_5xuy4w91xqz7d1w9u0t",
"verb": "rules_switched",
"created_at": "2024-06-15T10:30:00Z"
}
],
"total": 1,
"page": 1,
"per_page": 30,
"total_pages": 1,
"scope": "audit",
"filters": {
"actor_email": ["admin@example.com"]
}
}

ページネーション

監査検索結果はページネーションされています:

# 1ページ目
GET /audits/search?scope=audit&page=1&per_page=30

# 2ページ目
GET /audits/search?scope=audit&page=2&per_page=30

1ページあたり最大100件のレコード。

ベストプラクティス

すべきこと

  • 日付フィルターを使用 - パフォーマンス向上のため作成日の範囲で結果を絞り込む
  • アクターでフィルター - 問題調査時に特定のユーザーアクションを検索
  • ページネーションを実装 - 管理可能なチャンクで結果を処理
  • 定期的な監査 - セキュリティ監視のため定期的に監査ログをレビュー
  • 重要なログをエクスポート - 長期コンプライアンスのため監査レコードを保存

すべきでないこと

  • フィルターをスキップしない - 常にフィルターを使用して結果を絞り込む
  • エラーを無視しない - APIエラーを適切にログし処理する
  • 頻繁すぎるポーリングをしない - 監視時にレート制限を尊重

アクセス要件

監査ログには適切なアカウント権限が必要です。監査機能へのアクセスが必要な場合はサポートにお問い合わせください。

関連リソース


お困りですか? support@omise.co にお問い合わせください