AWS KMS リクエストのスロットリング - AWS Key Management Service

AWS KMS リクエストのスロットリング

AWS KMS はすべてのお客様からの API リクエストに迅速で信頼性の高いレスポンスを確実に返すために、特定の境界を超える API リクエストを制御します。

スロットリングは、AWS KMS が他の有効なリクエストを拒否して、次のような ThrottlingException エラーを返すときに発生します。

You have exceeded the rate at which you may call KMS. Reduce the frequency of your calls. (Service: AWSKMS; Status Code: 400; Error Code: ThrottlingException; Request ID: <ID>

AWS KMS は、次の条件に対するリクエストを制御します。

  • アカウントおよびリージョンの、1 秒あたりのリクエストレートが AWS KMS リクエストクォータを超えている。

    例えば、アカウントのユーザーが 1 秒に 1,000 DescribeKey リクエストを送信する場合、AWS KMS はその後の DescribeKey リクエストすべてを制御します。

    スロットリングに対応するには、バックオフと再試行戦略を使用します。この戦略は、一部の AWS SDK で、HTTP 400 エラー用に自動的に実装されています。

  • 同じ KMS キーステータスを変更するための、リクエストのバーストレートまたは持続的な高いレート。多くの場合、この条件は「ホットキー」と呼ばれます。

    例えば、アカウント内のアプリケーションが同じ KMS キーに対して、持続的かつ一斉に EnableKey および DisableKey リクエストを送信した場合、AWS KMS はリクエストを制御します。このスロットリングは、リクエストが EnableKey および DisableKey オペレーションの 1 秒あたりのリクエスト制限を超えていない場合にも発生します。

    スロットリングに対応するには、アプリケーションロジックを調整して必要なリクエストのみを作成するか、複数の関数のリクエストを統合します。

リクエストレートのトレンドを表示するには、Service Quotas コンソールを使用してください。リクエストレートがクォータ値の一定の割合に達したときに警告する Amazon CloudWatch アラームを作成することもできます。詳細については、AWS Security Blog の「Manage your AWS KMS API request rates using Service Quotas and Amazon CloudWatch」(Service Quotas と Amazon CloudWatch を使用して API リクエストレートを管理する) を参照してください。

すべての AWS KMS クォータは、キーポリシードキュメントサイズリソースクォータとカスタムキーストアの KMS キー用リクエストクォータを除いて調整可能です。クォータの引き上げをリクエストするには、Service Quotas コンソール、または RequestServiceQuotaIncrease オペレーションを使用します。手順については、「AWS KMS クォータ引き上げのリクエスト」を参照してください。詳細については、「Service Quotas ユーザーガイド」の「クォータの引き上げのリクエスト」を参照してください。AWS KMS の Service Quotas を AWS リージョン で使用できない場合は、AWS Support センターにアクセスして、ケースを作成してください。