Slide 1

Slide 1 text

Claude Code をセキュアに使うための 考え方と設定の勘どころ Claude Codeセミナー セキュリティ/ガバナンス編 2026-06-16 川原 征大 1

Slide 2

Slide 2 text

目次 本発表について 導入 守り方を3軸で考える 抑止する: CLAUDE.md 制限する: permissions 隔離する: サンドボックス おわりにむけて 参考リンク 2

Slide 3

Slide 3 text

本発表について 自己紹介と本発表の狙いをお伝えします。 3

Slide 4

Slide 4 text

自己紹介 川原征大 (kawahara-masahiro) クラスメソッド クラウド事業本部コンサルティング部 ブログ: 最近やっていること CCoEメンバーとしてAWSマルチアカウント環境のコストやセキ ュリティ改善、AI活用推進 AIエージェントのアプリ/インフラ開発の伴走支援 https://dev.classmethod.jp/author/kawahara-masahiro/ 4

Slide 5

Slide 5 text

本発表の狙い 想定する視聴者 Claude Code を使う方 / チームや組織で管理・推進する方 達成したいこと Claude Code を安全に使う / 使わせるために必要なセキュリテ ィの考え方をざっくりと把握する 5

Slide 6

Slide 6 text

話さないこと 細かいトピックや技術的な挙動、シンタックスには踏み込みません。 📝 より技術的な話は... 社内エンジニア向けに実施した勉強会資料を公開しています。 設定の具体的なシンタックスや挙動の詳細はこちらをご覧ください。 → Claude Code を安全に使おう【社内勉強会スライド】 | DevelopersIO 6

Slide 7

Slide 7 text

導入 Claude Code の仕組みと、ツール制御の重要性について、簡単に押さえ ます。 7

Slide 8

Slide 8 text

Claude Code は Agentic Loop で動く Claude Code は 推論 → ツール実行 → 検証 を繰り返す ループ (Agentic Loop)で動きます。 モデルが「次に何をすべきか」を考え、 ツール がファイル操作やコマン ド実行などの実際のアクションを担います。 出典: https://code.claude.com/docs/ja/how-claude-code-works 8

Slide 9

Slide 9 text

ツールは多種多様 = 何でもできる Claude Code のツールは多彩で、たいていの操作ができてしまいます。 Read : ファイルを読む Edit / Write : ファイルを変更する Bash : シェルコマンドを何でも実行する MCP や Skill : 広義にはツールの一種として扱われる 💡 だからこそツール制御が肝 Claude が「できること」はツールで決まります。 つまり ツールをどう制御するか が、そのまま安全性を左右します。 9

Slide 10

Slide 10 text

守り方を3軸で考える ツールの制御アプローチを、3つの軸で整理します。 10

Slide 11

Slide 11 text

抑止 / 制限 / 隔離 抑止する : 危険なツールを実行させないように誘導する 制限する : 危険なツールを実行できないようにする 隔離する : 危険なツールを実行しても問題ない環境を作る 💡 Claude Code で実現するには 抑止 → CLAUDE.md / 制限 → permissions / 隔離 → サンドボックス 11

Slide 12

Slide 12 text

ヒトに例えると 新しいメンバーに仕事を任せるイメージです。 軸 考え方 ヒトでいうと 抑 止 「やらないでね」とお願い する ルールを伝える・注意する 制 限 仕組みで操作を防ぐ 危険な道具(刃物・工具など)を持た せない 隔 離 影響が及ばない環境にする 外と隔てた専用の作業部屋で作業して もらう 仕組みや環境で多層に守るのが基本です。 12

Slide 13

Slide 13 text

抑止する: CLAUDE.md まずは Claude に「お願い」する工夫です。 13

Slide 14

Slide 14 text

CLAUDE.md で「お願い」する CLAUDE.md は Claude に 永続的な指示を与える マークダウンです。 Claude は各セッションの開始時にこれを読みます。 「やってほしくないこと」を書いておく例: # セキュリティ - .env, credentials 等の機密ファイルを読み取り・編集しない - シークレットやAPIキーをコードにハードコードしないこと - rm -rf / や force push 等の破壊的コマンドを実行しないこと 14

Slide 15

Slide 15 text

CLAUDE.md の動作イメージ 15

Slide 16

Slide 16 text

CLAUDE.md の注意点 ⚠ お守り程度と思いましょう CLAUDE.md はあくまで「お願い」です。Claude は従おうとしますが、 厳密な遵 守は保証されません。 次の「制限する」で、ツール実行そのものを止めましょう。 16

Slide 17

Slide 17 text

制限する: permissions お願いではなく、 機械的に ツール実行を制御します。 17

Slide 18

Slide 18 text

permissions で止める ツールの許可・拒否は settings.json (Claude Code 設定ファイル)の permissions に書きます。 permissions.allow : 手動承認なしで許可 permissions.ask : 実行のたびに確認する permissions.deny : 拒否する 💡 評価の順序 ルールは deny → ask → allow の順に評価されます。 最初にマッチしたものが優先されるため、deny が常に最優先です。 18

Slide 19

Slide 19 text

permissions.deny の具体例 ~/.claude/settings.json に置く例です。 { "permissions": { "deny": [ "Read(//**/.env*)", "Read(//**/credentials*)", "Edit(//**/.env*)", "Bash(rm *)", "Bash(git push *)" ]}} 19

Slide 20

Slide 20 text

permissions の動作イメージ 20

Slide 21

Slide 21 text

permissions の注意点 ⚠ Read(.env) の deny は Bash(cat .env) を防げない deny の効果は「そのツール内のみ」 。 Bash 経由の迂回 ( cat .env , less.env , スク リプト等) は止められません。 ここを塞ぐのが、次の「隔離」です。 21

Slide 22

Slide 22 text

(隔離の話の前に…) hooks という仕組みもある permissions は静的なパターンマッチですが、より柔軟な制御には hooks が使えます。 ツール実行の直前や直後に、シェルスクリプト等を自動実行できる仕 組み settings.json の hooks に記述する 例: 特定の条件を満たすコマンドを未然にブロックする、など 22

Slide 23

Slide 23 text

隔離する: サンドボックス 実行しても影響が及ばない環境を作ります。 23

Slide 24

Slide 24 text

サンドボックスのアプローチは様々 出典: 今回は手軽に始められる Bash サンドボックス を紹介します。 https://code.claude.com/docs/ja/sandbox-environments 24

Slide 25

Slide 25 text

Bash サンドボックスとは は Bash ツールのファイルアクセスとネットワーク を OS レベル で制限します。 💡 何が嬉しい? OS レベルで制限するため、コマンド名に関係なく すべての子プロセスに同じ制約が かかります。 permissionsで課題だった 「文字列マッチの迂回」を根本から塞げます。 Bash サンドボックス 25

Slide 26

Slide 26 text

Bashサンドボックスの設定例 settings.json の sandbox セクションで有効化します。 { "sandbox": { "enabled": true, "autoAllowBashIfSandboxed": false, "filesystem": { "denyRead": [ "//**/.env*" ] }, "network": { "allowedDomains": [ "dev.classmethod.jp" ] }}} 26

Slide 27

Slide 27 text

Bashサンドボックスの動作イメージ 27

Slide 28

Slide 28 text

Tips: ユーザー体験は結構悪くなる 強力な仕組みですが、使い勝手とのトレードオフがあります。 (以下、自 身の体感を含みます) 最初は Bash の実行失敗や、アクセス承認の確認が多発しがち 一部のツール ( gh , terraform 等) が素の設定では動かないこともあ る 例外や境界設定を地道にチューニングしながら運用するのが現実的 管理設定 ( managed-settings.json 等) で組織全体にサンドボックスを強制 するときは、 開発体験を大きく損なう可能性がある点に注意しましょう。 28

Slide 29

Slide 29 text

おわりにむけて 最後に、今日の要点 + α を話します。 29

Slide 30

Slide 30 text

1つに頼らず、重ねて守る 安全に Claude Code を使う鍵は ツールの制御 。 抑止 : CLAUDE.md でお願いする — ただし「お願い」レベル 制限 : permissions で機械的に止める — ただし迂回経路は残る 隔離 : Bash サンドボックスなどで環境を分離する 重ねて守る のが基本です。 30

Slide 31

Slide 31 text

加えて、周辺環境も整える Claude Code 単体だけでなく、周りも合わせて整えます。 シークレット管理ツール ( , 等) 認証情報を平文で置かず、読み取られるリスク自体を無くす 最小権限の原則 Claude Code に渡す権限は必要最小限に絞る (例: AWS調査の みであればReadOnlyポリシーのみ) 機密情報のコミット防止 .gitignore や 等で、意図しないコミットを未然に防ぐ 1Password CLI aws-vault gitleaks 31

Slide 32

Slide 32 text

加えて、 「人」も大事 仕組みで守るのが基本ですが、 使う人のリテラシー・スキル も大事で す。 たとえば Claude が提案するツール実行に対して「これは OK / これは危 険」を判断できるか。 Linux コマンドや git, aws, python 等のツールに 対する理解があってこそ、 適切に承認・拒否できます。 📝 NIST CSF も「人」を挙げている 代表的なフレームワーク NIST CSF でも、防御 (Protect) の中に 意識向上とトレー ニング (PR.AT) が位置づけられています。 仕組み + 人 の両輪で守りましょう。 32

Slide 33

Slide 33 text

(おわり) 万能なガードレールは無い 利用環境や利用者のリテラシー・スキルなど、 さまざまな条件を鑑みて、 ガードレールを厳しくしたり、緩くしたりします。 自身/プロジェクト/組織の状況に合わせて、調整し続けましょう。 安全な Claude Code 環境を作りましょう! ご清聴ありがとうございます! 33

Slide 34

Slide 34 text

参考リンク Claude Code の設定 - Claude Code Docs 権限を設定する - Claude Code Docs Bash サンドボックス - Claude Code Docs サンドボックス環境 - Claude Code Docs NIST Cybersecurity Framework - NIST Claude Code を安全に使おう【社内勉強会スライド】 - DevelopersIO 34