CLAUDE LABEN
APPLY — ant CLI v1.30.0 に ant apply が入りました。エージェント・環境・スキル・メモリストア・デプロイメントを、リポジトリのファイルから作成・更新できますLOCKFILE — 書き出される claude-lock.json は必ずコミットしてください。忘れると、実行のたびに同じリソースが新しく作られていきますPLAN — ant apply は適用の前に計画を表示し、承認を挟みます。CI で無人実行するなら、この承認をどう扱うかを先に決めておくことですPRICING — Claude Sonnet 5 の 3 ドル / 15 ドルへの値上げは実施されていません。導入価格の 2 ドル / 10 ドルがそのまま標準価格になりましたSOURCE — 価格と版番号は二次ニュースに誤りが混じります。platform.claude.com のリリースノートで裏を取ってから書くようにしていますBETA — Agent Skills と Skills API はベータを抜け、skills-2025-10-02 ヘッダが不要になりました。Files API はヘッダの有無でレスポンス形式が変わる点に注意ですAPPLY — ant CLI v1.30.0 に ant apply が入りました。エージェント・環境・スキル・メモリストア・デプロイメントを、リポジトリのファイルから作成・更新できますLOCKFILE — 書き出される claude-lock.json は必ずコミットしてください。忘れると、実行のたびに同じリソースが新しく作られていきますPLAN — ant apply は適用の前に計画を表示し、承認を挟みます。CI で無人実行するなら、この承認をどう扱うかを先に決めておくことですPRICING — Claude Sonnet 5 の 3 ドル / 15 ドルへの値上げは実施されていません。導入価格の 2 ドル / 10 ドルがそのまま標準価格になりましたSOURCE — 価格と版番号は二次ニュースに誤りが混じります。platform.claude.com のリリースノートで裏を取ってから書くようにしていますBETA — Agent Skills と Skills API はベータを抜け、skills-2025-10-02 ヘッダが不要になりました。Files API はヘッダの有無でレスポンス形式が変わる点に注意です
記事一覧/Claude Code
Claude Code/2026-08-21中級

Claude Code の read deny が許可フォルダの内側まで届いていなかった話

秘密ファイルとソースが同じツリーに同居する個人開発環境で、permissions.deny の Read ルールが実際にどのファイルまで届いているかを数え直した記録です。棚卸し用のスクリプトつき。

Claude Code250permissions4settings.json8セキュリティ20個人開発126

プレミアム記事

作業ツリーの棚卸しをしていて、手が止まりました。

.env は deny に書いてあります。secrets/ も丸ごと書いてあります。それなのに tools/backup/.env.bak は、どのルールにも当たっていませんでした。

半年前の自分が、設定を差し替える前に取っておいたバックアップです。中身は当時のまま、有効なキーが入っています。

先に結論を書きます

permissions.deny の Read ルールは、書いたパターンに一致したものだけを拒否します。当たり前の話ですが、実際の作業ツリーでこれが何を意味するかというと、ルールを何行書いたかではなく、秘密ファイルが何件残っているかで測らないと安全性は分からない、ということです。

私の環境では、素朴に2行書いた状態から数え直したところ、8件が素通りしていました。ルール側を10行に組み直して0件になりました。

以下は、その数え方と、組み直したあとに残った判断の話です。

秘密とソースが同じツリーに同居している

個人開発では、リポジトリの綺麗な分離がそのまま成り立たないことがあります。

私の場合、iOS と Android のアプリ、それに複数のサイトが1つの同期フォルダの下に並んでいます。アプリ側には Google Play への提出に使う署名鍵や google-services.json があり、サイト側には Cloudflare 用の .dev.vars があります。ビルド設定や素材と一緒に置いておかないと日々の作業が回らないので、物理的に分けるという選択が現実的ではありませんでした。

つまり、エージェントに読ませたいファイルと、絶対に読ませたくないファイルが、同じディレクトリの数階層下に混ざっています。この状態で permissions.allow に作業ルートを足すと、拒否ルールの精度がそのまま安全性になります。

出発点の設定は、こうでした。

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)"
    ]
  }
}

書いた当時は、これで足りていたはずでした。足りなくなったのは、ツリーが育ったからです。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
自分が書いた deny ルールが実際にどのファイルまで届いているかを、事故が起きる前に一覧で確かめられるようになる
バックアップ拡張子やリネームで秘密ファイルが網から外れる穴を、設定を書き換える段階で塞げるようになる
読み取り拒否だけに頼らず、ツリーの置き方まで含めた二段構えで守り方を選べるようになる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-08-20
Claude Code で「今後確認しない」を押した範囲を棚卸しする
確認ダイアログで「今後確認しない」を選んだあと、自分が何を許可したのかを説明できるでしょうか。手元の設定を数えるスクリプトと、最小から足していく権限の組み立て方をまとめました。
Claude Code2026-08-27
リポジトリに置いた allow を信じるか、環境側の信頼登録に寄せるか
使い捨ての実行環境で Claude Code を非対話で走らせると、リポジトリ内の permissions.allow が信頼待ちのまま落ちます。何が落ちて何が残るのかを 2.1.246 で確かめ、許可設定の置き場所を決め、起動前に検出するプリフライトを用意します。
Claude Code2026-04-13
Claude Code のツール権限を自分好みに設定する:安全性と開発効率を両立させる
Claude Codeのツール権限をallowedTools・disallowedTools・settings.jsonで細かく制御する方法を解説。プロジェクト別の権限設定から、チームでの共有まで実践的な設定パターンを紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます