APIキーとは?

APIキーとは

APIキーとは?わかりやすい解説と安全対策チェックリスト | We.Inc

APIキーとは何か、パスワードやOAuthトークンとどう違うのか、どこに保管するか、どう制限してローテーションするか、漏えいした瞬間に何をすべきかを解説します。

APIキーは、決済、地図、メールなどのサービスを呼び出すときに、どのアカウントからの呼び出しかを証明するため、プログラムがリクエストごとに送る長い秘密の文字列です。ほとんどのキーはパスワードと同じように扱いましょう。サーバーに保管し、サイトのコードには絶対に入れず、できることを制限し、漏れたら差し替えます。

APIキー、OAuthトークン、パスワードの比較

サイトやストアを運営していると、決済、地図、メール、フォームツール、AIエージェントなど、サービスをつなぐたびにAPIキーに出会います。ほとんどは秘密ですが、一部は公開を前提としたもので、この2つを取り違えることが高額な請求やデータ漏えいの原因になります。下のチェッカーにキーを貼り付けると、どの種類のキーに見えるかを確認できます。すべてブラウザー内で動作し、どこにも何も送信しません。

よくある質問

APIキーはパスワードと同じものですか?

どちらも秘密情報ですが、パスワードは人がログインするためのもので、APIキーはソフトウェアがサービスを呼び出すためのものです。キーは長くランダムで、通常は特定の操作に限定されており、誰のログイン情報も変えずに差し替えられます。

APIキーをサイトのJavaScriptに入れてもよいですか?

そのキーの種類は公開しても安全だとプロバイダーが明言している場合に限ります。pk_ で始まるStripeの公開可能キーはフロントエンドのコード用ですが、シークレットキーと制限付きキーは違います。ブラウザー内にあるものは、すべての訪問者が読めます。

APIキーはどこに保管すべきですか?

シークレット管理用のボールトか、ホスティングサービスの環境変数の設定に保管します。StripeもGoogleも、キーをソースコードに書いたり、コードリポジトリにコミットしたりしないよう案内しています。

APIキーが漏えいしたらどうすればよいですか?

すぐにプロバイダーのダッシュボードで無効化またはローテーションし、新しいキーをサーバーの設定に入れます。検出されたシークレットに関するGitHubのガイダンスでは、影響を受けた認証情報を直ちにローテーションするよう求めています。履歴を消すだけでは、有効なキーは安全になりません。

APIキーとOAuth、どちらを使うべきですか?

自分のサーバーが自分のアカウントでサービスとやり取りする場合はAPIキーを使います。アプリが他の人のアカウントでその人の代わりに動く必要がある場合はOAuthを使います。そうすれば、各ユーザーが自分でアクセスを許可し、取り消すことができます。

公開キーと秘密キー

キー漏えい時のチェックリスト

サーバーからキーを安全に使う

キーはサーバーの環境変数に置きます。ブラウザーは自分のエンドポイントを呼び出し、そのエンドポイントがキーを付けてプロバイダーを呼び出します。

.env(絶対にコミットしない)

値はすべてプレースホルダーです。.env を .gitignore に追加し、リポジトリに入らないようにしましょう。

小さなサーバーのルートです。シークレットはサーバー側で読み込まれ、ブラウザーに送られることはありません。

APIキーチェッカー

キー、またはその先頭の数文字を貼り付けてください。チェックはブラウザー内だけで行われますが、それでも本番の秘密キーではなくテスト用のキーかダミーの値を使うことをおすすめします。

確認するキー

Stripeの公開可能キー

Stripeのシークレットキー

Stripeの制限付きキー

Notionのトークン

Webhookの署名シークレット(whsec_ 接頭辞)

既知の接頭辞がありません。プロバイダーが別途説明していない限り、秘密として扱ってください。

プロバイダーによると、フロントエンドのコード用です。

秘密:サーバーに保管し、ウェブページには絶対に入れないでください。

テストモードまたはサンドボックスモードのキーです。

本番モードのキー:実際のお金や実際のデータを扱います。

長さ:{n} 文字

ランダムに生成された場合のおおよそのランダム性:{n} ビット

秘密としては短いようです。おおよそ {n} ビット以上を目安にするとよいでしょう。

確認するものを貼り付けてください。

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る