🌐 JA

🔑 APIキー生成ツール

安全なランダムAPIキーを生成します。REST API、認証トークン、シークレットキーの生成にご利用ください。

APIキー形式
ガイド

詳しく見る

01

1. APIキーセキュリティの重要性

APIキーはアプリケーション間の認証における中核的なセキュリティ要素です。脆弱なキーはブルートフォース攻撃に弱く、漏洩すると不正なAPIアクセスにつながります。強力なAPIキーは最低32文字以上のランダムな文字列であるべきで、暗号学的に安全な擬似乱数生成器(CSPRNG)を使用する必要があります。UUID v4、Base64、Hex形式が広く使われており、各APIキーは一意で予測不可能でなければなりません。キーが露出した場合は直ちに破棄して新しいキーに交換し、GitHubのような公開リポジトリには絶対にコミットしないでください。

02

2. キー生成方式の比較

APIキーの生成方式にはいくつかの種類があります。UUID v4は122ビットのランダム値で衝突確率が極めて低く、広く利用されています。Base64はバイナリデータをテキストにエンコードし、32文字で約192ビットのエントロピーを提供します。Hexは16進数で表現されるため可読性が高く、64文字で256ビットのセキュリティを提供します。英数字方式は大文字・小文字と数字のみを使用するためURLセーフであり、接頭辞(sk_、api_)を追加するとキーの種類を識別しやすくなります。Stripe、AWS、OpenAIなどはそれぞれ独自のキー形式を用いてサービスごとのキーを区別しています。

03

3. UUID対ランダム文字列

UUID v4は標準化された128ビットの識別子で、世界的な一意性を保証します。8-4-4-4-12形式(例: 550e8400-e29b-41d4-a716-446655440000)で構造が明確であり、RFC 4122標準に準拠しています。一方、カスタムのランダム文字列は長さと形式を自由に設定できるため柔軟です。UUIDはデータベースの主キーに適していますが、APIキーにはランダム文字列の方が簡潔で使いやすいです。セキュリティ強度は同程度ですが、ランダム文字列は接頭辞やチェックサムを追加して検証ロジックを実装しやすいという利点があります。

04

4. キー保管の推奨事項

APIキーは決して平文で保存してはいけません。環境変数(.env)に保存し、.gitignoreに追加してバージョン管理から除外してください。本番環境ではAWS Secrets Manager、HashiCorp Vault、Azure Key Vaultのような専用のシークレット管理システムを使用してください。データベースに保存する際はハッシュ(SHA-256)に変換し、必要に応じて暗号化(AES-256)を併用します。キーをコードにハードコードせず、DockerシークレットやKubernetes Secretsを活用してください。ログにキーが露出しないようマスキング処理を行い、キーの使用履歴を監視してください。

05

5. キーローテーションポリシー

APIキーは定期的にローテーション(交換)する必要があります。90日ごとにキーを交換するのが一般的で、漏洩の疑いがある場合は直ちに破棄してください。無停止での交換のために2つのキーを同時に有効化し、新しいキーに切り替えた後に古いキーを無効化します。AWS IAMやGoogle Cloud APIキーは自動ローテーション機能を提供しています。キーごとに有効期限を設定して古いキーを自動的に無効化し、ローテーション履歴を監査ログに記録してください。APIキーの代わりにOAuth 2.0やJWTのようなトークンベースの認証を使用すると、より安全で自動失効が可能になります。

06

6. レート制限と使用制限

APIキーには必ずレート制限を適用して不正利用を防止してください。IPあたり毎分100回、キーあたり毎時1,000回といった制限を設定します。クォータを設けて1日あたりの最大呼び出し回数を制限し、超過した場合は429 Too Many Requestsを返してください。IPホワイトリストを設定して特定のIPからのみキー使用を許可し、異常なパターン(短時間での大量リクエスト)を検知して自動的にブロックします。Cloudflare、Kong、AWS API GatewayのようなAPIゲートウェイを使用すると、レート制限を簡単に実装できます。キーごとの権限(スコープ)を設定して、読み取り専用・書き込み専用などにアクセスを制限してください。

よくある質問

生成されたキーはサーバーに送信されますか?
いいえ。すべてのキーはブラウザ内でのみ生成され、サーバーには送信されないため、安全にご利用いただけます。
どの形式を選べばよいですか?
汎用的にはUUID v4が衝突確率が低く広く使われています。URLセーフが必要なら英数字、可読性が必要ならHexをおすすめします。