auditing-cis-benchmark について
このエージェントスキルは、CIS CockroachDB Benchmark v1.0.0 Level 1 に基づき、セルフホストの CockroachDB を読み取り専用で監査します。クイックスキャンと詳細監査に対応し、6 つのセキュリティ領域にわたる 30 項目を評価するため、運用担当者やコンプライアンスチームに適しています。
主な機能
- 01CIS 30 項目の評価
- 02クイックスキャンと詳細監査
- 03合格・不合格・手動確認の結果
- 04CIS Controls v7/v8 へのマッピング
- 05クラスターとホストの読み取り専用チェック
活用シーン
- 01CIS コンプライアンス評価の証跡準備
- 02セルフホスト CockroachDB のセキュリティ設定確認
- 03定期的なセキュリティチェックや CI/CD ゲート
- 04データベース制御と CIS Controls の対応付け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cockroachlabs/ cockroachdb-skills --skill auditing-cis-benchmarkインストール後、Claude Code で/auditing-cis-benchmarkを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/cis-controls.mdsample-report.mdsql-queries.md詳細
CIS ベンチマークへの準拠状況の監査
セルフホスト型 CockroachDB クラスターを、CIS CockroachDB Benchmark v1.0.0 Level 1 プロファイルに照らして評価します。インストールとパッチ、システムの強化とトポロジー、ロギングとモニタリング、ユーザーアクセスと認可、データ保護、CockroachDB の設定という 6 つのドメインにわたり、30 項目の管理策を評価します。CIS Controls v7/v8 とのマッピングおよび実装グループの適用範囲を含む、PASS、FAIL、MANUAL REVIEW の判定結果を構造化レポートとして出力します。
対象範囲: セルフホスト型 CockroachDB デプロイメントのみです。CockroachDB Cloud クラスターの場合は、代わりに auditing-cloud-cluster-security を使用してください。Cloud クラスターには、多くの CIS セルフホスト向けチェックより優先される、マネージド管理策があります。
権威ある情報源: このスキルは、https://github.com/cockroachlabs/CIS-benchmarks-crdb で定義されているベンチマークを実装しています。
読み取り専用の監査: すべての操作は読み取り専用です。評価中にクラスターの状態、OS の設定、ファイルが変更されることはありません。
このスキルを使用する場面
- CIS ベンチマークの準拠状況評価や外部監査に備える場合
- 新しいセルフホスト型 CockroachDB の本番デプロイメントを強化する場合
- 業界標準のベンチマークに照らしてセキュリティ態勢を検証する場合
- セキュリティ運用の一環として定期的な準拠状況チェックを行う場合
- CockroachDB のセキュリティ管理策を CIS Controls フレームワークにマッピングする場合
- CIS ベンチマークの証拠を求める監査人の依頼に対応する場合
前提条件
アクセス要件:
| 要件 | 目的 |
|---|---|
| クラスターノードへの SSH/シェルアクセス | OS レベルのチェック(systemd、スワップ、THP、ファイルディスクリプター、証明書) |
| SQL アクセス(admin または VIEWACTIVITY) | クラスター設定、ユーザー/ロールの監査、ロギング設定 |
| systemd サービスファイルへのアクセス | サービス設定の検証 |
| 証明書ディレクトリへのアクセス | 証明書の権限と有効性のチェック |
ツール:
| ツール | 必須 | 目的 |
|---|---|---|
cockroach CLI | はい | バージョン確認、証明書の検査、SQL アクセス |
systemctl | はい | サービスの状態、NTP の検証 |
openssl | 推奨 | 証明書の検証と有効期限のチェック |
| 標準 Unix ツール | はい | ps、ls、cat、grep、swapon、ulimit |
監査の深度
このスキルでは、2 段階の監査に対応しています。ニーズに応じて選択してください。
| 深度 | 使用する場面 | 実施内容 |
|---|---|---|
| クイックスキャン | 定期チェック、CI/CD ゲート、迅速なトリアージ | 各管理策について 1 行のシェル/SQL コマンドを実行し、合格/不合格を返します |
| 完全監査 | 準拠状況の証拠、外部監査人からの依頼、詳細な評価 | CIS 公式ベンチマークに基づき、各管理策の複数ステップの手順を実施します |
ステップ 0 で、希望する深度をユーザーに確認してください。両方を組み合わせることもできます。最初にクイックスキャンを実行して不合格項目を特定し、証拠を収集するために、その不合格項目について完全監査を実施します。
CIS ベンチマークの構成
CIS CockroachDB Benchmark v1.0.0 Level 1 プロファイルには、6 つのセクションに分類された 30 項目の管理策があります。
| セクション | ドメイン | 管理策 | 自動化 | 手動 |
|---|---|---|---|---|
| 1 | インストールとパッチ | 1.1–1.7(7) | 3 | 4 |
| 2 | システムの強化とトポロジー | 2.1–2.7(7) | 5 | 2 |
| 3 | ロギングとモニタリング | 3.1–3.4(4) | 1 | 3 |
| 4 | ユーザーアクセスと認可 | 4.1–4.4(4) | 0 | 4 |
| 5 | データ保護 | 5.1–5.3(3) | 0 | 3 |
| 6 | CockroachDB の設定 | 6.1–6.5(5) | 1 | 4 |
各管理策の定義と、クイックスキャン用コマンドおよび完全監査の手順については、CIS controls reference を参照してください。
評価ワークフロー
ステップ 0:監査範囲の確認
開始する前に、ユーザーに次の項目を確認します。
- 監査の深さ — 簡易スキャン、完全監査、または両方
- 対象ノード — 監査するノード(すべてのノードを推奨)
- CockroachDB サービスアカウント — CockroachDB を実行するユーザー名(デフォルト:
cockroach) - 証明書ディレクトリ — TLS 証明書へのパス(デフォルト:
/var/lib/cockroach/certs) - データディレクトリ — CockroachDB データストアへのパス(デフォルト:
/var/lib/cockroach) - ログディレクトリ — ログへのパス(デフォルト:
/var/lib/cockroach/logsまたは<store>/logs) - Enterprise ライセンス — Enterprise 機能(EAR)が利用可能かどうか
これらの値を記録してください。以下のチェックでは、これらの値をパラメーターとして使用します。
ステップ 1:インストールとパッチ(コントロール 1.1~1.7)
これらのコントロールでは、バイナリの整合性、systemd によるサービス管理、TLS の初期化、バージョンの統一性、アップグレード手順、保存データの暗号化を確認します。
主なチェック:
- 1.1:公式ソースからバイナリをダウンロードし、SHA-256 を検証済み(手動)
- 1.2:
systemctl is-enabled cockroach.service→enabled(自動) - 1.3:
--insecureフラグがなく、certs ディレクトリが存在し、有効な CA 署名付き証明書がある(自動) - 1.4:
ps aux | grep -c insecure→0(自動) - 1.5:すべてのノードが同じバージョンを実行している —
cockroach versionによる簡易スキャン、DB Console の Node List とcrdb_internal.gossip_nodesによる完全監査(自動) - 1.6:ローリングアップグレードのランブックが存在し、テスト済み(手動)
- 1.7:外部 KMS を使用して
--enterprise-encryptionが設定され、キーがディスク上にない(手動)
ステップ 2:システムの強化とトポロジー(コントロール 2.1~2.7)
これらのコントロールでは、時刻同期、プロセスの分離、ネットワークのセグメント化、メモリ設定、ファイルディスクリプター、権限の制限など、OS レベルの設定を確認します。
主なチェック(各ノードで実行):
- 2.1:NTP/chrony が有効で、オフセットが
--max-offset未満(自動) - 2.2:各ホストで CockroachDB プロセスが 1 つだけ実行されている(自動)
- 2.3:専用サブネットを使用し、ポート 26257/8080 の受信トラフィックを制限している(手動)
- 2.4:
swapon --show | wc -l→0(自動) - 2.5:THP が
madviseまたはneverに設定されている(自動) - 2.6:cockroach ユーザーのファイルディスクリプター上限が 15,000 以上(自動)
- 2.7:cockroach ユーザーに sudo 権限がない(自動)
ステップ 3:ログ記録とモニタリング(コントロール 3.1~3.4)
これらのコントロールでは、ログ設定、ローテーション、認証イベントの記録、モニタリングとアラートを確認します。
主なチェック:
- 3.1:ログディレクトリが存在し、所有者が cockroach で、権限が 700(手動)
- 3.2:CockroachDB の設定または logrotate によるログローテーションが構成されている(手動)
- 3.3:
server.auth_log.sql_connections.enabledとserver.auth_log.sql_sessions.enabledの両方がtrue(自動) - 3.4:モニタリングシステムがメトリクスをスクレイピングし、アラートが設定されている(手動)
ステップ 4:ユーザーアクセスと認可(コントロール 4.1~4.4)
これらのコントロールでは、ホストベースの認証、パスワードのセキュリティ、root ユーザーの強化、ID 管理の一元化を確認します。
⚠️ コントロール 4.2(完全監査のみ): 保存されたパスワードハッシュの検査には、
SET allow_unsafe_internals = trueが必要です。これは緊急時の監査専用操作です。許可されたオペレーターが専用の管理者セッションでのみ実行し、直後にSET allow_unsafe_internals = falseで必ずリセットしてください。アプリケーションのワークロードでは使用しないでください。
主なチェック(すべて SQL):
- 4.1:HBA で特定の IP 範囲と強力な認証方式を指定し、すべてを拒否するルールを設定している(手動)
- 4.2:
password_encryptionがscram-sha-256で、保存されたハッシュが SCRAM 形式(手動) - 4.3:HBA の証明書方式を使用して root を特定のホストに制限し、アクティビティを監査している(手動)
- 4.4:OIDC/LDAP が有効で、ID マッピングが設定され、ローカルアカウントが最小限に抑えられている(手動)
ステップ 5:データ保護(コントロール 5.1~5.3)
これらのコントロールでは、バックアップの暗号化、復旧テスト、マルチリージョンでのデータローカライズを確認します。
主なチェック項目:
- 5.1:バックアップで
kmsまたはencryption_passphraseを使用しているか、ストレージレイヤーの暗号化が適用されています(手動) - 5.2:復旧手順を四半期ごとにテストし、結果を文書化しています(手動)
- 5.3:マルチリージョンテーブルで、データレジデンシーのために
REGIONAL BY ROWまたはゾーン制約を使用しています(手動)
ステップ 6:CockroachDB の設定(コントロール 6.1~6.5)
これらのコントロールでは、証明書のセキュリティ、設定の秘匿化、監査ログ、セッションタイムアウト、OCSP を確認します。
主なチェック項目:
- 6.1:秘密鍵のアクセス権が
0600で、証明書の有効期限が 90 日以上です(自動) - 6.2:デバッグバンドルで
--redactを使用し、ログにシークレットが含まれていません(手動) - 6.3:
sql.log.user_auditが空でなく、sql.log.admin_audit.enabled=trueで、セキュリティチャネルが設定されています(手動) - 6.4:
sql.defaults.idle_in_session_timeoutが設定されています(例:15m)(手動) - 6.5:
security.ocsp.mode=strictまたはlaxです(手動)
レポート形式
サンプルレポートの構成に従って、Markdown レポートを生成してください。
ステータスマーカー:
[PASS]— コントロールを満たしています[FAIL]— コントロールを満たしていないため、修正が必要です[MANUAL]— 人による確認が必要です。自動チェックではコンプライアンスを判定できません[N/A]— コントロールの適用対象外です(例:Enterprise ライセンスなしでの EAR)
他のセキュリティスキルとの関係
Cloud とセルフホストの両方を対象とした、より広範なセキュリティ態勢の評価には、auditing-cloud-cluster-security を使用してください。
安全上の考慮事項
- すべての操作は読み取り専用です。 クラスター設定、OS 設定、ファイルは変更されません。
- シェルコマンドでは読み取り専用のツールを使用します:
ps、ls、cat、grep、systemctl is-enabled/is-active、swapon --show、ulimit、openssl x509、openssl verify。 - SQL クエリでは SHOW と SELECT のみを使用します。 DDL 文や DML 文は使用しません。
- 例外が 1 つあります(4.2): パスワードハッシュの検査を含む完全な監査手順では、
SET allow_unsafe_internals = trueが必要です。これは読み取り専用の緊急アクセス操作で、直後に (SET allow_unsafe_internals = false) でリセットする必要があります。この手順を実行できるのは、認可されたオペレーターのみです。 - シークレットは記録されません。 証明書の秘密鍵やパスワードは、レポート出力に含まれません。
- 権限の確認: 一部の SQL クエリには、admin または VIEWACTIVITY 権限が必要です。レポートには、権限の不足があればその内容が記載されます。
参考資料
スキルの参考資料:
- CIS コントロールのリファレンス — クイックスキャンコマンドと完全な監査手順を含む、30 個すべてのコントロール
- CIS 監査用 SQL クエリ — 評価で使用するすべての SQL クエリ
- 監査レポートのサンプル — 所見を含むレポートの例
信頼できる情報源:
関連スキル:
- クラウドクラスターのセキュリティ監査 — より広範なセキュリティ体制の評価
- 監査ログの設定 — SQL 監査ログの設定
- ユーザー権限の強化 — RBAC の厳格化
- パスワードポリシーの適用 — パスワードポリシーの適用
- TLS 証明書の管理 — TLS 証明書の管理
- CMEK 暗号化の有効化 — 保存データの暗号化
- SSO と SCIM の設定 — SSO と SCIM のプロビジョニング
CockroachDB 公式ドキュメント: