アクセス制御と監査ログ

アクセス制御 監査ログ RBAC 最小権限
この記事の対象
連携アプリの本番環境で、誰が何にアクセスできるかを設計・運用する担当者向けです。

3つの観点

  1. 誰がアクセスできるか(人間・サービスアカウント)
  2. 何にアクセスできるか(データ・機能・環境)
  3. 誰がいつ何をしたかを記録する(監査ログ)

最小権限の原則

すべての権限は必要最小限から始め、必要に応じて拡張します。「念のため広めに」は事故の元です。

対象 推奨権限
本番Webサーバー本番シークレット読取のみ
本番DBサーバーアプリユーザーは限定スキーマのみ
バッチワーカー読取+限定的書込
運用担当者本番DB直接アクセスは不可、運用ツール経由のみ
開発者本番アクセスなし、開発・ステージングのみ

RBAC(ロールベースアクセス制御)

個人にではなくロールに権限を付与し、ロールを個人に割り当てる方式が管理しやすいです。

ロール例:
・Admin       … 全権限(極少数)
・Operator    … 本番ツール経由の読み書き
・Support     … 顧客データの読み取りのみ
・Developer   … 開発・ステージングのみ
・Auditor     … 監査ログの読み取りのみ

シークレット・トークンのアクセス

  • レシートローラーのクライアントシークレット → 本番サービスアカウントのみ
  • 顧客のアクセストークン → アプリ実行ユーザーのみ、人間からは隠す
  • Webhookシークレット → 受信サーバーのみ

監査ログ

誰が何をしたかを記録することは、不正検知・事故調査・コンプライアンス対応に必須です。

記録すべきイベント

  • 本番環境へのログイン・ログアウト
  • シークレット・トークンの取得
  • 顧客データの閲覧(特に大量取得)
  • データ削除・エクスポート
  • アプリ設定の変更
  • 権限の付与・剥奪

各レコードに含めるべき項目

  • タイムスタンプ(UTC)
  • 実行者(user_id / service_account_id)
  • アクション(read, write, delete 等)
  • 対象(resource_type + resource_id)
  • 結果(success / failure)
  • クライアントIP・User-Agent
  • 関連リクエストID

保管

  • 監査ログ専用のストレージ(書込のみ・改ざん不可)
  • 最低1年(業界によっては3〜7年)
  • アプリログとは別に保管

定期レビュー

  • 四半期:付与済み権限の棚卸し、不要な権限を剥奪
  • 月次:監査ログの異常パターン確認
  • 退職時:即時アカウント無効化、関連シークレットローテーション
  • 年次:アクセス制御ポリシー全体の見直し

多要素認証(MFA)

本番環境にアクセスできる全ユーザーは MFA 必須にしてください。SMS よりも TOTP(Google Authenticator 等)または FIDO2 を推奨します。

関連ガイド

公開日: 2026-04-27 更新日: 2026-04-27