StripeプラグインのシークレットAPIキーと制限付きのAPIキーは、それぞれ異なる目的で使用されます。
シークレットAPIキーは、Stripeアカウントに関連付けられたすべての情報にアクセスできる完全な権限を持っています。このキーは、サーバーサイドでの支払い処理など、重要なトランザクションの実行に使用されます。そのため、このキーは秘密に保たれるべきで、不正アクセスや攻撃から保護される必要があります。
一方、制限付きのAPIキーは、シークレットAPIキーとは異なり、特定の作業にのみアクセスできるように制限された権限を持っています。これは、フロントエンドのJavaScriptなど、クライアントサイドでのStripe APIの使用に適しています。制限付きのAPIキーは、クレジットカード番号や顧客情報を取得するような重要な処理には使用されず、あくまでもUIの処理に使用されます。
つまり、シークレットAPIキーはサーバーサイドでの重要なトランザクションに使用され、制限付きのAPIキーはクライアントサイドでのUIの処理に使用されることが一般的です。それぞれのキーの目的に応じて、適切に使用することが重要です。
[参考] Stripe DOCS では、両者を以下の様に記載しています。シークレット API キー
シークレット API キーは、支払いの作成、返金の実施など、お客様のアカウントの代理としてあらゆる API コールの実行に使用できます。キーを安全に保管するために、以下のベストプラクティスを利用してください。
- 必要な人のみにアクセスを付与します。
- バージョン管理システムを使用している場合には、キーがその影響を受けないようにします。
- キーへのアクセスの管理には、パスワードマネージャーまたはシークレット管理サービスを使用します。
- シークレット API キーを、モバイルアプリケーションやキーが抽出される可能性のあるその他の場所に埋め込まないでください。
制限付きの API キー
制限付きの API キーは、指定する最小レベルのアクセスのみを許可します。制限付きのキーは、Stripe の API の多くの部分とやり取りでません。これは、マイクロサービスを使用または構築する際のリスクを削減することを目的としたものです。Stripe 実装の開発中にアカウントの API キーの代わりとして制限付きのキーを使用しないでください。
お客様の代わりに Stripe API とやり取りをするマイクロサービスを利用している場合、制限付きの API キーを使用してください。特定のアカウントデータに対するアクセスや権限を制限する、制限付きの API キーを作成できます。たとえば、不審請求の申請データに対する読み取り専用アクセスを許可する制限付きキーを作成し、それを不審請求の申請モニタリングサービスで使用できます。
※また、権限エラーについては、制限付きの API キーをアクセス権のないコールで使用すると、Stripe は権限エラーを返す、とのことです。