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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
MasahiroKawahara
April 23, 2026
Technology
240
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
職能の壁を取り払った先で見えた壁 -AI時代のクロスファンクショナル組織-
shimotaroo
1
110
Amazon S3 Filesについて
yama3133
2
150
JOAI2026講評会資料(近藤佐介)
element138
1
150
60分で学ぶ最新Webフロントエンド
mizdra
PRO
33
17k
AIエージェントを構築して感じた、AI時代のCDKとの向き合い方
smt7174
1
250
みんなの「データ活用」を支えるストレージ担当から持ち込むAWS活用/コミュニティー設計TIPS 10選~「作れる」より、「続けられる」設計へ~
yoshiki0705
0
210
AI時代にデータ基盤が持つべきCapabilityを考える + Snowflake Data Superheroやっていき宣言 / Considering the Capabilities Data Platforms Should Have in the AI Era + Declaration of Commitment as a Snowflake Data Superhero
civitaspo
0
110
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
7
1.8k
Azure Static Web Apps の自動ビルドがタイムアウトしやすくなった状況に対応した件/global-azure2026
thara0402
0
340
申請待ちゼロへ!AWS × Entra IDで実現した「権限付与」のセルフサービス化
mhrtech
2
320
DevOpsDays Tokyo 2026 見えない開発現場を、見える投資に変える
rojoudotcom
3
200
Data Hubグループ 紹介資料
sansan33
PRO
0
2.9k
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Context Engineering - Making Every Token Count
addyosmani
9
820
The Language of Interfaces
destraynor
162
26k
Designing for Performance
lara
611
70k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
400
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Building the Perfect Custom Keyboard
takai
2
730
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
710
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
Writing Fast Ruby
sferik
630
63k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
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