限制 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 限制满足以下条件的请求。

  • 每秒请求的速率超过一个账户和区域的 AWS KMS 请求配额

    例如,如果您账户中的用户在一秒钟提交了 1000 个 DescribeKey 请求,AWS KMS 会限制这一秒钟的所有后续 DescribeKey 请求。

    要对限制进行响应,请使用退避和重试策略。在某些 AWS 开发工具包中,会针对 HTTP 400 错误自动实施这一策略。

  • 用于更改同一 KMS 密钥状态的请求突发或持续高速率。这种情况通常称为“热键”。

    例如,如果您账户中的某个应用程序针对同一个 KMS 密钥发送一串持久的 EnableKeyDisableKey 请求,AWS KMS 将限制请求。即使请求没有超出 EnableKeyDisableKey 操作的每秒请求数请求限制,也会进行此限制。

    要响应限制,请调整您的应用程序逻辑,使其只发出必需的请求或合并多个函数的请求。

  • 当与自定义密钥存储相关联的 AWS CloudHSM 集群正在处理大量命令(包括与自定义密钥存储不相关的命令)时,对自定义密钥存储中的 KMS 密钥的操作请求可能会以低于预期的速率被节流。

    当 AWS CloudHSM 集群中没有可用的 PKCS11 会话时,AWS KMS 还会节流对自定义密钥存储中的 KMS 密钥进行操作的请求。这种情况通常发生在高突发流量期间,此时需要额外的会话来服务流量。

要查看请求速率的趋势,请使用 Service Quotas 控制台。您也可以创建 Amazon CloudWatch 告警,当您的请求速率达到配额值的特定百分比时向您发出提示。有关详细信息,请参阅 AWS 安全博客使用 Service Quotas 和 Amazon CloudWatch 管理您的 AWS KMS API 请求速度

所有 AWS KMS 配额均可调整,但密钥策略文档大小资源配额和自定义密钥存储中的 KMS 密钥请求配额除外。要请求提高配额,请使用 Service Quotas 控制台RequestServiceQuotaIncrease 操作。有关说明,请参阅请求增加 AWS KMS 配额。有关详细信息,请参阅 Service Quotas 用户指南中的请求增加配额。如果 AWS KMS 的服务限额在 AWS 区域不可用,请访问 AWS Support中心并创建案例。