API キーと認証ヘッダー
役に立つ API のほとんどは、世界に開かれてはいない。会社は誰が尋ねているのかを知る必要がある。利用状況を追跡し、あなたに課金するためだ。会社はあなたに API キーを渡す——あなたのアカウントを識別する、長い秘密の文字列だ。あなたはそれをすべてのリクエストに付ける。通常は Authorization という HTTP ヘッダーに、上の Bearer sk_live_... の行のように添える。
API キーはパスワードとまったく同じように扱うこと。実際それがパスワードなのだから。それを持っている者は誰でも、あなたとしてリクエストを送れる——そしてあなたの請求額を膨らませたり、データを読んだりできる。これはセキュリティの章に直結する話で、最も重要なルールがひとつある。
- API キーを、ブラウザに配信されるコードに絶対に置かないこと。 フロントエンドにあるものはすべて公開されている——ユーザーは開発者ツールを開いてそれを読める。「ページから API を呼び出して」と頼まれた AI は、あなたの秘密のキーをそこに嬉々として貼り付ける。止めること。秘密のキーはサーバーにあるべきだ。
- キーを git にコミットしないこと。 あとで削除したとしても、それは履歴の中に永遠に生き続けるし、ボットは公開リポジトリを数分以内にスキャンしてキーを探している。
- キーは環境変数に保存すること。 コード自体の中ではなく——セキュリティの章で扱うのと同じパターンだ。
もし本物のキーが差分の中、フロントエンドのファイルの中、あるいはチャットメッセージの中に居座っているのを見かけたら、それはすでに漏洩したものとして扱うこと。すぐにローテーションする(新しいものを生成し、古いものを無効化する)のだ。