AWS KMS へのリクエストを実行するときに ThrottlingExceptions エラーが表示されるのはなぜですか?
最終更新日: 2021 年 2 月 12 日
AWS Key Management Service (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: EXAMPLEID
簡単な説明
ThrottlingException エラーコードは、AWS KMS に対するリクエストレートが AWS アカウントの リクエストクォータを超過していることを示しています。その結果として、AWS KMS サービスがリクエストをスロットルします。
解決方法
以下のベストプラクティスを使用して ThrottlingException エラーのトラブルシューティングを行ってください。
- サービスクォータサービスからの AWS KMS の使用状況メトリクスを確認して、1 秒あたりの最大および平均リクエストレートを特定します。AWS KMS は、異なる AWS KMS リクエストクォータに関する使用状況メトリクスを Amazon CloudWatch にパブリッシュします。例えば、Encrypt および Decrypt オペレーションは、暗号化オペレーションの共有クォータを使用します。
- リクエストレートを減らして、backoff and retry ロジックの使用または変更を検討してください。
- Amazon Simple Storage Service (Amazon S3) バケットでの AWS KMS CMK (SSE-KMS) を使用したサーバー側暗号化には、S3 バケットキーを使用します。手順については、「Amazon S3 バケットキーを使用した SSE-KMS のコストの削減」を参照してください。
- AWS Encryption SDK の暗号化ライブラリで、データキーキャッシュ機能を使用します。データキーキャッシュは、暗号化用のデータキーをキャッシュして再利用することによって API リクエストのレートを低減し、コストおよびパフォーマンスの要件を満たします。
- AWS KMS クォータの引き上げをリクエストして、リクエストクォータを引き上げます。
- リクエストクォータに到達する前に、使用率の割合への到達時にアラートを発行する Amazon CloudWatch アラームを作成します。