Vercelハック後の生成AI安全な使い方

A pixelated orange character with a hat. AI

AIで仕事を回すのが当たり前になってきた一方で、「その作業環境ごと漏れたらどうする?」が急に現実味を帯びてきました。今回はVercelの不正アクセス報道をきっかけに、生成AI(ChatGPT/Claude/Gemini/Codexなど)を“今日から”安全寄りに運用する手順をまとめます。

難しいセキュリティ理論は抜きで、やることはシンプルです。AIに渡す情報を減らす、鍵(APIキー)を守る、漏れた前提でログと手当てを用意する。これだけで事故の確率がガクッと下がります。

こんな人におすすめ

  • Vercel / GitHub / Notion / Google Drive など、クラウド上に仕事の材料が集まっている
  • ChatGPTやClaudeに、下書き・要約・レビューを頼み始めた
  • APIキーをenvに入れて運用している(よく分からないままコピペした記憶がある)
  • チームでAIツールを使っていて、「どこまで入れていい?」が曖昧

今回のニュースを「使う側」に翻訳すると

The Vergeによると、Webアプリのホスティング/デプロイで広く使われているVercelが侵害され、盗まれたデータが売られようとしている、という話が出ています。公開されたデータには従業員名やメール、活動のタイムスタンプなどが含まれるとのことでした。

ここで大事なのは「Vercelが危ない」みたいな単発の話ではなく、開発や運用の周辺ツールは、仕事の断片(人・メール・ログ・設定)をたくさん持っているという事実です。生成AIを使う人にとっては、次の2点が直撃します。

  • AIに貼る素材(ログ、設定、エラー、画面キャプチャ)が、意外と機密を含む
  • APIキーやトークンが漏れた時の被害が、昔より早く大きくなる(AIが自動で使えてしまう)

なので今日のゴールは、「AIを怖がって使わない」ではなく、安心して使い続けるための“型”を作るです。

手順1:まず「AIに渡していい情報」の線引きを決める

いちばん効くのはここです。技術より先に、運用ルールを紙1枚で決めます。専門用語を使うなら、DLP(情報漏えい対策)みたいな話ですが、ここでは難しくしません。

おすすめの3段階ルール(コピペで使える)

  • OK:公開情報、一般的な文章、個人名や会社名を消した一般化した相談
  • 要マスク:ログ、設定、画面、顧客文面、社内資料(固有名詞・ID・URL・数値を消す)
  • NG:パスワード、APIキー、秘密鍵、アクセストークン、個人情報(住所・電話・決済)、未公開の契約/見積

マスク(伏せ字)のやり方:迷わないテンプレ

「どこを隠すべきか分からない」問題は、AIに先に判定させると早いです。貼り付ける前に、まず“マスク案”を作らせます。

以下はログ/設定の断片です。AIに渡す前提で、機密になりうる箇所を指摘して、伏せ字ルールを提案してください。

条件:
- APIキー/トークン/秘密鍵/メール/個人名/社名/内部URL/IP/顧客名は必ず伏せる
- 伏せた後も、原因調査に必要な情報(エラー種類、発生箇所、時系列)は残す
- 伏せ字は [REDACTED:種類] 形式

対象テキスト:
(ここに貼る)

この手順を踏むだけで、「そのまま貼ってしまった…」が激減します。

手順2:APIキーとトークンを「AIから遠ざける」

生成AIを触り始めた人ほどやりがちなのが、エラー解決のために env(環境変数)や設定画面のスクショを丸ごと貼る こと。あれ、だいたい鍵が混ざっています。

ここでいう鍵は、APIキー(外部サービスを呼ぶための合鍵)やトークン(ログイン状態を表す一時チケット)です。漏れると、第三者が勝手にAPIを叩けたり、課金が走ったりします。

チェックリスト(5分でできる)

  • .env や Secrets 画面をAIに貼らない(スクショも同様)
  • GitHubに鍵が混ざってないか確認する(過去コミットも含めて)
  • 鍵は「最小権限」(必要な操作だけ許可)で発行する
  • 鍵を定期的にローテ(入れ替え)する。まずは“漏れたかも”の時に即再発行できる状態にする
  • AIに聞くときは、鍵をダミー化して再現する(例:sk-… を sk-[REDACTED] に)

AIに「安全な聞き方」に変換させるプロンプト

私は今からAIに質問したいのですが、鍵や個人情報を含めずに相談したいです。
以下の状況説明を、機密を含まない形に書き換えてください。

- 目的:エラーの原因候補と切り分け手順がほしい
- 出したい情報:フレームワーク名、エラー文、再現手順、発生タイミング
- 出したくない情報:ドメイン、社名、顧客名、環境変数、キー、内部URL

状況説明:
(ここに下書きを貼る)

自分で全部気をつけるより、この「整形係」を一回挟むのが楽です。

手順3:Vercelやクラウド利用時の「漏れた前提」セット

今回のVercelの件みたいに、ツール側が侵害される可能性はゼロにできません。だから、漏れた前提で被害を小さくする準備が効きます。

最低限やっておきたい設定

  • 二要素認証(ログインに追加の確認を入れる)をON
  • チーム権限を見直す(全員Adminにしない)
  • 監査ログ/アクティビティログを見られる場所を把握する(いざという時に探さない)
  • 連携している外部サービス(GitHub、Slack等)の権限も棚卸しする

「何が漏れたら痛い?」をAIと一緒に棚卸し

ここもAIが役に立ちます。自分のプロジェクト事情に合わせて、危ない情報を洗い出します。

私のプロジェクト運用を前提に、漏えい時に影響が大きい情報を棚卸ししたいです。
次の観点で質問しながら整理してください。

- どこに情報がある?(Vercel/GitHub/CI/ストレージ/社内Wikiなど)
- 漏れると何が起きる?(不正課金/改ざん/なりすまし/顧客影響)
- 先に潰せる手当ては?(権限/分離/ローテ/マスク/ログ監視)

前提:
- 使っている主なサービス:(例:Vercel, GitHub, Supabase, Slack)
- チーム人数:(例:3人)
- 公開サイト/管理画面の有無:(例:あり)

この棚卸しは一度やると、AIに貼る内容の判断も速くなります。

手順4:AIを「セキュリティ係」として使う(でも任せすぎない)

生成AIは、セキュリティの“答え”を出すというより、確認漏れを減らすチェック係として強いです。特に、設定のレビューや、文章の危険表現の検出は向いています。

例:公開前のREADME/手順書チェック

以下のREADME(手順書)を公開する前提でレビューしてください。

見てほしいポイント:
- 誤って秘密情報が含まれていないか(URL、メール、キー、内部手順)
- そのまま実行すると危険なコマンドがないか(権限付与、削除系)
- 攻撃に悪用されそうな説明になっていないか

出力形式:
- 危ない箇所の引用
- 何が危ないか(1行)
- どう直すか(修正文)

本文:
(ここに貼る)

例:コード断片の「危ない匂い」だけ嗅いでもらう

コード全体を渡さなくても、認証周りやAPI呼び出し周りの数十行だけで十分なことが多いです。

以下は認証/リクエスト周りのコード断片です。
セキュリティ上の懸念点(例:秘密情報の露出、ログへの出力、過剰な権限、入力検証不足)がないか指摘し、修正案もください。

前提:
- これは公開リポジトリに置く可能性があります
- 本番では環境変数を使います(キー自体は貼りません)

コード:
(ここに貼る)

ポイントは、AIに全部預けず、人間の確認を前提に“気づき”を増やすこと。ここは過信しない方が長持ちします。

無料で使える?料金は?(2026年4月時点の考え方)

結論、今回紹介した「マスク案を作る」「棚卸しをする」「文章を安全に整える」用途は、無料枠でもかなり回せます。

  • ChatGPT / Claude / Gemini:多くのサービスで無料プランがあります。無料だと回数制限やモデル制限があることが多いので、仕事で毎日使うなら有料が快適です。
  • Codexなど開発系:チームや業務導入は課金体系が変わりやすいので、まずは「レビュー用途だけ」「限定プロジェクトだけ」で小さく試すのが安全です。

料金の数字をここで断定するとズレやすいので、私はいつも「無料で型を作る → 必要になったら有料で速度を買う」で進めています。最初から完璧な課金設計をしようとすると止まりやすいんですよね。

まとめ:まずはここから試してみよう

  • AIに貼る前に「マスク案」をAIに作らせる(伏せ字テンプレを使う)
  • .envやSecretsは貼らない。スクショも同じ扱いにする
  • 二要素認証と権限見直し、ログの場所確認だけ先にやっておく

正直、セキュリティって「完璧」を目指すほど手が止まります。でも、今日の3つは“めんどくささの割に効く”やつです。AIを使うほど情報が集まる時代だからこそ、先にガードレールだけ置いて、安心して便利さを取りに行きましょう。

参考リンク

Photo by Bernd 📷 Dittrich on Unsplash