mcpField
C
configuring-audit-logging

configuring-audit-logging

github.com/cockroachlabsセキュリティ23121 回インストール14 週間前に更新
リポジトリ

configuring-audit-logging について

Configuring Audit Logging は、CockroachDB クラスターの SQL 監査ログを設定するスキルで、セキュリティやコンプライアンスを担うデータベース管理者向けです。管理者操作やロール単位の監査、設定確認、ログ出力、運用への影響を扱います。

主な機能

  1. 01管理者 SQL 操作の監査有効化
  2. 02ロール別監査ポリシーの設定
  3. 03スロークエリログのしきい値設定
  4. 04監査設定とログ配送の確認
  5. 05性能とストレージへの影響確認

活用シーン

  1. 01コンプライアンス要件に沿った監査ログ設定
  2. 02機密データにアクセスする特定ロールの監査
  3. 03監査記録の欠落調査
  4. 04クラスター監査ログの出力確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cockroachlabs/cockroachdb-skills --skill configuring-audit-logging

インストール後、Claude Code で/configuring-audit-loggingを入力して読み込まれたか確認します。

同梱ファイルreferences/sql-queries.md

詳細

監査ログの設定

CockroachDB クラスターで SQL 監査ログを設定し、認証試行、権限の変更、DDL 操作、機密データへのアクセスなど、セキュリティに関わるイベントを記録します。クラスター全体の監査設定と、対象を絞ったログ記録を行うロールベースの監査ポリシーの両方に対応しています。

このスキルを使う場面

  • SOC 2、HIPAA、または PCI DSS のコンプライアンス要件を満たすために監査ログを有効にする
  • 特定のユーザーまたはロール向けにロールベースの監査ポリシーを設定する
  • 監査ログが適切に設定され、イベントを記録していることを確認する
  • 監査証跡の欠落に関するセキュリティ監査の指摘に対応する
  • 監査ログの設定を確認して、セキュリティインシデントを調査する

前提条件

  • SQL アクセス:クラスター設定の変更に必要な admin ロール
  • **CockroachDB のバージョン:**ロールベースの監査ログには 22.2 以降が必要です
  • ログのエクスポート:永続的な監査証跡を記録するよう設定してください(CockroachDB Cloud はログをクラウドプロバイダーにエクスポートします)
  • **ストレージの計画:**監査ログによってログ量が増加するため、追加のストレージを計画してください

アクセス権を確認します:

-- Verify admin role
SELECT member FROM [SHOW GRANTS ON ROLE admin] WHERE member = current_user();

-- Check CockroachDB version
SELECT version();

手順

1. 現在の監査設定を確認する
-- User audit logging configuration
SHOW CLUSTER SETTING sql.log.user_audit;

-- Admin audit logging
SHOW CLUSTER SETTING sql.log.admin_audit.enabled;

-- All audit-related settings
SELECT variable, value
FROM [SHOW ALL CLUSTER SETTINGS]
WHERE variable LIKE '%audit%'
ORDER BY variable;

監査関連のクエリについては、SQL クエリのリファレンスを参照してください。

2. Admin 監査ログを有効にする

Admin 監査ログでは、admin ロールを持つユーザーが実行したすべての SQL 文が記録されます。

-- Enable admin audit logging
SET CLUSTER SETTING sql.log.admin_audit.enabled = true;

記録される内容:

  • admin ユーザーが実行したすべての SQL 文
  • DDL 操作(CREATE、ALTER、DROP)
  • GRANT および REVOKE 操作
  • クラスター設定の変更
3. ロールベースの監査ログを設定する

ロールベースの監査ログでは、特定のロールを対象にログを記録できます。クラスター全体を対象とするログ記録より効率的です。

-- Enable audit logging for a specific role
-- Format: <role_name> <audit_mode>
-- Audit modes: ALL (all statements), READ (reads only), WRITE (writes only), NONE (disable)
SET CLUSTER SETTING sql.log.user_audit = 'sensitive_data_reader ALL';

複数のロールを指定する場合:

-- Audit multiple roles (newline-separated)
SET CLUSTER SETTING sql.log.user_audit = 'sensitive_data_reader ALL
security_admin ALL
app_service_account READ';

用途に応じた監査ロールを作成する場合:

-- Create a role for users accessing sensitive data
CREATE ROLE sensitive_data_reader;
GRANT SELECT ON TABLE customers, payments, pii_table TO sensitive_data_reader;

-- Assign users to the audited role
GRANT sensitive_data_reader TO app_user;

-- Enable audit logging for this role
SET CLUSTER SETTING sql.log.user_audit = 'sensitive_data_reader ALL';
4. スロークエリログを設定する(補足)

スロークエリログでは、レイテンシのしきい値を超えるクエリを記録します。これにより、不正なスキャンやデータ持ち出しの試みを検知できる場合があります。

-- Log queries taking longer than 1 second
SET CLUSTER SETTING sql.log.slow_query.latency_threshold = '1s';

-- Log all queries (high overhead — use only for investigation)
-- SET CLUSTER SETTING sql.log.slow_query.latency_threshold = '0';
5. 監査ログを検証する
-- Confirm settings are active
SHOW CLUSTER SETTING sql.log.user_audit;
SHOW CLUSTER SETTING sql.log.admin_audit.enabled;

-- Execute a test statement to generate an audit event
SELECT 1;

ログの配信を検証する: CockroachDB Cloud では、監査ログは設定済みのログシンク(クラウドプロバイダーのロギングサービス)にエクスポートされます。ログのエクスポート先を確認し、イベントが記録されていることを検証してください。

# On CockroachDB Cloud, check log export configuration
ccloud cluster info <cluster-name> -o json
# Look for log_export_config section

安全性に関する考慮事項

**パフォーマンスへの影響:**監査ログによって CPU および I/O のオーバーヘッドが増加します。影響の度合いは監査の範囲によって異なります。

監査範囲パフォーマンスへの影響推奨事項
Admin 監査のみ最小限あらゆる環境で安全に使用できます
ロールベースの監査(対象を絞ったロール)低~中程度本番環境に推奨します
クラスター全体の全ステートメントのログ記録高い調査中にのみ使用してください
スロークエリログ(しきい値 > 0)最小限あらゆる環境で安全に使用できます
スロークエリログ(しきい値 = 0)非常に高い本番環境では絶対に使用しないでください

**ストレージへの影響:**監査ログによってログ量が増加します。次の増加量を見込んでください。

  • Admin 監査:約 1~5% のログ量増加
  • ロールベースの監査:監査対象ロールのクエリ量に比例
  • 全ステートメントのログ記録:ログ量が 10 倍以上に増加

推奨事項:

  • まず Admin 監査ログを有効にします(オーバーヘッドが最小限で、価値が高いため)
  • 機密データにアクセスするロールには、ロールベースの監査を追加します
  • 本番環境では、クラスター全体の全ステートメントのログ記録を避けます
  • ログのローテーションと保持ポリシーを設定します

ロールバック

-- Disable user audit logging
SET CLUSTER SETTING sql.log.user_audit = '';

-- Disable admin audit logging
SET CLUSTER SETTING sql.log.admin_audit.enabled = false;

-- Reset slow query threshold to default
RESET CLUSTER SETTING sql.log.slow_query.latency_threshold;

参考資料

スキルの参考資料:

関連スキル:

CockroachDB 公式ドキュメント:

コメント