Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Claude Code を安全に使おう勉強会 / Claude Code Security B...
Search
MasahiroKawahara
April 23, 2026
Technology
230
0
Share
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
MasahiroKawahara
April 23, 2026
More Decks by MasahiroKawahara
See All by MasahiroKawahara
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
30k
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
3.6k
AWS環境のリソース調査を Claude Code で効率化 / aws investigate with cc devio2025
masahirokawahara
2
1.9k
ここ一年のCCoEとしてのAWSコスト最適化を振り返る / CCoE AWS Cost Optimization devio2025
masahirokawahara
1
2.2k
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
1.5k
Amazon DevOps Guru のベースラインを整備して1ヶ月ほど運用してみた #jawsug_asa / Amazon DevOps Guru trial
masahirokawahara
3
720
DuckDB MCPサーバーを使ってAWSコストを分析させてみた / AWS cost analysis with DuckDB MCP server
masahirokawahara
0
2.6k
セキュリティ系アップデート全体像と AWS Organizations 新ポリシー「宣言型ポリシー」を紹介 / reGrowth 2024 Security
masahirokawahara
0
1.2k
わたしとトラックポイント / TrackPoint tips
masahirokawahara
1
660
Other Decks in Technology
See All in Technology
Revisiting [CLS] and Patch Token Interaction in Vision Transformers
yu4u
0
300
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
310
AWS DevOps Agentはチームメイトになれるのか?/ Can AWS DevOps Agent become a teammate
kinunori
6
620
Azure Speech で音声対応してみよう
kosmosebi
0
140
"SQLは書けません"から始まる データドリブン
kubell_hr
2
460
JOAI2026講評会資料(近藤佐介)
element138
1
150
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
4
400
AWS認定資格は本当に意味があるのか?
nrinetcom
PRO
1
250
非エンジニア職からZOZOへ 〜登壇がキャリアに与えた影響〜
penpeen
0
490
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
160
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
5
14k
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
130
Featured
See All Featured
Bash Introduction
62gerente
615
210k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
260
Darren the Foodie - Storyboard
khoart
PRO
3
3.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
The untapped power of vector embeddings
frankvandijk
2
1.7k
How STYLIGHT went responsive
nonsquared
100
6k
Tell your own story through comics
letsgokoyo
1
890
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Balancing Empowerment & Direction
lara
6
1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
180
Transcript
Claude Code を 安全に使おう勉強会 (※DevelopersIO向けに社内勉強会スライドをアレンジ済み) 川原征大(kawahara-masahiro) 2026-04-23 1
目次 イントロ Claude Code の仕組みを知る Claude Code を安全に使うには? 抑止する工夫 制限する工夫
隔離する工夫 その他いろいろ おわりに 参考 2
イントロ 勉強会の目的やアジェンダ、スコープについて話します。 3
勉強会の目的 Claude Code (に限らず、AIエージェント) はとても便利です。 しかしリ スクもあり、暴走もします。 この勉強会では、 Claude Codeが適切な範囲で適切に動けるような、
ガ ードレールの敷き方 を学びます。 4
アジェンダ 1. Claude Code の仕組みを知る 2. Claude Code を安全に使うには? 3.
抑止する工夫 4. 制限する工夫 5. 隔離する工夫 6. その他いろいろ 5
話すこと / 話さないこと 話すこと Claude Code の仕組みとセキュリティの考え方 settings.json の permissions
/ Hooks / サンドボックス 推奨設定のサンプル共有 話さないこと MCP / Skill など拡張機能のセキュリティ 周辺知識(GitHub / Terraform / コーディング等)のセキュリティ 詳細な settings.json の書き方 ガバナンス・コンプライアンス領域の話 推論の地理的制約、データ保持期間、監査要件など 6
Claude Code の仕組みを知る Claude Code の仕組み、特に agenticループとツールの話をします。 7
agenticループ agenticループは コンテキストの収集、アクションの実行、結果の検証 の 3つのフェーズで構成されます。 あなた自身もループの一部です。 出典: https://code.claude.com/docs/ja/how-claude-code-works 8
agenticループのコンポーネント agenticループは 推論するモデル と アクションを実行するツール によっ て駆動されます。 : コードを理解し、次に何をすべきか推論・判断する 具体例:
sonnet , opus : モデルの判断に基づきファイル操作やコマンド実行などを実 際に行う 具体例: Read , Edit , Bash モデル ツール 9
参考: 組み込みツールができること カテゴリ Claude ができること ファイル 操作 ファイルの読み取り、コード編集、新規ファイル作成、名前 変更と再編成 検索
パターンでファイルを検索、正規表現でコンテンツを検索、 コードベースを探索 実行 シェルコマンド実行、サーバー起動、テスト実行、git 使用 ウェブ ウェブ検索、ドキュメント取得、エラーメッセージ検索 – 引用: (抜粋) Claude Code の仕組み - Claude Code Docs 10
ツールが agentic の肝 ツールが無かったらClaudeはテキスト応答しかできません。 ツールがあ ることでアクションを実行できます。 <ツール制御がセキュリティの肝!> 11
Claude Code を安全に使うには? セキュアな環境を作るには ツールの制御 が大事になってきます。 どのような制御アプローチがあるか、学びましょう。 12
以下3軸で考えてみました 抑止する : 危険なツールを実行させないように誘導する 制限する : 危険なツールを実行できないようにする 隔離する : 危険なツールを実行しても問題ない環境を作る
13
Claude Code で実現するには? 抑止する → CLAUDE.md 制限する → Permissions, Hooks
隔離する → サンドボックス, Dev Container (それぞれの話は後ろで説明します!) 14
クラウド事業本部なのでむりやりAWSに絡めます ※ 鵜呑みにしないでください 15
抑止する 16
制限する 17
隔離する 18
抑止する工夫 Claudeが危険なツール実行をしないように お願い する工夫を考えます。 19
CLAUDE.md CLAUDE.md を使って Claude に永続的な指示を与える方法を見ていきま す。 20
CLAUDE.md とは CLAUDE.md ファイルは、プロジェクト、個人的 なワークフロー、 または組織全体に対して Claude に 永続的な指示を与えるマークダウンファイル で
す。 Claude は 各セッションの開始時にそれらを読 みます 。 – Claude があなたのプロジェクトを記憶する方法 - Claude Code Docs 21
CLAUDE.md を置く場所(スコープ) CLAUDE.md は配置する場所によってスコープが変わります。 スコープ 場所 共有対象 管理ポリシ ー OS
のシステムディレクトリ 組織内のすべてのユーザ ー プロジェク ト指示 ./CLAUDE.md or ./.claude/CLAUDE.md ソース管理を通じたチー ムメンバー ユーザー指 示 ~/.claude/CLAUDE.md あなただけ(全プロジェ クト共通) – CLAUDE.md ファイルをどこに配置するかを選択する - Claude Code Docs 22
危険なツール実行をしないように "お願い" するサンプル CLAUDE.md に「やってほしくないこと」を書いておく例です。 ⚠ お守り程度と思いましょう CLAUDE.md はあくまで「お願い」です。Claude は読んで従おうとしますが、
厳 密な遵守の保証はありません。 次のセクション「制限する工夫」でツール実行そのものを制御しましょう。 # セキュリティ - .env, credentials 等の機密ファイルを読み取り・編集・コミットし - シークレットやAPIキーをコードにハードコードしないこと - rm -rf / や force push 等の破壊的コマンドを実行しないこと 23
その他の抑止手段 CLAUDE.md 以外にもいくつか工夫できるポイントがあります。 にもコンテキストファイルを置ける paths フィールドで特定ファイルにスコープしたルールを書ける 曖昧な指示を避ける 「認証失敗する、直して」→ 試行錯誤で操作範囲が広がりがち そもそも破壊的な操作は
Claude に依頼しない terraform apply/destroy 、ディレクトリ削除 等 .claude/rules/ 24
制限する工夫 ツール実行そのものを 機械的に制御 する仕組みを学びます。 そのために、まずはツールのことを知りましょう。 25
ツールの種類 Claude Code は組み込みツールを通じてアクションを実行します。 主要 なツールは以下のとおりです。 ツール 説明 Bash シェルコマンドを実行する
Read ファイルの内容を読み取る Edit 特定のファイルに対して対象を絞った編集を行う Write ファイルを作成または上書きする WebFetch 指定された URL からコンテンツを取得する … … – ツール リファレンス - Claude Code Docs 26
特に制御したいツール セキュリティの観点で特に制御したいのはこのあたりです。 Bash : シェルコマンドを何でも実行できてしまう Read : 機密ファイル( .env 等)を読まれてしまう
Edit / Write : 更新されたくないファイルを変更できてしまう 27
settings.json で権限を制御する ツールの制御は settings.json の permission セクションに記載します。 28
settings.json とは Claude Code の動作を構成する設定ファイルです。 権限ルール、フック、サンドボックス、その他諸々の設定を定義します。 参考: settings#利用可能な設定 29
settings.json の置き場所(スコープ) settings.json は配置する場所でスコープが変わります。 スコープ 場所 共有対象 Managed OS のシステムレベル
組織内のすべてのユーザー User ~/.claude/settings.json あなただけ(全プロジェクト) Project .claude/settings.json チームメンバー Local .claude/settings.local.json あなただけ – 構成スコープ - Claude Code Docs 30
permissions セクションに権限ルールを記載する allow : 手動承認なしでツール使用を許可 ask : ツール使用のたびに確認を促す deny :
ツール使用を拒否 { "permissions": { "allow": [ ... ], "ask": [ ... ], "deny": [ ... ] } } 31
Tips: 評価の順序 権限ルールは deny → ask → allow の順番で評価されます。 最初にマッチしたルールが優先されるため、
deny は常に最優先 です。 32
権限ルールの書き方 ルールは Tool または Tool(specifier) の形式で書きます。 ルール 効果 Bash すべての
Bash コマンドをマッチ Bash(npm run *) npm run で始まるコマンドをマッチ Read(~/.zshrc) ~/.zshrc ファイル読み取りをマッチ Edit(/src/**/*.ts) <project root>/src/ 配下の TS ファイル編集をマ ッチ Read(//**/.env*) システム全体の .env* ファイル読み取りをマッチ – (読み込み推奨!) 権限ルール構文 - Claude Code Docs 33
推奨設定のサンプル ~/.claude/settings.json に置く例です。 完全なサンプルは こちら → { "permissions": { "deny":
[ "Read(//**/.env*)", "Read(//**/credentials*)", "Edit(//**/.env*)", "Edit(//**/credentials*)", "Bash(rm *)", "Bash(git *)" ]}} Gist 34
⚠ Read(.env)のdeny は Bash(cat .env) を防げない ReadやEditの deny の影響範囲は、あくまで "そのツール内のみ"
です。 Bash 経由のファイル/ネットワークアクセスも防ぐには、後述のサンドボックスや Hooks が有用です。 35
その他の制限手段: Hooks settings.json の deny ではカバーしきれない範囲もあります。 そういった範囲は Hooks (や その次のSandbox)
で補いましょう。 36
Hooks とは Claude Code ライフサイクル内の特定ポイントで 自動実行される、 ユー ザー定義のシェルコマンド(など) です。 同じく
settings.json に記載しま す。 観点 permissions (deny/allow) Hooks 方式 静的なパターンマッチ スクリプトによるチェック 柔軟性 ツールとパターンの組み合わせ 任意のロジックを実装可能 用途 基本的なアクセス制御 複雑な条件での判定 – Claude Code フック - Claude Code Docs 37
ライフサイクルイベントの例 イベント いつトリガーするか SessionStart セッション開始時 PreToolUse ツール呼び出しの直前 PostToolUse ツール呼び出しの成功後 Notification
Claude がユーザーに通知を送信する時 ツール制御の文脈では PreToolUse をよく使います。 38
Hooks の活用例 具体的な書き方は を参照ください。 PreToolUse フックを使用する。 Bash コマンドの URL を検証し、許可されていないドメインをブロ
ックするフックを実装します。 – 権限を設定する - Claude Code Docs Hooksリファレンス 39
隔離する工夫 影響範囲を限定する 仕組みを学びます。 40
サンドボックス Bash ツールのファイルシステムとネットワークを OS レベルで制限する 仕組みです。 41
サンドボックスとは サンドボックスのスコープは Bash ツールとその子プロセスのみ です。 Read, Edit, Write, WebFetch 等のほか組み込みツールは対象外です。
Claude Code は ネイティブサンドボックス機能 を 備えており、エージェント実行のためのより安全な 環境を提供しながら、継続的な許可プロンプトの必 要性を軽減します。 各 bash コマンドの実行許可を 求める代わりに、サンドボックス化により 事前に定 義された境界 が作成され、Claude Code はリスク を軽減しながらより自由に動作できます。 – サンドボックス - Claude Code Docs 42
何が嬉しい? permissions の deny パターンは コマンド文字列 のマッチです。 しかし、コマンドはいくらでも書き換えられます。 python -c
"print(open('.env').read())" や less .env 、 my-custom-script .env な ど、いくらでも迂回できます。 サンドボックスは OSレベル でファイルアクセスとネットワーク接続を制 限するため、 コマンド名に関係なく、すべての子プロセスに同じ制約が適 用されます。 "deny": ["Bash(cat .env)", "Bash(curl example.com)"] 43
有効化の方法 settings.json に以下を記載します。 (もしくは /sandbox で有効化) ⚠ autoAllowBashIfSandboxed は最初は false
にしたほうが良い autoAllowBashIfSandboxed はデフォルト true です。 この状態では Bash コマンド が自動承認されるため、 ファイルシステム・ネットワークの境界設定や permissions 設定が不十分なまま有効にすると危険です。 最初は false にして手動承認を残しておくのが安全です。 { "sandbox": { "enabled": true, "autoAllowBashIfSandboxed": false }} 44
境界の設定方法 出典: sandbox > filesystem, network に定義します。 詳しい書き方は を参照ください。いちサンプル →
https://code.claude.com/docs/ja/settings 公式リフ ァレンス Gist 45
その他の隔離手段: Dev Container より強力な隔離が必要な場合は も選択肢です。 コンテナ内で Claude Code を実行し、ホストシステムから完全に分 離
ファイアウォールでネットワーク接続先をホワイトリスト制限 Anthropic が を提供しています Dev Container リファレンス実装 46
その他いろいろ 雑多なTipsや所感、メモを書いていきます。 あまり整理できていないところもあります。 47
Claude Code を起動する場所に注意する デフォルトの挙動として、Claude Code は 起動されたディレクトリ内の ファイルにアクセス できます。 したがって、起動する場所を絞ること
が、そのままアクセス範囲を絞ることに繋がります。 ホームディレクトリや複数プロジェクト/コンテキストが混じったような デカいディレクトリでの起動は避けましょう 。 無関係なファイルまでア クセスされるリスクがあるためです。 参考: 作業ディレクトリ - Claude Code Docs 48
Permissions / Hooks / サンドボックス はどう使い分け る? Permissions とサンドボックスは補完関係であり両方使うべき です。
各ツールの基本的な制御 → Permissions Bash 実行のOSレベルでの封じ込め → サンドボックス Hooks は Permissions やサンドボックスでは制御が難しい、 高度な allow/deny 判断処理が必要な場合に使うと良いです。 49
サンドボックスを触り始めた雑感(メモレベル) permissions.deny の Bash(xx) では防ぎきれない、 ファイル読み書 き・NW経由の迂回を封じ込められるのは、かなり便利 デフォルトだと Bash 実行が承認無しになる。
怖いので、 autoAllowBashIfSandboxed:false を入れた デフォルトだとサンドボックス内での Bash 実行が失敗した時に、 承認を求めたうえでサンドボックス外で再実行しようとする allowUnsandboxedCommands:false を入れて、バイパスを止めた サンドボックス外で実行したいコマンドは excludedCommands に 明示的に書く運用が良さそう 最初は Bashの実行失敗 or NWアクセス承認/拒否確認が多発しが ち。 地道にチューニングしながら運用するのが現実的 50
たとえば aws コマンドを実行させると 169.254.169.254 (インスタン スメタデータ) や *.amazonaws.com への アクセス承認を都度求められ
る。これらは network.allowedDomains で許可すると良い gh / terraform 等の Go製ツールはサンドボックス内から macOS の TLS 信頼サービスにアクセスできず失敗する enableWeakerNetworkIsolation:true で回避できるが、 ネットワー ク隔離が弱まる点はトレードオフ 51
パーミッションモードを使い分けよう – 引用: 利用可能なモード - Claude Code Docs 52
dangerously-skip-permissions は原則使わない --dangerously-skip-permissions フラグは --permission-mode bypassPermissions と同等です。 保護されたディレクトリへの書き込みを 除く、すべての権限プロンプトをスキップします。 強力な隔離環境で動か
す場合を除き、 原則使わない ようにしましょう。 💡 Tips: バイパスモード自体をブロックできる settings.json に disableBypassPermissionsMode: "disable" を設定すると、そもそも バイパスモードに入れなくできます。 通常は組織ポリシーを強制する目的で に置かれます。 管理設定(managed-settings) 53
autoMode の雑感(メモレベル) autoMode は 分類器モデルがアクションの安全性を判断 し、許可な しで実行可否を決めるモード (現在は研究プレビュー) 少し触った感想: わりと承認無しに色々実行するので、ちょっと怖
い。 Permissions や Sandboxing の設定はちゃんと固めた上で使い たいと思った 未検証: autoMode.environment で信頼インフラを分類器に連携できる 未検証: 分類器組み込みのblock/allowルールをオーバーライドできる autoMode.allow / autoMode.soft_deny に追加ルールを定義する claude auto-mode defaults でデフォルトの完全なリストを取得 し、 それをベースに編集する (空リストから書き始めない) 54
出典: ブロックルールと allow ルールをオーバーライドする - Claude Code Docs 55
小ネタ: "🤖 Co-Authored-By" を消す キーを更新して、 git コミットとプルリクエストメッセージを カスタマイズできます。 以下、空にする設定です。 ※
includeCoAuthoredBy 設定は非推奨になっています。 attribution { "attribution": { "commit": "", "pr": "" }} 56
Claude Code の周辺環境も整えましょう シークレット管理ツール ( , 等) 認証情報を .env などに平文で置くのを避けます
Claude Code に読み取られるリスク自体を無くしましょう .gitignore 機密情報は確実に ignore します。 誤ってコミット対象に含めて しまうリスクを下げましょう settings.local.json など個人設定も ignore 対象にします。 個 人設定の設定が他メンバーに混ざるのを防ぎます で機密情報のコミットを検出・ブロックします など… 1Password CLI aws-vault pre-commit gitleaks 57
有益なリソース 読み込みたい公式ドキュメント : 基本仕様や設定可能なキー一覧が分かる : 権限ルールの構文が分かる : サンドボックス機能を理解できる : 各モードの権限が分かる
: 利用可能なツール一覧が分かる Claude Codeの設定 設定 > 権限 設定 > サンドボックス はじめに > パーミッションモード リファレンス > ツール 58
おわりに 以下、今回話したことです。 安全に Claude Code を使うには ツールの制御が肝 抑止 : CLAUDE.md
でお願いする。ただしお守り程度と割り切る 制限 : permissions で deny/ask/allow を定義する。複雑な判定は Hooks で補う 隔離 : サンドボックスで Bash ツールを OS レベルで封じ込める。よ り強力な隔離は Dev Container も選択肢 周辺環境 (シークレット管理、 .gitignore 、pre-commit 等) も合わ せて整えよう 安全な Claude Code 環境を作りましょう! 59
参考 本資料作成にあたり、参考にしたリンクを記載します。 60
Claude Code 公式ドキュメント 基本情報 settings.json (権限/ツール/Hooks) サンドボックス, Dev Container Claude
Code の仕組み Claude があなたのプロジェクトを記憶する方法 モデル構成 パーミッションモード Claude Code の設定 権限を設定する ツール リファレンス Hooksリファレンス サンドボックス Dev Container 61
関連リポジトリ・ツール anthropics/claude-code/.devcontainer - Dev Container リファレ ンス実装 1Password CLI 99designs/aws-vault
pre-commit gitleaks/gitleaks 62