← 教材一覧へ戻る

脱・属人プログラム — 学習ノート(管理人向け)

会社としてClaude Codeを配るとき

— 社員が間違えても事故らない、権限のつくり方

社員に配ると「うっかり顧客フォルダを開く」「よくわからないまま許可を押し続ける」が必ず起きます。これを気合いでなく仕組みで止める設計。読むのは管理人だけでOK——社員側の手順は今までどおり、何も変わりません。

2026.08.11 作成 / 公式ドキュメントで確認(code.claude.com/docs)

この話の結論(3つだけ)
  1. 会社導入=新しい設定を作ることではない
    個人が自分のPCに書いている「禁止リスト」を、社員が消せない箱へ移すだけ。中身はほぼ同じ
  2. 効き目の大きい順は「機密フォルダの禁止 → 個人アカウント禁止 → 外部送信は確認 → 保険」
    いちばん効くのは①。社員が覚えることは増やさず、管理人が裏で固める
  3. allowは足せる/denyは消せない
    この性質のおかげで「遮断しつつ、必要なら広げられる」が成立する

CHAPTER 1

共有脳に書いても、守られない

会社導入でいちばん混ざりやすいのが、第二の脳(共有脳・CLAUDE.md)権限設定の関係です。この2つは目的がまったく違います。

第二の脳(共有脳・CLAUDE.md)権限設定(deny)
扱うものAIに何を知らせるか(賢さ・資産)AIに何をさせないか(ガードレール)
効き方お願い(AIが読んで従おうとする)強制(AIの意思と関係なく止まる)
破られ方AIが読み飛ばす・忘れる破れない(機械的に拒否される)
失敗すると退職で知見が消える顧客情報が漏れる
公式ドキュメント — Permissions Permission rules are enforced by Claude Code, not by the model. Instructions in your prompt or CLAUDE.md shape what Claude tries to do, but they don't change what Claude Code allows. 権限ルールを執行するのはClaude Code本体であって、AIモデルではない。プロンプトやCLAUDE.mdの指示は「AIが何をしようとするか」を変えるが、「何が許されるか」は変えない。
たとえるなら:社内規程と、施錠CLAUDE.md=社内規程——「金庫室に入るな」と書いた紙。読む人は従うが、うっかり通り過ぎる人は止められない。
deny=実際の鍵——そもそもドアが開かない。
会社に必要なのは両方ですが、顧客情報を守るのは後者だけです。

だから共有脳の整備(GitHub Organization・shared-brain)をどれだけ丁寧にやっても、セキュリティは1ミリも強くなりません。別の階の話なので、分けて設計します。共有脳の設計は教材「複数人・複数PCで第二の脳を運用するコツ」、権限はこのページ、という住み分けです。

CHAPTER 2

設定の箱は3つ — 会社導入=箱が1つ増えるだけ

Claude Codeの設定が入る「箱」は3つあります。個人で使っているうちは、ほぼ全部が真ん中の「個人の箱」に入っています

場所(Windows)誰が触れる用途
会社の箱管理画面(推奨)
または C:\Program Files\ClaudeCode\managed-settings.json
管理人だけ絶対に触らせない禁止事項
個人の箱C:\Users\<名前>\.claude\settings.json本人本人の許可・作業フォルダ
プロジェクトの箱各フォルダの .claude/settings.jsonチーム(PRレビュー付き)案件ごとの許可

つまり会社導入とは、個人の箱に入っている禁止事項を、社員が消せない箱へ移し替える作業です。ゼロから新しいルールを発明するわけではありません。すでに個人で運用している人は、その設定の大半がそのまま会社ルールとして通用します

設計の背骨:allowは足せる/denyは消せない

公式ドキュメント — Admin setup Array settings such as permissions.allow and permissions.deny merge entries from all sources, so developers can extend managed lists but not remove from them. allow(許可)とdeny(禁止)のリストは、3つの箱すべての内容が合算される。だから社員は会社のリストを「足す」ことはできるが、「消す」ことはできない。

これが「遮断しつつ、必要なら広げられる」の正体です。

ひとことで足し算だけ許可して、引き算は禁止。この一言で、会社の権限設計はほぼ説明できます。

CHAPTER 3

会社の箱をどう配るか

方法必要なもの向いている会社
管理画面に貼る
(サーバー管理設定)
Team / Enterprise プラン
+ Owner権限
情シスがいない・PCがバラバラな中小企業はこれ
PCに直接配置
(レジストリ/ファイル)
PC一括管理(MDM)の仕組みPC管理が整っている会社

管理画面に貼る方式なら、JSONを保存するだけで、社員のPCは起動時と1時間ごとに自動で受け取ります。配布作業はゼロ。USBを配ったり、一台ずつ設定して回る必要はありません。

管理画面から配るにはTeam契約が要ります管理画面に貼る方式は Team・Enterprise プラン専用です。個人のPro/Maxを各自が契約している状態(5人未満のおすすめ構成)では使えません。
下の「PCに直接配置」方式なら契約プランを問わず作れますが、PC1台ずつ配って回り、社員が書き換えられないようにする必要があります。
情シスがいない会社が現実的に選べるのは管理画面方式=Team契約が事実上の前提になります。プランの選び方は教材「Claudeの契約とアカウントの選び方」へ。

届いているかの確認

社員のPCで /status と打ってもらい、Enterprise managed settings という表示が出れば届いています。出なければ配信されていません。

CHAPTER 4

会社の箱に入れる、最小セット

まずはこれだけで始めます。欲張らないのがコツです。

{ "permissions": { "deny": [ ← 社員が絶対に外せない禁止リスト "Read(//**/.env)", APIキーの入ったファイル "Read(//**/.env.*)", "Edit(//**/.env*)", "Read(//**/*.key)", "Read(//**/*.pem)", "Read(//**/*credentials*.json)", "Read(//**/.credentials*)", ドット始まりは上の行では拾えない "Read(//h/マイドライブ/**)", ← 自社の守りたいフォルダに置き換える "Edit(//h/マイドライブ/**)", "Bash(curl * | bash*)", ネットで拾ったスクリプトを直接実行する形 "Bash(rm -rf *)", フォルダ丸ごと削除 "Bash(git push --force*)", "Bash(git push * --force*)" ← ブランチ名が先に来る書き方も塞ぐ ], "ask": [ ← 毎回、人に確認を出す "Bash(curl *)", 外部へデータを送れるコマンド "Bash(wget *)" ], "disableBypassPermissionsMode": "disable" ← 保険(後述) }, "forceLoginMethod": "claudeai", "forceLoginOrgUUID": "(会社のOrganization ID)" ← 個人アカウント禁止 }

FIG. 会社の箱に貼る最小セット(フォルダのパスは自社のものに置き換える)

先頭の「//」を落とさないファイルを指定する行は、すべて // で始めています。これが無い **/.env は「その社員がいま開いているフォルダの配下」しか守りません——デスクトップや別ドライブに置いた .env は素通りします(公式のdeny表に明記)。//**/ と書いて初めて「そのPC全体(全ドライブ)」が対象になります。
会社として配る設定では、社員がどのフォルダで起動するか分からないので、ここを間違えると守りが人によって変わります。
※Windowsのパスは照合前に C:\Users\…/c/Users/… の形に直されます。特定のドライブだけなら //c/**/.env、全ドライブなら //**/.env。フォルダを名指しする //h/マイドライブ/** が同じ形なのも、この理由です。

その前に:ルールは3種類ある(禁止だけではない)

設定を書く前に、この違いを押さえてください。上から順に判定され、最初に当たったものが勝ちます(公式仕様)。

種類意味たとえると
deny(禁止)何があっても実行させない溶接して閉じたドア。通したければ溶接を外す(=管理人が設定を書き換える)しかない
ask(確認)実行しようとするたびに人に確認が出る守衛付きのドア。人がOKすれば通れる
allow(許可)確認なしで実行してよい開けっ放しのドア
いちばん間違えやすい点denyに書いたものは、後からallowに同じものを書いても永久に開きません。公式にも「禁止ルールに例外は作れない」と明記されています。
「とりあえず全部禁止して、必要になったら許可を足す」という運用はできません。完全に止めたいものだけdeny、通す余地を残したいものはaskに置いてください。

なぜこの4種類なのか(効き目の大きい順)

① 機密フォルダ・秘密ファイルの封印(deny)— いちばん効く
個人でやっている封印と中身は同じです。すでに自分のPCで設定している人は、そのリストをそのまま流用して構いません。実際に起きる事故のほとんどはここ——AIが探し物をしている途中で顧客フォルダを通過する、というパターンです。会社導入で最初にやるべきはこれです。

② 外部送信コマンドは「禁止」ではなく「確認」(curlwget
社内のデータを外部のサーバーへ送れるコマンドです。ただしcurl・wgetはもともと自動では許可されず、毎回確認が出ます。問題は、社員が確認画面で「今後は聞かない」を押すと許可リストに入り、以後ずっと無確認になることです。

askに書いておくと何が変わるか公式に「askルールは、より細かい許可ルールが一致していてもプロンプトを出す」とあります。=askに書いておけば、社員が「今後は聞かない」を押しても効かなくなります。「原則止める・必要なときだけ人が判断して通す」がそのまま実現します。

一方で curl * | bash*ネットから拾ったスクリプトをそのまま実行する形)だけはdenyで完全に止めます。危険な形だけを名指しで禁止し、通常の使い方は確認で通す——これが実運用で機能している型です。

③ 個人アカウントでのログイン禁止
これが無いと、社員が自分のプライベートなClaudeアカウントでログインして会社の仕事ができてしまいます。そのとき起きることは3つ:

④ 抜け道封じ — 保険として1行
Claude Codeには「Bypass permissions(バイパス)」という、確認も安全チェックも行わないモードがあります。ただし普通に使っている限り、まず踏みません

止まらなくなるのは「名指ししていないすべての操作」の方です。確認という安全網が丸ごと外れ、設定フォルダへの書き込みまで自動承認されます。公式も「隔離されたコンテナ・VMでのみ使うこと」と警告しています。

なぜ「まず踏まない」のに入れるのかネット記事に「確認が邪魔なときの裏技」としてこのフラグが紹介されているためです。社員が記事を見てコピペする、あるいはAIに「設定に追加して」と頼む——この経路だけは残ります。一度書くと消すまで有効です。1行・副作用なしなので、蓋をしておくという位置づけです。

モードの一覧(画面は英語表記なので併記します)

社員が画面で切り替えられるモードです。日本語だけで説明すると画面と突き合わせられないので、英語表記もそのまま覚えてください。

日本語画面の表記設定に書く値確認は出る?
手動Manualdefault毎回すべて出る
編集おまかせEdit automaticallyacceptEditsファイル編集だけ出ない
計画Planplan読むだけ・変更前に計画を出す
自動承認Autoauto出ない。ただし別のAIが実行前に審査する
(一覧に出ない)Bypass permissionsbypassPermissions出ない・審査もなし。起動時に専用フラグが必要
2026年8月14日から「Auto」が既定になります公式告知で、この日から新しいセッションの初期モードがAutoになります(Pro・Max・Teamプラン)。会社として配る前に、扱いを決めておいてください。
AutoはBypass permissionsとは別物です。Autoは別の判定AIが実行前に点検し、①依頼の範囲を超える操作 ②見知らぬ場所への操作 ③AIが読んだ悪意ある文章に誘導された操作 をブロックします。危険度がまったく違います。
会社として封じるなら "disableAutoMode": "disable" を会社の箱に足せますが、既定になるものを封じると社員は確認だらけに戻るので、初期は封じないことをお勧めします。封じる代わりに「会社が信頼している範囲(社内のGitHub組織名・信頼するドメイン等)を判定AIに教える」設定もあり、そちらの方が筋がよいです。

CHAPTER 5

MCP(外部ツール連携)をどこまで許すか

MCP=AIに外部サービス(Notion・Slack・社内システム等)をつなぐ仕組み。放っておくと、社員が任意のサービスを勝手に接続できます。会社としては「承認したものだけ使える」カタログ制が現実的です。

{ "allowManagedMcpServersOnly": true, ← 社員が勝手に広げられなくする "allowedMcpServers": [ { "serverUrl": "https://api.githubcopilot.com/*" } ] }

allowは普通「社員が足せる」側ですが、MCPだけは allowManagedMcpServersOnly で例外的に締められます

必ず守る注意点:サーバー“名”で書かない公式が明言しています——serverName(サーバー名)での指定はセキュリティ上の制御ではない」。名前は利用者が自分で好きに付けるラベルなので、誰でも別のサーバーを github と名付けられるからです。
→ 許可リストは必ずURL(serverUrl)またはコマンド(serverCommandで書いてください。

CHAPTER 6

アーティファクト(作ったページ)をどこまで外に出せるか

アーティファクト=Claude Codeが作る「見せるためのWebページ」。表・グラフ・チェックリストのように、文字で読むより見たほうが早い出力をページにして、claude.ai のURLで開けるようにする仕組みです。スマホからも開けるので、社員が自発的に使い始めます。

たとえ作った直後は自分の机の上。共有すると社内の掲示板に貼る。公開リンクにすると路上に看板を立てる。Share(共有)ボタンは、このどれにするかを選ぶボタンです。

危ないのは「公開リンク」だけ。そしてTeamは既定でオフ

プランShareで選べる範囲
Team・Enterprise社内の特定の人/組織全員。公開リンクは既定でオフ——Ownerが開けるまで選択肢に出ない
Pro・Max公開リンクだけ。社内共有という選択肢がない

個人プランのほうが危ない、という逆転が起きます。 会社の資料をPro/Maxの個人アカウントで扱わない理由が、ここにもあります。

2026年7月に実際に起きたこと公開リンクで共有されたチャットとアーティファクトが、Googleに大量にインデックスされました。履歴書・APIキー・社内ダッシュボードなどが検索で見つかる状態でした。原因はrobots.txtでクロールを禁止していたため、noindex(検索に載せるなという指示)を読ませる手段がなくなっていたこと——「クロール禁止」は「検索に出さない」ではありません。Anthropicは7月27日頃に修正しましたが、Bingには残っていたという報告があり、一度公開したものは完全には消えない前提で考えてください。
→ この事故の対象は公開リンクを選んだ人だけ。外部共有がオフの組織は構造的に対象外でした。

管理人が触る3つのトグル

設定場所判断
Artifacts(機能そのもの)Settings > Claude Code > CapabilitiesTeamは既定ON。使わせてよい
External sharing
=公開リンクの許可
同上・Artifactsの下既定OFFのまま。これが最大の防御
Enable artifact connectorsSettings > Capabilities使う予定がなければOFF

公開・共有・削除は監査ログclaude_artifact_* として残ります。保持期間は Settings > Data & privacy controls で、非公開分と共有分を別々に設定できます。完全に使わせないなら組織トグルをOFFにするか permissions.denyArtifact を入れますが、塞ぐ方向は原則すすめません——社員が自分で工夫を始めた芽を潰すことになります。

落とし穴:コネクタ付きページは「見た人のアカウント」で動く

公式ドキュメント — Share session output as artifacts When a published page calls a connector, the call uses the account of the person viewing the page, not the account of the person who published it. 公開されたページがコネクタ(外部サービス連携)を呼ぶとき、その呼び出しは「ページを見ている人」のアカウントを使う。公開した人のアカウントではない。

同じページでも開く人によって見えるものが変わり、投稿・更新のような操作も押した人のアカウントで実行されます。分からないうちは Enable artifact connectors をOFFにしておくのが安全です。

社員に伝えることは3行で足ります

・作ったページは、共有しない限り自分しか見られない ・共有するときは「組織全員」ではなく必要な人だけに絞る ・「インターネットに公開」という選択肢が出てきたら選ばない

CHAPTER 7

正直な限界(過信しないための3点)

① これは「セキュリティの壁」ではない

公式ドキュメント — Server-managed settings they operate as a client-side control, not a security boundary. On unmanaged devices, a user doesn't need admin or sudo access to bypass them. これは利用者側の端末で効く制御であって、セキュリティの境界線ではない。会社が管理していないPCでは、管理者権限が無くても回避できてしまう。

うっかりミスは確実に防げます。本気で回避しようとする人は止まりません。 それ以上の壁が必要なら、PCを会社の管理下(MDM)に置く話になります。まずは前者で十分、というのが中小企業の現実解です。

② Windowsでは「サンドボックス」が使えない

コマンドの動きをOSごと隔離するサンドボックスという強力な機能がありますが、公式にmacOS・Linux・WSL2のみ対応/ネイティブWindowsは非対応と書かれています。Windows中心の会社では当面使えません。

→ 代わりに禁止リスト(deny)+「そもそも機密データを作業PCの見える場所に置かない」の2段構えで守ります。

③ 「作業フォルダの外だから安全」は成立しない

Claude Codeは書き込みは起動したフォルダとその配下に限られますが、読み取りは承認プロンプトが出れば外もできます。さらに lscat のような読み取り専用コマンドはもっと広く動きます。

よくある誤解「顧客フォルダは作業フォルダの外にあるから読まれない」——成立しません。社員が確認画面で「はい」を押せば読めます。しかも事故の多くは「読んで」と頼んだ場面ではなく、AIが何かを探している途中に起きます。
→ 見せたくないフォルダは、置き場所を分けるだけでなく必ずdenyで名指しして封印してください。

CHAPTER 8

導入の順番 — 社員の手順は変えない

既存の導入ロードマップ(契約→導入→GitHub→初期設定プロンプト)はそのままです。その前後に、管理人だけがやるステップを足します。

STEP誰がやること
0 新規管理人①Team契約するか決める(会社の箱はTeam専用)
②見せてはいけないフォルダを列挙する
③外部送信(curl等)を許すか決める
1各自契約とアカウント
2各自Claude Codeを入れて起動
3各自GitHubアカウントを作る
4各自完全版初期設定プロンプトを貼る(個人の箱が整う)
5 新規管理人会社の箱にJSONを配る → 社員1人の /status で届いたか確認
6 新規管理人3か月後に点検:/permissions で許可の積み上がりを見る/よく使うコマンドを会社のallowへ昇格
ここがポイント管理人の作業を社員展開の前後に置くことで、社員から見れば「気づいたら安全になっている」状態になります。学習の流れを邪魔せず、覚えることも増えません。

広げたくなったときの申請フロー

広げたい範囲やり方
その案件だけプロジェクトの箱に追記 → PRレビュー(誰がいつ何を許可したかGitに残る)
自分だけ個人の箱に追記(申請不要)
会社全体管理人が会社の箱に追記

※ここで足せるのはallow(許可)までです。会社の箱のdenyに一致する操作は、どの階層でallowを書いても開きません。開ける必要が出たら、管理人がdenyの行そのものを見直します。

最初から締めすぎないこと「会社が許可したもの以外は一切使えない」という設定(allowManagedPermissionRulesOnly)もありますが、初期は入れないでください。社員が何もできず、申請だらけになって導入自体が失敗します。使うのは事故が起きてからで十分です。

3か月後の点検が要る理由

禁止リストは一度作れば終わりですが、許可リストは放っておくと勝手に増えます。「これ実行していい?」に社員が「はい、今後も」を押すたびに1行増えるためです。1年運用したPCを点検したら数百行になり、ユーザーフォルダが丸ごと許可に入っていた実例があります(ダウンロード・各種ツールの鍵まで読める状態)。

増えた許可を消すのは大仕事なので、塞ぐときは許可を減らすのではなく、会社の箱のdeny側に足すのが確実です(denyは許可より強く、後から書いても効きます)。詳しくは教材「AIの第二の脳を作る」のセキュリティ章へ。

APPENDIX

用語ミニ辞典

会社の箱(managed settings)マネージド セッティングス
会社が配る設定。社員側の設定より必ず優先され、社員は消せない。管理画面から配るにはTeam・Enterpriseプランが必要(ファイル配置方式はプランを問わないが、PC1台ずつの配布が要る)。
deny(禁止リスト)ディナイ
「このファイルは読ませない」「このコマンドは実行させない」を書くリスト。すべての置き場所のdenyが合算され、下の箱からは消せない。後からallowを書いても開かないので、完全に止めたいものだけに使う。
ask(確認リスト)アスク
「実行するたびに人に確認を出す」を書くリスト。社員が「今後は聞かない」を押しても確認が出続けるのが特徴。原則止めたいが、必要なときは通したいものに使う。
allow(許可リスト)アロウ
「これは毎回聞かなくていい」を書くリスト。社員が自分で足せる(会社のリストを広げられる)。ただしdeny・askに一致するものは開けられない。
Auto(自動承認モード)オート
確認を出さずに実行するが、別の判定AIが実行前に審査して危険なものは止める。2026年8月14日から新しいセッションの既定になる。
Bypass permissions(バイパス)バイパス パーミッションズ
確認も審査も行わないモード。モード選択の一覧には出ず、起動時の専用フラグか設定ファイルへの書き込みでしか使えない。denyとaskは効き続けるが、それ以外がすべて無確認になる。公式は隔離環境専用と警告。
アーティファクトArtifact
Claude Codeが作る「見せるためのWebページ」。claude.ai上に置かれ、URLで開ける。既定は本人だけ。Team・Enterpriseでは共有先が社内に限られ、公開リンクはOwnerが許可するまで選べない。Pro・Maxは公開リンクしか選べない。
MCPエムシーピー
AIに外部サービス(Notion・Slack・社内システム等)をつなぐ標準の仕組み。つないだ範囲がまるごとAIから見えるので、会社では接続先を管理する。
サンドボックスsandbox
コマンドの動きをOSレベルで隔離する仕組み。ネイティブWindowsでは非対応。
MDMエムディーエム
会社が社員のPCを一括管理する仕組み。これがあると設定をPC側に直接配れ、改ざんも防ぎやすい。