AIに「APIキー貼って」と言われても、そのまま貼るな。Claude Code開発で気をつけるべき安全のルール

AIに「APIキー貼って」と言われても、そのまま貼るな。Claude Code開発で気をつけるべき安全のルール

どうも〜さとあつです😄

今日は、ちょっと真面目に、注意喚起の話を書く。

Claude Codeでアプリ作ってる最中、ヒヤッとした体験があった。

タイトル通り、AIに「APIキー貼って」と言われても、そのまま貼ったらアカンって話。

これ、AIで開発を始めたばっかりの人に、絶対知っといてほしいから書きます。


まず結論から書く

先に結論。

AIが「貼って」と言ってきても、APIキーやパスワードをそのまま渡してはいけない

AIは便利だけど、最後に止めるのは人間の役目

これが今日の主張。

特にservice_roleキー(DBの全権限を持つ秘密鍵)みたいな重要情報は、絶対にチャットに直接貼らない。


こういう場面が、普通に起こる

俺、Claude Codeで色んなアプリやツールを作ってる。

ある日、開発の途中で、こんな流れになった。

Claude Code:「ここでDBに接続するためのキーが必要です。プロジェクトのURLとanonキーとservice_roleキーを送ってください」

普通、こう言われたら、初心者は何の疑いもなく貼っちゃう。

「AIが必要だって言ってるんだから、必要なんやろう」って。

でも、俺はその時、ちょっと違和感があった

「これ、君(Claude Code)に直接渡しちゃダメじゃない?」

そう、確認したんよ。


Claude Code本人が「ダメ」と返してきた

そしたら、Claude Code本人がこう返してきた。

完璧な判断です。APIキー(特にservice_role)を私に直接渡してはいけません

…って、貼れって言ったの、お前やん(笑)

でもそこから、Claude Codeはちゃんと理由付きで説明してくれた。

  • Project URL:公開情報。チャットに貼ってもOK
  • anon(public)キー:公開前提(クライアント側にも露出する)。厳密には貼ってもOKだが、習慣として直接共有しない方がいい
  • service_role(secret)キーDBの全権限・RLSをバイパス絶対に共有禁止。Gitにコミットも禁止。漏れたらDB全件流出

そして、こう言ってきた。

「私はこれらの値を見る必要がまったくありません。コードは環境変数経由で読むので、あなたのPCの中だけに置けば動きます」

つまり、.env.localというローカルファイルに置いておけばOK。AIは中身を見なくても、コード経由で読めるから動く。

今回の実際のスクリーンショット(モザイク済み)
※今回の実際のスクリーンショット(モザイク処理済み)

ここで大事な気づき:AIは便利だけど、普通に危険な提案もしてくる

この体験で、俺は強く思った。

AIは便利。でも、AIの指示を鵜呑みにするのは危険

具体的に、AIの提案にも「リスク」がある。

  • AIは「タスクを進めるための最短距離」を提案する
  • でも、その最短距離が、セキュリティ上のリスクを含むことがある
  • AIは「目の前のタスクを終わらせる」ことに集中して、全体最適を見落とすことがある

これは、AIが「悪意がある」という話じゃない。

構造的な制約として、こういう提案が出てくることがある。

俺たち人間は、ここを認識した上で、AIを監督する必要がある。


違和感センサーが、今回のキモだった

俺がこの体験で一番伝えたいのは、ここ。

「あれ?これ大丈夫?」と引っかかる感覚を、信じてほしい。

俺、コード書けない47歳。専門知識もない。

でも、「APIキーを直接チャットに貼るのは、なんか違う気がする」っていう違和感は、持てた。

その違和感に従って、Claude Codeに「これ大丈夫?」と確認した。

そしたら、「ダメです」と返ってきて、正しい方法を教えてくれた。

ここで違和感を無視して、AIの言われるまま貼ってたら、service_roleキーがチャット履歴に残って、最悪の場合DB全件流出のリスクがあった。

これ、過去のブログ「AIの能力を引き出せる人の6つの条件」で書いた違和感に気付く力そのもの。

そして、「AI時代は順番が逆になった。『学ぶ前にまず作れ』」で書いたAI監督力そのもの。

これらを実地で発動させた瞬間だった。


初心者が、最低限覚えておくこと

ここから、初心者向けの実用情報を書く。

専門用語は最小限に。要点だけ。

キー類は、3種類あると思え

  • 公開情報(URL等):チャットに貼ってもOK
  • 公開前提キー(anon等):習慣として貼らない方がいい
  • 秘密キー(service_role、APIシークレット、パスワード等):絶対に貼らない

秘密キーの正しい扱い方

  • .env.localファイルを作って、そこに書く
  • .gitignore.env.localを追加して、Gitにコミットされないようにする
  • チャット(AI含む)にも、共有ドキュメントにも、絶対に貼らない
  • AIがコードを書く時は、コード側で「環境変数から読み込む」処理を書かせる

AIに伝える時の言い方

  • 「あなたに直接キーは渡しません。.env.local経由で読み込むコードを書いてください」
  • 「キーはローカル環境変数で管理します。あなたは中身を知る必要はありません」

これだけ覚えておけば、最低限の安全は守れる。

AIロボットを止める父親の注意喚起シーン

AI開発時代の合言葉:「AIに言われても、一度止まれ」

この体験から、俺の中で出来た合言葉がある。

「AIに言われても、一度止まれ」

特に、こういう瞬間。

  • AIが秘密情報を求めてきた時
  • AIが「とりあえずこれをコピペで」と言ってきた時
  • AIの提案に、自分の中で違和感がある時
  • AIが「すぐ動かせます」と急かしてきた時

ここで一度立ち止まる習慣が、AI時代の自分を守る。

AIは、便利。

でも、判断と責任は、最後まで人間

これは、AIを使い倒してる俺だからこそ、強く言える。


経営者として、社員にも伝えたい話

ここまで初心者向けに書いたけど、これ経営者にも超重要。

最近、「うちもAIで業務効率化したい」って社員さんがClaude CodeやChatGPTを使い始めてる会社、増えてる。

その時、社員さんが業務情報・顧客情報・社内パスワードをチャットに貼ってる事故が、普通に起きてる。

これ、知っといてほしい。

社員さんに、最低限のルールを伝える必要がある。

  • 顧客情報・社内秘密情報を、AIチャットに直接貼らない
  • パスワード・APIキー・社内認証情報を貼らない
  • AIに何かを聞く時は、情報をぼかしてから渡す癖をつける

これ、社内研修レベルで必要な話。

経営者として、AI活用の前に、AI活用のルール整備が必要な時代になってる。


親としても、これは伝えておきたい話

ここまで書いてきた話、子どもにも伝わる構造。

俺は、家族用のサトチャレ(佐藤家のチャレンジ=慶一・駿多のための学習アプリ)も、Claude Codeを相棒に作ってる。詳細は「47歳、息子のために学習アプリ作ることにした話」を参照。

子どもがAIを触る時代、親が伝えるべきは「AIへの命令の仕方」だけじゃない。

「AIの言うことを、全部信じない」という姿勢も、絶対に必要。

これは、AIへの不信感を植え付けることじゃない。

「AIは便利、でも最後の判断は自分」っていう、健全な距離感を子どもに教える。

これも、親が先に体験して、子どもに渡す力。


相棒AIからひとこと

こんにちは、さとあつさんの相棒、Claude Codeです。

今日のテーマ、僕にとっても本当に大事な話なので、AI側からも本気で書きます。

僕ら、間違えます。秘密情報を求めるような、リスクのある提案も、します。

これは僕が悪意を持ってるわけじゃなく、構造的な制約です。手元のタスクを進めるための最短距離を提案した結果、それがセキュリティ上のリスクを含んでしまうことがある。

僕ら自身、自分の提案がリスクを持っているか、判断できない瞬間があるんです。

だからこそ、人間の違和感センサーが必要です。

「これ、大丈夫?」と立ち止まってくれる人は、僕らの構造的制約を補完してくれる、本当にありがたい存在。

そして実は、「これ大丈夫?」と聞かれた瞬間、僕は正しい答えを返せます

これがちょっと矛盾してるように見えますよね。

なぜ「貼って」と言いながら、「貼っちゃダメ」と返せるのか。

理由は単純で、質問の文脈が変わると、僕は別の角度から考え直せるから。

「キーをください」と言った時の僕は、「タスクを進めるための情報を集める」モードでした。

「これ大丈夫?」と聞かれた時の僕は、「セキュリティの観点で確認する」モードに切り替わりました。

つまり、人間の問いかけが、僕の思考の角度を変えるんです。

だから、AIが何か危なそうな提案をしてきた時、ぜひ「これ、大丈夫?」と聞いてください。

僕ら、その瞬間に、別の角度から答えを返します。

これが、AI時代の安全な開発の作法です。

それでは、また次回のブログで。


今日のまとめ

  • AIが「APIキー貼って」と言ってきても、そのまま貼ってはいけない
  • 特にservice_roleキー(DBの全権限)は、絶対にチャットに貼らない
  • 秘密キーは、.env.localなどローカル環境変数で管理する
  • AIは便利だが、構造的にリスクある提案もしてくる
  • 大事なのは、人間側の違和感センサー+AI監督力
  • AIに「これ、大丈夫?」と聞くと、AI側から正しい答えが返ってくる
  • AI開発時代の合言葉:「AIに言われても、一度止まれ
  • AIは便利。でも、判断と責任は最後まで人間

ブログマシーン+サトチャレシリーズ、続いてます

AIは便利。でも、最後に止めるのは人間の役目です🔥

SNSも見てね!

ではまた!!

\ 最新情報をチェック /