配额

Google Cloud 对资源用量实施配额限制。Cloud KMS 对密钥、密钥环、密钥版本和位置等资源的用量设有配额限制。如需详细了解如何管理或增加配额,请参阅监控和调整 Cloud KMS 配额

查看 Cloud KMS 配额

KeyRingCryptoKeyCryptoKeyVersion 资源的数量没有配额限制,但操作次数有配额限制。

这些操作的一些配额适用于调用方项目,即调用 Cloud KMS 服务的 Google Cloud 项目。其他配额适用于托管项目,即包含用于操作的密钥的 Google Cloud 项目。

调用项目配额不包括 Google Cloud 服务使用 Cloud KMS 密钥进行客户管理的加密密钥 (CMEK) 集成而产生的使用量。例如,直接来自 BigQuery、Bigtable 或 Spanner 的加密和解密请求不会计入加密请求配额。

Google Cloud 控制台会以每分钟查询次数 (QPM) 列出每个配额的限制,但托管项目配额是按秒强制执行的。系统会根据每秒查询次数 (QPS) 强制执行配额,拒绝超出 QPS 限额的请求,即使每分钟用量低于所列 QPM 限额也是如此。如果您超出 QPS 限制,则会收到 RESOURCE_EXHAUSTED 错误

Cloud KMS 资源使用配额

下表列出了应用于 Cloud KMS 资源的每个配额。该表会显示每个配额的名称和上限、配额适用的项目,以及计入配额的操作。您可以在该字段中输入关键字以过滤表格。例如,您可以输入调用,以便仅查看应用于调用项目的配额;也可以输入加密,以便仅查看与加密操作相关的配额:

配额 项目 限制 资源和操作
读取请求
cloudkms.googleapis.com​/read_requests
调用项目 300 QPM

cryptoKeysgetgetIamPolicylisttestIamPermissions

cryptoKeyVersionsgetlist

ekmConnectionsgetgetIamPolicylisttestIamPermissionsverifyConnectivity

importJobsgetgetIamPolicylisttestIamPermissions

keyRingsgetgetIamPolicylisttestIamPermissions

locationsgetlist

豁免:Google Cloud 控制台中的操作。

写入请求次数
cloudkms.googleapis.com​/write_requests
调用项目 60 QPM

cryptoKeyscreatepatchsetIamPolicyupdatePrimaryVersion

cryptoKeyVersionscreatedestroyimportpatchrestore

ekmConnectionscreatepatchsetIamPolicy

importJobscreatesetIamPolicy

keyRingscreatesetIamPolicy

豁免:Google Cloud 控制台中的操作。

加密请求
cloudkms.googleapis.com​/crypto_requests
调用项目 60,000 QPM

cryptoKeysencryptdecrypt

cryptoKeyVersionsasymmetricDecryptasymmetricSigngetPublicKeymacSignmacVerifyrawEncryptrawDecrypt

locationsgenerateRandomBytes

豁免:来自 CMEK 集成的操作。

每个区域的 HSM 对称加密请求数
cloudkms.googleapis.com​/hsm_symmetric_requests
托管项目 500 QPS

cryptoKeysencryptdecrypt

cryptoKeyVersionsasymmetricDecryptasymmetricSigngetPublicKeymacSignmacVerifyrawEncryptrawDecrypt

每个区域的 HSM 非对称加密请求次数
cloudkms.googleapis.com​/hsm_asymmetric_requests
托管项目 50 QPS

cryptoKeysencryptdecrypt

cryptoKeyVersionsasymmetricDecryptasymmetricSigngetPublicKeymacSignmacVerify

HSM 按区域生成随机请求
cloudkms.googleapis.com​/hsm_generate_random_requests
托管项目 50 QPS

locationsgenerateRandomBytes

每个区域的外部加密请求数
cloudkms.googleapis.com​/external_kms_requests
托管项目 100 QPS

cryptoKeysencryptdecrypt

cryptoKeyVersionsasymmetricDecryptasymmetricSigngetPublicKeymacSignmacVerify

配额示例

以下部分包含使用以下示例项目的每个配额示例:

  • KEY_PROJECT - 包含 Cloud KMS 密钥(包括 Cloud HSM 和 Cloud EKM 密钥)的 Google Cloud 项目。

  • SPANNER_PROJECT - 一个 Google Cloud 项目,其中包含一个 Spanner 实例,该实例使用位于 KEY_PROJECT 中的客户管理的加密密钥 (CMEK)。

  • SERVICE_PROJECT - 一个 Google Cloud 项目,其中包含一个服务账号,您可以使用该服务账号管理位于 KEY_PROJECT 中的 Cloud KMS 资源。

读请求次数

读取请求配额用于限制调用 Cloud KMS API 的 Google Cloud 项目的读取请求。例如,使用 Google Cloud CLI 从 KEY_PROJECT 查看 KEY_PROJECT 中的键列表会计入 KEY_PROJECT 读取请求配额。如果您在 SERVICE_PROJECT 中使用服务账号查看密钥列表,则相应读取请求会计入 SERVICE_PROJECT读取请求配额。

使用 Google Cloud 控制台查看 Cloud KMS 资源不会计入读取请求配额。

写请求次数

写入请求配额用于限制调用 Cloud KMS API 的 Google Cloud 项目发出的写入请求。例如,使用 gcloud CLI 在 KEY_PROJECT 中创建密钥会计入 KEY_PROJECT 写入请求配额。如果您在 SERVICE_PROJECT 中使用服务账号创建密钥,则写入请求会计入 SERVICE_PROJECT 写入请求配额。

使用 Google Cloud 控制台创建或管理 Cloud KMS 资源不会计入读取请求配额。

加密请求数

加密请求配额用于限制调用 Cloud KMS API 的 Google Cloud 项目的加密操作。例如,使用 KEY_PROJECT 中的密钥通过在 SERVICE_PROJECT 中运行的服务账号资源进行 API 调用来加密数据,会计入 SERVICE_PROJECT 加密请求配额。

使用 CMEK 集成对 SPANNER_PROJECT 中的 Spanner 资源中的数据进行加密和解密不会计入 SPANNER_PROJECT加密请求配额。

每个区域的 HSM 对称加密请求数

每个区域的 HSM 对称加密请求 配额限制了包含这些密钥的 Google Cloud 项目使用对称 Cloud HSM 密钥进行的加密操作。例如,使用对称 HSM 密钥加密 Spanner 资源中的数据会计入 KEY_PROJECT 每个区域的 HSM 对称加密请求 配额。

每个区域的 HSM 非对称加密请求数

每个区域的 HSM 非对称加密请求数配额限制了包含这些密钥的 Google Cloud 项目使用非对称 Cloud HSM 密钥进行的加密操作。例如,使用非对称 HSM 密钥加密 Spanner 资源中的数据会计入 KEY_PROJECT 每个区域的 HSM 非对称加密请求配额。

HSM 按区域生成随机请求

每区域 HSM 生成随机请求配额限制用于在请求消息中指定的 Google Cloud 项目中使用 Cloud HSM 生成随机字节操作。例如,来自任何来源的请求在 KEY_PROJECT 中生成随机字节都会计入 KEY_PROJECT 每个区域的 HSM 生成随机请求数配额。

每个区域的外部加密请求数

“每个区域的外部加密请求数”配额限制了包含这些密钥的 Google Cloud 项目使用外部 (Cloud EKM) 密钥进行的加密操作。例如,使用 EKM 密钥加密 Spanner 资源中的数据会计入 KEY_PROJECT 每个区域的外部加密请求配额。

配额错误信息

如果您在配额已用尽的情况下发出请求,您的请求将导致一个 RESOURCE_EXHAUSTED 错误。HTTP 状态代码为 429。如需了解客户端库如何给出 RESOURCE_EXHAUSTED 错误,请参阅客户端库映射

如果您收到 RESOURCE_EXHAUSTED 错误,则可能表示每秒发送的加密操作请求过多。即使 Google Cloud 控制台显示您未超出每分钟查询数限制,您也可能会收到 RESOURCE_EXHAUSTED 错误。发生这种情况的原因是 Cloud KMS 托管项目配额按分钟显示,但按秒实施。如需详细了解监控指标,请参阅与配额指标有关的监控和提醒功能

如需详细了解如何排查 Cloud KMS 配额问题,请参阅排查配额问题

后续步骤