Lecture 10API Keyとトークンとは?
外部サービスを安全に使うための鍵であるAPI Keyとトークンを理解します。
AIや決済などの外部サービスを使うときに必ず登場するのが API Key や トークン です。 正体はとてもシンプルで、サービスを使うための「鍵」 だと思ってもらえれば十分です。 ただし、家の鍵と同じで 落としたり貼り出したりすると危険 なので、扱い方だけはしっかり押さえます。
このレクチャーでは、API Keyとは何か、漏れると何が起きるか、 そして「どこに置けば安全か」を、家の鍵のメタファーで一気に整理します。
1API Keyは「サービスを使うための鍵」
AI API(OpenAIやAnthropicなど)、決済サービス(Stripeなど)、データベースサービス (SupabaseやFirebaseなど)を使うときに、ユーザー登録すると 長い文字列 が発行されます。 これがAPI Keyです。トークンも近い役割を持ちますが、多くの場合は「一定時間だけ使える入館証」のように扱われます。
イメージは家の鍵と同じです。 鍵を持っている人だけが家に入れる。サービス側も「この鍵を持っている=あなたが料金を払って使ってもいい人」と判断します。 だから鍵は あなたの財布と同じ重さ を持っている、と覚えておきましょう。
2鍵が漏れると何が起きるか
API Keyを誰でも見える場所に貼ってしまうと、見つけた人があなたのアカウントでサービスを使え てしまいます。具体的にはこんな被害が起きます。
- 料金が請求される:他人があなたの鍵でAI APIを大量に叩き、月末に高額の請求が届く。
- データを覗かれる・書き換えられる:DBの鍵が漏れれば、ユーザー情報や注文情報を読まれる・消される。
- サービスを止められる:規約違反として鍵が無効化され、本人もサービスにアクセスできなくなる。
API Keyはコードにもチャットにも貼らない
「Codexに早く動いてほしくて、チャット欄にAPI Keyを貼ってしまう」は最も多い事故のひとつです。 鍵を渡さなくてもCodexは動きます。Codexには「鍵は .env.local に置いてあります、参照する処理を書いてください」と 場所を伝えるだけ でOKです。
3どこに置く? コードの外側に置く
鍵をコードファイルに直接書いてしまうと、GitHubに上げた瞬間に世界中から見えるようになってしまいます。 そのため、API Keyは コードの外側 に置きます。 Next.jsのプロジェクトでは .env.local という専用ファイルを使います。
.env.local:プロジェクトの一番上に作る、秘密情報専用のファイル。OPENAI_API_KEY=sk-...のような書き方で1行ずつ書く。- コードからは名前で呼び出す:本物の鍵を書くのではなく、
process.env.OPENAI_API_KEYのように 名前だけ 参照する。 - GitHubには上げない:
.gitignoreに.env.localを入れておけば、 GitHubに公開されることはなくなる(多くのプロジェクトでは最初から入っています)。

4GitHubに上げる前にひと声かける
慣れるまでは、コミットする前にCodexに 確認のひと声 をかけるクセが効きます。 鍵やトークンが紛れ込んでいないか、人間とAIの2回チェックでミスを潰します。
- 「いまの変更内容に、API Keyやパスワードが含まれていないか確認してください」
- 「
.gitignoreに.env.localが含まれているか確認してください」 - 「もし秘密情報が含まれていたら、コミットせずに教えてください」
このプロジェクトの秘密情報の扱い方をCodexに整理してもらう
自分のプロジェクトに合わせた説明を引き出すのが目的です。 一般論ではなく「いまここでどうするか」が見えると、後の作業がぐっと安心になります。
- 「このプロジェクトで秘密情報を扱う安全な管理方法を、初心者向けに説明してください」とCodexに依頼する。
- 返ってきた説明の中に
.env.localと.gitignoreが出てくるか確認する。 - 「いま
.gitignoreに.env.localが入っているか確認してください」と追加で依頼する。
5理解確認チェックリスト
- API Keyは「サービスを使うための鍵」だと説明できる。
- 鍵が漏れると料金請求やデータ被害が起きうると理解している。
- 鍵はコードに直接書かず、
.env.localに置くと知っている。 - GitHubに上げる前にCodexへ確認するクセがついている。