Claude Code 安全運用 研修 / モジュール 5(公開版)

モジュール 5: 組織の baseline と CI のゲート

全員に安全 baseline を配布・強制し、CI で安全のスコアが閾値を下回ったら止める。手を動かす演習で学びます。

このモジュールの到達目標。 組織で共有する安全 baseline を設計し、全員と全リポジトリへ配布・強制でき、CI に安全のゲートを置いて、危険な設定を出荷の手前で止められる。

これは研修の公開のモジュールです。そのまま読んで手を動かせます。モジュール 1モジュール 4に続く5本目で、残りのモジュール(事故対応と復旧)の構成はカリキュラムをご覧ください。

1. なぜ手作業の配布では守れないのか

モジュール 1〜4 で学んだ防御(削除・機密・費用・委譲の hook)は、入れた人だけを守ります。組織では、これが最大の弱点になります。1人が hook を入れ忘れていれば、その1人の環境で #27063 のデータベースの破壊や #65152 のサブエージェントの暴走が起こりえます。組織の安全は、最も無防備な1人の水準で決まります。

手作業で「各自入れてください」と配ると、必ず設定のズレ(人によって入っている hook が違う)と付け忘れ(新しいメンバー、新しいリポジトリ)が起きます。だから、安全 baseline は、口頭の依頼ではなく、git で配布し、CI で強制します。

2. baseline・配布・強制の3つの層

組織の安全は、3つの層で考えます。

(1) baseline を決める

何を
全員に必須の hook の一式(削除・機密・費用・委譲の防御)を、組織の baseline として固定する。

(2) git で配布する

何を
baseline をリポジトリの .claude/hooks/ に入れて git で配る。各自の手作業に頼らず、リポジトリを clone すれば baseline が付いてくる状態にする。

(3) CI で強制する

何を
CI で安全のスコアを測り、閾値を下回ったら出荷を止める。設定のズレや付け忘れを、PR の段階で機械的に検出する。

3. 演習: baseline を配り、CI で強制する

実際に baseline をリポジトリで共有し、CI のゲートを置きます。所要およそ15分。

手順 1. baseline をリポジトリで共有する

プロジェクトの単位で hook を共有するには --team を使います。

npx cc-safe-setup --team

これで hook がリポジトリの .claude/hooks/ に入ります。これを git にコミットすれば、リポジトリを clone した全員に baseline が配布され、各自の手作業の付け忘れがなくなります。

手順 2. 自分の設定の安全のスコアを測る

監査は、設定の安全のスコア(0〜100)と、足りない防御の一覧を出します。

npx cc-safe-setup --audit

スコア、評価(A/B/C/F)、検出した risk の数が表示されます。--audit --fix で自動で直せるものは直せます。スコアは設定の状態で変わるため、「何点以上を組織の必須にするか」を baseline として決めます(既定の CI の閾値は70点)。

手順 3. CI のゲートを置く(閾値を下回ったら止める)

監査を CI に組み込み、スコアが閾値を下回ったら CI を落とします。次のワークフローを .github/workflows/ に置きます(npx cc-safe-setup --generate-ci でも生成できます)。

name: Claude Code Safety
on:
  pull_request:
  push:
    branches: [main, master]
jobs:
  safety-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - name: Run safety audit
        run: |
          npx cc-safe-setup --audit --json > /tmp/audit.json 2>&1 || true
          SCORE=$(jq -r '.score // 0' /tmp/audit.json)
          echo "Safety score: $SCORE/100"
          if [ "$SCORE" -lt 70 ]; then
            echo "::error::Safety score $SCORE is below threshold (70)"
            exit 1
          fi

これで、安全のスコアが70点を下回る PR は、CI で止まります。閾値は組織の baseline に合わせて調整します(GitHub Marketplace の Action 版では threshold の入力で指定できます)。

無料です。 --team--audit・CI のゲートは、すべて cc-safe-setup(無料・MIT)の機能です。組織への配布と強制に、追加の費用はかかりません。
確認(このモジュールの修了の判定)。 次のすべてに「はい」と答えられれば修了です。

4. 自社への適用

次のモジュールと、研修の全体

このモジュールは「組織で守る層」です。研修の全体(約12時間・7モジュール)では、削除とデータ破壊(モジュール 1)、機密と認証情報(モジュール 2)、費用と利用枠(モジュール 3)、サブエージェントと auto モード(モジュール 4)に続き、最後に事故対応と復旧を、同じように手を動かして学びます。

研修のカリキュラム全体を見る 法人での実施・費用の相談

本モジュールは公開版です。引用した事故はすべて番号で辿れる実際の報告で、演習で使う機能(--team--audit・CI のゲート)はすべて cc-safe-setup(無料・MIT)に実在します。安全のスコアは設定の状態で変わるため、特定の点数は記載していません。個人での利用は無料のままです。