AI活用

APIキーとは?AIやWordPressとつなぐときの合言葉と、漏らさないための基本

公開 約4分で読めます

TL;DRこの記事の要点

  • APIキーは、どの契約やプロジェクトからの呼び出しかをサービスが見分ける文字列
  • 漏れると他人に使われることがあるので、Gitに入れず、使える範囲を制限する
  • 本人として操作するときは、APIキーではなくOAuthを使う
目次6項目
  1. APIキーとは?(一言で)
  2. どんなときに出てくる?
  3. APIキーの基本
  4. 自分が試したこと・点検したこと
  5. APIキーやトークンでハマった例
  6. 迷ったときの確認ポイント

AIのサービスやWordPressのプラグインを使っていると、「APIキーを入力してください」という欄に出会います。
APIキーって、そもそも何なのか。
自分は、WordPressのAI連携でAPIキーを入れたことがあって、自分のGitHubにキーが漏れていないかも点検しました。
その経験と一緒に、APIキーの基本をまとめます。

APIキーって、パスワードみたいなもの?

近い。「どこからの呼び出しか」を伝える合言葉。だから人に見せちゃだめ。

APIキーとは?(一言で)

APIキーは、プログラムからサービスを呼び出すときに、一緒に送る長い文字列です。
サービスは、このキーを見て、どの契約やプロジェクトに結びつく呼び出しかを見分けます。
キーだけで、操作している本人まで確かめるわけではありません。

APIは、プログラム同士がやり取りするための窓口のこと。
その窓口で見せる会員証が、APIキー、みたいなイメージです。

Google Cloudの公式ドキュメントでは、APIキーは呼び出しをプロジェクトに結びつけて、料金や利用上限の集計に使うもの、と説明されています。
キーで呼び出した分は、キーを作ったプロジェクトの利用量として数えられる、ということです。

どんなときに出てくる?

  • AIのサービス(Anthropic・OpenAI・Geminiなど)を、自分のプログラムやプラグインから使うとき
  • WordPressのプラグインで、外部のサービスとつなぐとき(AI連携、地図、翻訳など)
  • 自分で書いたスクリプトから、Googleなどのサービスのデータを取るとき

APIキーの基本

漏れると、他人に使われる

キーは、知った人にも使われるおそれがあります。
特に、使える場所やAPIを制限していないキーが漏れると、他人に使われて、自分のプロジェクトの利用量や請求に影響することがあります。

漏れるって、どこから?

よくあるのは、コードにキーを書いたまま、GitHubに上げちゃうパターン。

使える範囲をしぼれる

Google Cloudでは、キーごとに「どのAPIに使えるか」「どのサイトやアプリから使えるか」を制限できます。
公式ドキュメントでも、制限のないキーは安全ではないとして、制限をかけることがすすめられています。

APIキーとOAuthの違い

APIキーは、どの契約やプロジェクトに結びつく呼び出しかを見分けるものです。
一方で、YouTubeへの動画アップロードのように「本人として操作する」ときは、OAuthという仕組みを使います。
OAuthは、本人がGoogleにログインして「このアプリに許可する」を押すと、アプリにトークンが渡される仕組みです。

自分のYouTubeのアップロードも、APIキーではなく、このOAuthのトークンで動かしています。

自分が試したこと・点検したこと

WordPressのAI連携に、AnthropicのAPIキーを入れた

WordPressのAI連携を、ローカルの環境で試したことがあります。
プラグインの設定画面に「APIキーを入力してください」という欄があって、Anthropicのキーを入れたら、すぐ「接続済み」になりました。

ただ、機能を試したらエラー。
コンソールには「Your credit balance is too low to access the Anthropic API」と出ていて、原因は、APIを呼び出すためのクレジット残高が足りないことでした。
「接続済み」の表示と、機能を実際に使えることは別だったんです。
キーが通っても、使った分を払える状態になっていないと動きません。

GitHubにキーが漏れていないか、全履歴まで点検した

Xで「GitHubでAPIキーを検索すると、公開されたキーが大量に見つかる」という投稿を見て、自分のリポジトリも点検しました。
点検はClaude Codeにやらせてます。

cat’s handのリポジトリは4つで、どれも非公開(private)です。
今のファイルだけでなく、過去の全コミットまで、キーの形の文字列を探してもらいました。
調べた4つのリポジトリでは、キーのパターンに一致するものは0件でした。
YouTubeの認証情報のファイルも、.gitignore(Gitに入れないファイルの一覧)に入っていて、一度もコミットされていませんでした。

今のファイルだけじゃ、だめなの?

Gitは昔の版も残る。今消しても、前のコミットに残ってたら見えちゃう。

APIキーやトークンでハマった例

迷ったときの確認ポイント

  1. 入力欄が出たら、まず、そのプラグインがどのサービスのキーを求めているかを確認する
  2. キーは、使うサービスの公式の管理画面で作る。有料のサービスなら、料金の設定を確認してから、プラグインやツールの入力欄に入れる
  3. キーは、コードに直接書かず、別のファイルや設定に分けて、Gitに入れない
  4. GitHubに上げる前に、キーが入っていないか確かめる。過去のコミットも含めて
  5. 使えるAPIや、使える場所を制限できるサービスなら、制限をかける
  6. 漏れたかもと思ったら、そのキーを無効にして、新しいキーを作り直す

あわせて知っておきたい用語

Git
ファイルの変更履歴を残す仕組み。過去の版も残るので、キーを一度コミットすると履歴に残る。詳しくはこちら。
OAuth
本人がログインして許可すると、アプリにトークンが渡される仕組み。本人として操作するときに使う。
MCP
AIを外部のツールやデータにつなぐ共通の仕組み。つなぐ先によってはAPIキーが必要になる。詳しくはこちら。

この記事が参考になったら、応援クリックをお願いします

Cat's Handこの記事を書いた人

Web制作歴10年以上。WordPressのテーマカスタマイズやコーディングを中心に、副業・本業ともにweb制作に携わっています。このブログでは、実際に手を動かして分かったことを書いています。