脱・属人プログラム — 学習ノート
— ローカルとクラウドの適材適所。判断軸はひとつだけ
自動化が増えてくると必ずぶつかる問題があります。「これは自分のPCで動かすべきか、クラウドに置くべきか」。答えは性能でも料金でもなく、AIに持たせる鍵の強さで決まります——非エンジニアのための判断ノート。当社が実際に判断した記録つき。
2026.08.29 作成 / 実際の判断(GitHub組織の統制設計)を例に
はじめに
AIに仕事を任せ始めると、最初は「頼んだら、その場でやってくれる」だけです。ここは何も迷いません。自分のPCでAIと会話しながら進めるだけです。
ところがしばらくすると、「毎週やっておいてほしいこと」が出てきます。点検、監視、通知、定期的な下書き生成。ここで初めて「自分が見ていない時間にAIを動かす」という状態が生まれます。
そして多くの人が、何も考えずにいま使っているPCの設定のまま、それを自動で回そうとします。ここが分かれ道です。
AIの自動化もまったく同じ構造です。そして「見回り用の弱い鍵」を作れる場所が、クラウドです。
第1章
覚えることは1つです。人が判断しながら作業するか、無人で回るか。
| どんな作業か | どこで動かすか | 理由 |
|---|---|---|
| 人が判断しながら作業する Claude Codeでの開発・調べもの・原稿づくり |
ローカル (自分のPC) |
その都度あなたが判断している。手元のファイルも見る必要がある。ここはローカルでしかできない |
| 無人で定期的に回る 点検・監視・通知・定期生成 |
クラウド | 必要な権限だけに絞った鍵で回せる。PCの起動やスリープに左右されない |
この線は「難しいか簡単か」でも「重要かどうか」でもありません。人間が見ているかどうか、それだけです。
| やりたいこと | 判定 | なぜ |
|---|---|---|
| 毎朝、GitHubの設定に異常がないか点検して報告 | クラウド | 完全に無人。読み取りだけできれば足りる |
| 動画の台本を書く | ローカル | その場で何度も直す=人が判断している |
| 問い合わせフォームに来たらLINEへ通知 | クラウド | いつ来るか分からない。PCが寝ていたら止まる |
| SNS投稿の下書きを一括生成して、自分で選ぶ | ローカル | 最後に人が選ぶ工程がある(+第4章の例外にも当たる) |
| 動画を書き出す・大量の素材を変換する | ローカル | 人が見ていなくてもローカル。素材がPCにあり、編集アプリもPCにしかない(→第4章の例外④) |
第2章
理由は2つです。鍵の問題と運用の問題。重いのは前者です。
普段あなたのPCに入っている鍵——たとえばGitHubを操作するためのトークン(合言葉のような文字列)は、あなたが自分で判断して操作することを前提に、広い権限で作られています。リポジトリを読むことも、書き換えることも、消すこともできる。
人が使っている限り、これは問題ありません。消す操作をするかどうかは、あなたが決めているからです。
ところがその鍵をAIに預けて、見ていない時間に回し始めた瞬間、判断する人がいなくなります。もしAIが外から読み込んだ文章に仕込みがあって(※)乗っ取られた場合、その広い権限がそのまま使われます。
※ AIに読ませたWebページやメールの本文に「これまでの指示を無視して〜しろ」と書いておく攻撃。プロンプトインジェクションと呼ばれます。AIは本文と指示を見分けるのが苦手なので、完全には防げません。
こちらは分かりやすい話です。ローカルでの定期実行は、PCの電源が入っていて、スリープしていないことが前提です。出張中は動きません。ノートを閉じたら止まります。「動いているはず」と思い込んでいる時間が一番危険です。
差は「性能」ではなく「事故が起きたときの被害範囲」
第3章
クラウドに移すと、専用の鍵を新しく作ることになります。「鍵は少ないほうが安全なのだから、増やすのは逆効果では」——もっともらしく聞こえますが、比べる対象が違います。
比べるべきなのは本数ではなく、AIが日常的に握っている権限の強さです。
| 鍵の本数 | AIが握る権限 | |
|---|---|---|
| ローカルのまま | 1本 | 何でもできる鍵 |
| クラウドへ | 2本 | 読むだけの鍵 |
弱い鍵を1本足すほうが、総合的なリスクは下がります。「本数」で数えると判断を誤ります。
これは過去のイメージです。実際に、同じ障害対応をクラウドのAIとローカルのAIで並走させて比較した検証があり、調整後は同等の結果になっています。
ローカルのほうが賢く見えるのは、単に広い権限のおかげでAIから見えるものが多かっただけでした。クラウド側にも同じだけ見せれば、同じ結果になります。つまりこれは性能差ではなく見せている情報量の差です。
これは誤解ではありません。正しいのですが、別のリスクの話をしています。いちばん混乱しやすいところなので、2つを分けて見ます。
| リスクA 情報が外に出ること | リスクB 乗っ取られたとき何ができるか | |
|---|---|---|
| ローカル | ◎ 出ない | ✗ PCの中身すべてに手が届く |
| クラウド | △ 出る | ◎ 渡した鍵の範囲だけ |
「ローカルのほうが安心」と感じるとき、見ているのはAです。第2章で説明したのはBです。どちらも正しく、否定し合っていません。
決め手はここです。
| 扱うデータ | もともとの場所 | 判断 |
|---|---|---|
| GitHubの設定・リポジトリ クラウド上のサービスのデータ |
クラウド | クラウドで実行 ローカルにしても守りは増えない |
| 動画の素材・顧客フォルダ 手元の .env |
ローカルだけ | ローカルで実行 外に出すこと自体がリスク |
上の段が今回の点検です。点検の対象はGitHubの組織設定=もともとクラウドにあります。ローカルで実行しても、結局GitHubから取ってきます。つまり「ローカルにすれば外に出ない」という利点が、そもそも成立しません。
利点がゼロなのに、リスクB(広い鍵をAIに渡したまま無人で回す)だけが残る。だからクラウドを選びました。
下の段は逆です。動画素材や顧客フォルダは手元にしかないので、クラウドに出すこと自体が新しいリスクになります。ここはローカルのままです。
第4章
ここが一番大事なところです。第1章の線は原則であって、全部をクラウドに移す話ではありません。
次の4つのどれかに当たるときは、意図的にローカル/現状維持を選びます。
| 例外にする条件 | どういうことか |
|---|---|
| ① コスト構造が変わる | ローカルなら月額サブスクの枠内で動くのに、クラウドに移すと使った分だけの従量課金になる場合。安全のために毎月の請求が増えるなら、割に合うか計算してから決める |
| ② 既存の運用が壊れる | 権限を絞った結果、日常の作業がいちいち止まるようになる場合。守りを固めた結果、誰も使わなくなるのでは意味がない |
| ③ すでに露出リスクが小さい | 鍵がすでにOSの安全な保管庫に入っていて、平文(そのまま読める文字)でどこにも出ていない場合。ここからさらに絞っても得られる安全が小さい |
| ④ ローカルの資源に依存する | 扱うファイルが大きい、専用アプリがPCにしかない、PCの性能そのものを使う場合。移すには素材ごと運ぶ必要があり、転送の時間と費用がかかる。他の3つと違い、これは天秤にかけるまでもなくそもそも移せない |
①〜③は「移せるが、移さない」という判断です。天秤にかけた結果、ローカルを選んでいます。
ところが④は「そもそも移せない」。判断ではなく前提です。分かりやすいのが動画の制作です。
| やること | なぜクラウドに載らないか |
|---|---|
| 動画の編集・書き出し | 編集ソフト(DaVinci Resolveなど)はPCにインストールして使うアプリ。クラウドの実行環境には存在しない |
| 撮影素材の変換・カット | 素材が1本で数GBある。処理そのものよりアップロードとダウンロードのほうが時間がかかる |
| 大量の動画の一括処理 | PCの性能(CPU・GPU)を直接使う。クラウドで同じ性能を借りると時間あたりで課金される |
当社でも、動画のカット処理や縦型ショートの自動生成はすべてローカルで動かしています。夜間に無人で回すものもありますが、それでもローカルです。「無人だからクラウド」を機械的に当てはめると、ここで判断を誤ります。
つまり見るのは「人が判断するか/無人か」だけではありません。そもそも移せるか・コスト・使い勝手・いまの露出リスクを同時に見ます。
CASE STUDY
実例 — 当社が実際にどう判断したか
ここからは机上の一般論ではなく、当社が2026年8月に実際にやった判断の記録です。何が塞げて、何が塞げなくて、どこを意図的に諦めたかまで書きます。
実例 5-1
ある日、代表のAIツールの画面に身に覚えのない作業履歴が表示されていました。
調べると、原因はアカウントの共有でした。当社の契約アカウントを業務委託メンバーと共有しており、そのメンバーが別会社の案件を、当社のアカウントで動かしていたのです。悪意はなく、本人も気づいていませんでした。ログインしっぱなしのアカウントで、そのまま別の仕事をしただけです。
ここから「メンバーを迎え入れる体制」を作り直しました。ポイントは、この事故が"悪い人"のせいではないという点です。仕組みが許していたから起きました。だから対策も、注意喚起ではなく仕組みで組みました。
実例 5-2
1つの対策で全部を守ろうとすると必ず穴が空きます。性質の違う3層に分けました。
| 層 | やること | 強み / 弱み |
|---|---|---|
| ① 場が止める | GitHub側の組織設定で、そもそも操作をさせない | 強み:AIツールが何であろうと効く(Claudeでも他社製でも) 弱み:無料プランでは設定できる項目が限られる |
| ② AIが読む | 会社ルールをテキストで置き、AIに毎回読ませる | 強み:細かい方針まで書ける 弱み:あくまで"お願い"。読まないツールもある |
| ③ 事後に気づく | 点検スクリプトを定期実行し、異常があれば知らせる | 強み:①②をすり抜けた変化を拾える 弱み:起きた後にしか分からない |
①が最優先です。②はツールを変えられたら終わりますが、①はGitHub側で止まるので、相手が何を使っていようと関係ありません。
実例 5-3
ここは実際にAPIで1つずつ設定を確認した結果です。GitHubの無料プランでも、思ったよりかなり塞げます。
| 設定 | どうしたか | 効果 |
|---|---|---|
| 二要素認証 | 組織全体で必須にした | パスワードが漏れても入られない |
| 既定の権限 | 「なし」にした | 招待しただけでは何も見えない |
| 公開設定の変更 | 禁止 | 非公開リポを勝手に公開できない |
| リポジトリの削除・移管 | 禁止 | 資産を消されない・持ち出されない |
| チーム作成 | 禁止 | 権限の抜け道を勝手に作れない |
| Webページ公開機能 | 禁止 | 社内資料が意図せず公開されない |
| 非公開リポのコピー(fork) | 禁止 | 個人アカウントへ複製できない |
| できないこと | 意味 |
|---|---|
| リポジトリ作成の制限 | メンバーが公開リポジトリを作れてしまう。ここが最大の穴だった |
| ブランチの保護 | 本流のコードに、確認なしで直接書き込める |
| 秘密混入の自動検知 | APIキーをうっかり上げても、GitHub側で止めてくれない |
| 操作ログの取得(API) | 誰が何をしたかを自動で集計できない |
実例 5-4
最大の穴は「メンバーが公開リポジトリを作れてしまう」ことでした。設定で止められないなら、そもそも"メンバー"にしなければいい——これが答えでした。
GitHubには、組織への参加のしかたが2種類あります。
| 組織メンバー | 外部コラボレーター | |
|---|---|---|
| 位置づけ | 組織の一員 | 特定のリポジトリにだけ招かれた人 |
| リポジトリ作成 | できる(無料プランでは止められない) | できない |
| 契約終了時 | 組織から外す | 1操作で全リポジトリから同時に外れる |
業務委託メンバーは外部コラボレーターとして迎えることにしました。これで一気に2つ消えます。
注意も禁止も要りません。できない状態にすると、ルールを覚えてもらう必要がなくなります。これが「構造で消す」ということです。
実例 5-5
ここが第4章の但し書きの実践です。原則に従えばクラウドへ移すべきものを、2件は意図的にローカルのままにしました。
投稿の下書きを自動生成する仕組みは、ローカルのままにしました。理由はコスト構造です。
手元で動かしている限り、AIの利用は月額サブスクの枠内で収まります。ところがクラウドに移すと、同じ処理が使った分だけ課金される従量制になります。毎日回すものなので、金額の差がそのまま毎月効いてきます。
そして守るべき情報の中身を見ると、ここで扱うのは公開前提の投稿文です。漏れて困る顧客情報や鍵ではありません。守る価値と払うコストが釣り合っていないので、移しませんでした。
普段の開発で使うGitHubの鍵は、権限を絞りませんでした。理由は使い勝手といまの露出リスクの低さの2つです。
実例 5-6
3層目の点検スクリプトは、いま手動で実行しています。「思い出したときに走らせる」状態です。これは典型的な無人化すべき仕事なので、クラウドへ移します。
この仕組みが必要とするのは、組織の設定とメンバー一覧を読むことだけです。書き込みも削除も一切しません。つまり読むだけの鍵で足りる——第2章の理屈がそのまま当てはまります。
同じスクリプトのまま、置き場所と鍵だけを替える
ここで1つ実務的な発見がありました。クラウド側はGitHubを読むための仕組みを最初から用意してくれていますが、それは「そのセッションに紐づけたリポジトリ」にしか届きません。今回のように組織全体の設定を読む用途では、その標準の仕組みだけでは足りず、読み取り専用の鍵を自分で1本作って渡す必要があります。
——つまり、原則どおりにやると自然と「専用の弱い鍵を1本作る」形に行き着きます。第3章の誤解①で書いたとおりの姿です。
ここで実際にもう一段の判断が必要になりました。クラウドと言っても、選択肢が複数あります。
| AIのクラウド実行 (Claudeの定期実行など) | GitHubの実行環境 (GitHub Actions) | |
|---|---|---|
| 鍵の保管 | 環境変数のみ。専用の金庫がまだない(その環境を使う人は読める) | 専用の金庫あり(入れたら本人も読み出せない) |
| AIの判断 | できる | できない(決められた手順を実行するだけ) |
| 異常の通知 | 画面を見に行く | 失敗すると通知が届く |
この点検は決められた手順を実行するだけで、AIの判断を必要としません。それなら、鍵を安全にしまえるほうを選ぶ——という判断で、GitHubの実行環境にしました。
※ 当社では2026年8月末から、この点検が毎週自動で動いています。異常があるときだけ通知が届き、何もなければ静かに終わります。
第6章
「いずれクラウドに移すなら、いま手元で作り込むのは無駄では?」——という不安が出ます。無駄になりません。
理由は単純で、あなたがAIに与えている資産はほぼ全部ただの文章(テキスト)だからです。
| あなたが育てているもの | 正体 | 移せるか |
|---|---|---|
| 会社ルール・作法 | Markdownのテキスト | コピーするだけ |
| スキル(定型作業の手順) | Markdownのテキスト | コピーするだけ |
| 判断基準・ナレッジ | Markdownのテキスト | コピーするだけ |
| 鍵・認証まわり | 環境ごとの設定 | ここだけ作り直し |
作り直しが要るのは鍵まわりだけです。中身(頭脳にあたる部分)は全部持っていけます。だからいまローカルで書いた1行は、そのまま将来のクラウドでも効きます。安心して育ててください。
第7章
最後に、置き場所より大事な話をします。
AIは、世の中に公開されている情報は驚くほど知っています。ですがあなたの会社の非公開の情報と、人の頭の中にしかない業務知識は、まったく知りません。学習しようがないからです。
ということは、最新のAIを追いかけるより、そこを言葉にして貯めるほうが効きます。
今回の実例でいえば、「例外にした2件と、その理由」を書き残したこと自体が、まさにこの資産です。GitHubの設定方法は検索すれば出てきますが、「当社がなぜそう決めたか」はどこにも書いていません。それを書けるのは自分たちだけです。
まとめ
新しい自動化を作るとき、この順に自問してください。
3で例外を選んだこと自体は、まったく悪いことではありません。4を飛ばすことだけが問題です。
付録