シークレット API キーを管理するためのベストプラクティス
シークレット API キーを管理し、キーの漏洩に対応する方法をご紹介します。
シークレット API キーは、ユーザー名とパスワードなどのアカウント認証情報の形式です。公開可能キーはウェブページやアプリに含めるのが安全ですが、シークレット API キーはサーバー環境に限定し、漏洩から保護する必要があります。攻撃者がシークレットキーを取得すると、そのキーを使用してビジネスや Stripe エコシステムの他の関係者に損害を与える可能性があります。
シークレット API キーは安全に保管する必要があります。Stripe が提供するセキュリティ機能の使用など、以下のベストプラクティスに従ってください。
侵害されたシークレット API キーからの保護
キーの漏洩を防ぎ、所定の位置にキーを固定するために、次のアクションを実行します。
- セキュアキー管理システム (KMS) を使用したシークレットキーの保管: Stripe ダッシュボードから本番のシークレットキーを作成すると、そのキーは一度しか表示されません。暗号化とアクセスコントロールで機密情報を扱う KMS に、すぐにキーをコピーしてください。申し込みのソースコードやその他のローカルファイルにキーのコピーを残さないようにしてください。
- 必要な人にのみにキーへのアクセスを許可する: どのユーザーがキーの作成、更新、読み取りの権限を持つかについて、明確なポリシーを定義します。必要な人のみにアクセスを制限してください。キーに過度な権限が付与されないように、定期的にキーの権限とアクセスログを監査します。
- 安全でない手段を使用してシークレットキーを共有しない: メール、チャットするメッセージ、顧客サポートメッセージでキーを共有しないでください。Stripe がお客様にシークレット API キーの提供を求めることはありません。
- キーをソースコードリポジトリー (GitHub など) に保存しない: 不正行為者は公開ソースコードリポジトリーをスキャンして API キーを探し、シークレットキーをコミットしないでください。ソースコードリポジトリーが非公開であっても、コードのコピーがチームメンバーの開発環境にあり、そこで侵害された申し込みがコードを読み取る可能性があります。
- 申し込みにシークレットキーを埋め込みません: 不正行為者は、アプリケーションに特定の文字列パターンを照合することで、シークレットキーを悪用する可能性があります。クライアントツール、SDK、モバイルアプリなどのアプリケーションにシークレットキーを埋め込みません。代わりに、これらのユースケース向けの公開可能キーを埋め込みます。
- API キーのローテーション機能の活用: Stripe API キーのローテーションプロセスを定義し、実行することで、キーがどこで使用されているかを理解し、API キーが侵害された場合に備えることができます。定期的なキーのローテーションプロセスを実施することで、API キーが侵害された場合でもビジネスへの影響を最小限に抑えて対応できます。
- API リクエストログの監査による疑わしいアクティビティの監視: API リクエストログ を定期的に監査または監視して、不正使用された API キーを積極的に特定することを推奨します。 サンドボックス キーが適切な場合に開発者が本番キーを使用していないことを確認してください。詳しくはサンドボックスと本番環境の違いをご覧ください。
- 定期的なトレーニングとドキュメントの更新: 組織内でのシークレット API キーの扱い方に関する最新のドキュメントを整備します。また、定期的にトレーニングセッションを開催して、ベストプラクティスが守られていることを確認します。
制限付き API キーを使用して API アクセスをカスタマイズする
制限付き API キー を作成して、Stripe API への制限付きのアクセスを許可できます。制限されたキーを共有する方が、シークレットキーを共有するよりも安全です。
制限された付きキーを使用すると、侵害の潜在的な影響を制限できます。たとえば、不審請求の申請を監視する第三者に Stripe API キーを提供する場合、Stripe アカウントの不審請求の申し立て請求の申請関連リソースへの読み取り専用アクセスを許可し 、その他をすべてブロックする制限された付きキーを作成できます。第三者が侵害された場合、キーを盗んだ悪意のあるユーザーは、その API コールのみに限定されます。
API リクエストを送信できる IP アドレスを制限する
シークレットまたは制限付きキーのセキュリティを強化するには、API リクエストの送信に使用できる IP アドレスを制限します。サービスに安定したエグレス IP 範囲があり、それらのエグレス範囲が変更された際の許可リスト更新のための変更管理プロセスがある場合は、これをお勧めします。
キーを 1 つ以上の IP アドレスに制限する方法については、シークレットキーまたは制限付きキーをIP アドレスのリストまたは範囲に制限する方法を参照してください。
侵害されたシークレット API キーを処理する
シークレット API キーを誤って GitHub に公開してしまうなど、シークレット API キーの侵害を確認した場合は、直ちに Stripe ダッシュボード から キーをローテーション し、古いキーで導入を更新します。API キーの侵害を確認せずに異常な動作を検出した場合は、根本的な原因を調査しながら API キーを積極的にローテーションすることを推奨します。
Stripe はシークレット API キーの漏洩を検知した場合、直ちに通知してキーを取り消すようリクエストします。お客様には、不正利用されたキーが原因の損害発生リスクや金銭的損失を軽減するべく直ちに対応していただく必要があります。Stripe が事前にキーを無効化することもあります。その場合、Stripe はその措置についてお客様にご連絡いたします。
Stripe はすべての侵害されたキーの検出を保証するものではありません。侵害されたキーを防止し、Stripe との導入がセキュアであることを確認するため、ベストプラクティスに従う必要があります。