AI時代のプログラミング学習カリキュラム第14講 環境変数と秘密情報の管理
🗺 目次
AI時代のプログラミング学習カリキュラム 第3部 壊れても直せる

第14講 環境変数と秘密情報の管理

📖 無料講座・全25講 2026-08-17 秋元進吾 AI活用 プログラミング 講座

この講で解けるようになる困りごと

外部のサービスを使おうとすると、鍵(APIキー)を渡されます。さて、これをどこに書けばいいのか。分からないから、とりあえず動く場所・・・コードの中に直接書く。動く。そのまま忘れる。

第8講の車検で「鍵が直書きされていないか」を点検し、第10講では「エラー文を貼る前に鍵を伏せる」と予告しました。この講はその本編です。鍵の正しい置き場所を覚えて、直書きから卒業します。


仕組み

合鍵にたとえます。

家の合鍵を、どこに置くか。玄関マットの下は、便利です。誰でも取れるからです。そして誰でも取れるということは、泥棒も取れるということです。合鍵は、家の外から見えない場所・・・金庫なり、信頼できる人のポケットなりに置くのが常識です。

コードに鍵を直書きするのは、玄関マットの下と同じです。コードは、自分で思っているよりずっと人目に触れます。AIへの相談で貼る。エラー文と一緒に見せる。リポジトリを公開する。第13講で見たとおり、履歴に一度入れば、消したつもりでも残る。コードとは、いずれ誰かに見せるものなのです。

そこで、鍵の置き場所を分離します。使うのが環境変数(プログラムの外側に置く設定値)です。

仕組みはこうです。コードには「鍵そのもの」ではなく、「API_KEYという名前の環境変数を読む」とだけ書く。鍵の実物は、コードの外・・・実行する環境ごとに用意された置き場に置く。手元のパソコンなら .env という名前のファイルが定番で、公開先のサービスにも専用の設定画面があります。こうすると、コードをどれだけ人に見せても、鍵は見えません。公開されるのは「合鍵は金庫にある」という文だけで、金庫の中身は出ていかない形です。

もう1ついいことがあります。手元では練習用の鍵、公開先では本物の鍵、と環境ごとに中身を差し替えられる。コードは1つのまま、値だけが場所ごとに変わる。これが「外側に置く」ことの、もう1つの便利さです。

どこまでを環境変数に置くべきか。目安は単純で、それが漏れたら困るか。環境ごとに変わるか。どちらかに当てはまれば外に置く。両方に当てはまらない値(画面の文言、色の指定など)は、コードに書いてよい値です。


✍️ 手元で確かめる(5分)

自分のプロジェクトの、"外に出してはいけない値"の棚卸しをします。

紙に、思い当たるものを書き出してください。外部サービスの鍵、パスワード、第10講にも出てきた接続用の文字列、自分のメールアドレス・・・。

自分の一枚しかない人は、おそらく1つも無いはずです。それを確認できたら合格。あわせて、いつか鍵を持つ日のために、質問例1を眺めて「この仕分けをAIに頼めるのか」と知っておいてください。

実物で外部サービスを使っている人は、書き出した値がいまどこにあるか、1つずつ突き止めてください。コードの中に直書きを見つけたら、それが今日の収穫です。慌てて自分で直さず、質問例3で引っ越しの手順を出してもらってから動いてください。


💬 AIへの質問例

そのまま貼って使えます。

  1. 「私は初心者です。このコードの中の値について、環境変数にすべきものと、コードに書いたままでよいものを仕分けしてください。『漏れたら困るか』『環境ごとに変わるか』の基準での判定も添えてください。(コードを貼る)」
  2. 「ある値を環境変数にすべきか迷っています。値そのものは貼りませんが、(どんな種類の値かを書く)というものです。漏れた場合に起きることと、環境ごとに変える必要があるか、の2点から判定してください」
  3. 「このコードに直書きされている鍵を、環境変数に引っ越したいです。.envファイルの作り方、コード側の書き換え、.envを第13講で習った『記録しない指定』(.gitignore)に入れる設定、の3点を順番に案内してください。(鍵の部分を伏せ字にしたコードを貼る)」

2つ目の書き方が、そのまま作法の見本です。鍵そのものは、AIにも貼らない。「こういう種類の値」という説明で、判定には十分です。


⚠️ やってはいけないこと

公開リポジトリに、鍵を上げること。

これは、この講座に出てくる事故の中で、いちばん速く燃え広がるものです。公開リポジトリを自動で巡回して、鍵を探し続けている拾い手が世界中にいます。うっかり上げた鍵は、数分から数時間で拾われ、あなたの名義でサービスを使い倒されます。「無名な個人の練習用リポジトリだから、誰も見ていない」は通用しません。巡回しているのは機械なので、有名も無名も関係ないのです。

もし上げてしまったことに気づいたら、削除より先にやることがあります。鍵の無効化(そのサービスの管理画面で、その鍵を失効させて、新しい鍵を作り直すこと)です。第13講で見たとおり、履歴からは簡単に消えません。消す努力より、その鍵をただの文字列に変えてしまうほうが、確実で速い。順番だけ覚えてください。無効化が先、片づけは後。


📌 まとめ

  • 鍵の直書きは玄関マットの下。コードは、いずれ誰かに見せるものと考える
  • 鍵はコードの外・・・環境変数に置く。目安は「漏れたら困るか、環境ごとに変わるか」
  • 公開リポジトリに鍵を上げてしまったら、削除より先に無効化。順番を間違えない