シークレット API キーを管理するためのベストプラクティス
シークレット API キーを管理し、キーの漏洩に対応する方法をご紹介します。
シークレット API キーは、ユーザー名やパスワードなどのアカウント認証情報の一形態です。不正行為者がシークレットキーを取得すると、それを使用してお客様のビジネスや Stripe エコシステム内の他の関係者に損害を与える可能性があります。
シークレット API キーを安全に保管する責任は Stripe ユーザーにあります。以下では、Stripe が提供するセキュリティー機能の使用を含め、安全に保管する方法のベストプラクティスをいくつかご紹介します。
キーの漏えいを防止する
- シークレットキーの保管にはセキュアキー管理システム (KMS) を使用する。 Stripe ダッシュボードから本番環境のシークレットキーを作成すると、そのキーは一度しか表示されません。すぐにキーを KMS にコピーしてください。KMS は、暗号化とアクセス管理を使用して機密情報を処理するように設計されています。ローカルファイルにキーのコピーを残さないようにしてください。
- 必要な人にのみにキーへのアクセスを許可する。 どのユーザーがキーの作成、更新、読み取りの権限を持つかについて、明確なポリシーを定義します。必要な人のみにアクセスを制限してください。キーに過度な権限が付与されないように、定期的にアクセスを監査します。
- 安全でない手段を使用してシークレットキーを共有しない。 メール、チャットメッセージ、カスタマーサポートメッセージでキーを共有しないでください。Stripe がお客様にシークレット API キーの提供を求めることはありません。
- ソースコードリポジトリ (GitHub など) にキーを保存しない。 不正行為者が公開ソースリポジトリを調べて、漏洩したキーを見つけることがあります。ソースリポジトリが非公開であっても、開発環境のチームメンバーと共有される可能性があります。
- シークレットキーをアプリケーションに埋め込まない。 不正行為者は、アプリケーションで特定の文字列パターンを照合することにより、シークレットキーを悪用することができます。クライアントツール、SDK、モバイルアプリなどのアプリケーションにキーを埋め込まないでください。
- API キーを更新できることを確認する。 キーの更新プロセスを定義して実行することで、キーがどこで使用されているかを理解し、API キーが漏洩した場合の組織の対応を準備できます。キーの更新プロセスを用意しておくことで、ビジネスへの影響を最小限に抑えながら、キーの漏洩イベントに対応する準備ができます。
- API リクエストログを監査して、疑わしいアクティビティを監視します。 不正に使用された API キーを事前に特定するために、API リクエストログを定期的に監査または監視することをお勧めします。テスト環境のキーを使用すべき場合に開発者が本番環境のキーを使用していないことを確認してください。詳細については、テスト環境と本番環境をご覧ください。
- 定期的なトレーニングとドキュメントの更新。 組織内でのシークレット API キーの扱い方に関する最新のドキュメントを整備します。また、定期的にトレーニングセッションを開催して、ベストプラクティスが守られていることを確認します。
既存のシステムを保護するためのセキュリティ機能を導入する
- **制限付き API キーを使用します。**制限付き API キーは、特定の API リソースへの読み取りまたは書き込みのアクセスをカスタマイズできます。制限付きキーを使用すると、特にサードパーティーにアクセスを許可するような場合に、必要なリソースへの最小限のアクセスのみを許可し、キーのリスクを抑えることができます。
- **API リクエストを送信できる IP アドレスを制限します。**指定された IP アドレスからのリクエストのみが許可されるように API キーを設定できます。これは、サービスに安定したエグレス IP 範囲と、そのエグレス範囲が変更されたときに許可リストを更新するための変更管理プロセスがある場合に推奨します。
漏洩したシークレット API キーに対応する
キーが誤って GitHub に公開された場合など、シークレットキーの漏洩を確認した場合は、すぐに Stripe ダッシュボードからキーを更新し、既存のシステムを新しいキーに置き換えます。API キーが漏洩したことを確認できない状態で異常な動作が検出された場合は、根本原因を調べながら、事前対応的に API キーを更新することをお勧めします。
本番環境のシークレット API キーが漏洩したことを Stripe が検出した場合、すぐにお客様に通知し、キーの更新を依頼します。漏洩したキーの不正使用によって発生する可能性のある損害や財務上の損失を減らすために、迅速に対応することが非常に重要です。アカウントに課されるリスクとアクティビティーに応じて、Stripe がお客様に代わってキーの更新を行う場合があります。この場合、行われたアクションについてお知らせいたします。
Stripe は、漏洩したキーのすべてを検出できることを保証していません。ベストプラクティスを実行して、キーの漏洩を防ぎ、Stripe と連携するお客様のシステムの安全性を確保することは、お客様の責任になります。