Lecture 10技術理解 — 第 3

Lecture 10API Keyとトークンとは?

外部サービスを安全に使うための鍵であるAPI Keyとトークンを理解します。

読了の目安 約 6 分図解 準備中難易度

AIや決済などの外部サービスを使うときに必ず登場するのが API Keyトークン です。 正体はとてもシンプルで、サービスを使うための「鍵」 だと思ってもらえれば十分です。 ただし、家の鍵と同じで 落としたり貼り出したりすると危険 なので、扱い方だけはしっかり押さえます。

このレクチャーでは、API Keyとは何か、漏れると何が起きるか、 そして「どこに置けば安全か」を、家の鍵のメタファーで一気に整理します。

1API Keyは「サービスを使うための鍵」

AI API(OpenAIやAnthropicなど)、決済サービス(Stripeなど)、データベースサービス (SupabaseやFirebaseなど)を使うときに、ユーザー登録すると 長い文字列 が発行されます。 これがAPI Keyです。トークンも近い役割を持ちますが、多くの場合は「一定時間だけ使える入館証」のように扱われます。

イメージは家の鍵と同じです。 鍵を持っている人だけが家に入れる。サービス側も「この鍵を持っている=あなたが料金を払って使ってもいい人」と判断します。 だから鍵は あなたの財布と同じ重さ を持っている、と覚えておきましょう。

2鍵が漏れると何が起きるか

API Keyを誰でも見える場所に貼ってしまうと、見つけた人があなたのアカウントでサービスを使え てしまいます。具体的にはこんな被害が起きます。

  • 料金が請求される:他人があなたの鍵でAI APIを大量に叩き、月末に高額の請求が届く。
  • データを覗かれる・書き換えられる:DBの鍵が漏れれば、ユーザー情報や注文情報を読まれる・消される。
  • サービスを止められる:規約違反として鍵が無効化され、本人もサービスにアクセスできなくなる。
Warn

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に公開されることはなくなる(多くのプロジェクトでは最初から入っています)。
Figure 10.1公開してよい情報 / 秘密情報の仕分け
公開してよい画面文言や画像と、秘密にすべきAPI Key、DB接続情報、アクセストークンを左右に分けて示す図
NoteAPI Key、DB接続情報、アクセストークンは、見た目はただの文字列でもサービスを使う権限そのものです。公開コードやチャットに貼らず、サーバー側の設定に置きます。

4GitHubに上げる前にひと声かける

慣れるまでは、コミットする前にCodexに 確認のひと声 をかけるクセが効きます。 鍵やトークンが紛れ込んでいないか、人間とAIの2回チェックでミスを潰します。

  • 「いまの変更内容に、API Keyやパスワードが含まれていないか確認してください」
  • .gitignore.env.local が含まれているか確認してください」
  • 「もし秘密情報が含まれていたら、コミットせずに教えてください」
やってみよう · Exercise

このプロジェクトの秘密情報の扱い方をCodexに整理してもらう

自分のプロジェクトに合わせた説明を引き出すのが目的です。 一般論ではなく「いまここでどうするか」が見えると、後の作業がぐっと安心になります。

  1. 「このプロジェクトで秘密情報を扱う安全な管理方法を、初心者向けに説明してください」とCodexに依頼する。
  2. 返ってきた説明の中に .env.local.gitignore が出てくるか確認する。
  3. 「いま .gitignore.env.local が入っているか確認してください」と追加で依頼する。
進捗にチェックをつける

5理解確認チェックリスト

  • API Keyは「サービスを使うための鍵」だと説明できる。
  • 鍵が漏れると料金請求やデータ被害が起きうると理解している。
  • 鍵はコードに直接書かず、.env.local に置くと知っている。
  • GitHubに上げる前にCodexへ確認するクセがついている。
End of Lecture 10