配额

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 资源的各种配额。该表列出了每项配额的名称和限制、配额适用的项目,以及计入配额的操作。您可以在字段中输入关键字以过滤表。例如,您可以输入 calling 以仅查看应用于调用方项目的配额,或者输入 encrypt 以仅查看与加密操作相关的配额:

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

cryptoKeysgetgetIamPolicylisttestIamPermissions

cryptoKeyVersionsgetlist

ekmConnectionsgetgetIamPolicylisttestIamPermissionsverifyConnectivity

importJobsgetgetIamPolicylisttestIamPermissions

keyRingsgetgetIamPolicylisttestIamPermissions

locationsgetlist

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

写入请求
cloudkms.googleapis.com​/write_requests
调用项目 每分心跳数 60

cryptoKeyscreatepatchsetIamPolicyupdatePrimaryVersion

cryptoKeyVersionscreatedestroyimportpatchrestore

ekmConnectionscreatepatchsetIamPolicy

importJobscreatesetIamPolicy

keyRingscreatesetIamPolicy

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

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

cryptoKeys加密decrypt

cryptoKeyVersionsasymmetricDecryptasymmetricSigngetPublicKeymacSignmacVerifyrawEncryptrawDecrypt

locationsgenerateRandomBytes

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

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

cryptoKeys加密decrypt

cryptoKeyVersionsasymmetricDecryptasymmetricSigngetPublicKeymacSignmacVerifyrawEncryptrawDecrypt

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

cryptoKeys加密decrypt

cryptoKeyVersionsasymmetricDecrypt

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

locationsgenerateRandomBytes

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

cryptoKeys加密decrypt

cryptoKeyVersionsasymmetricDecrypt

配额示例

以下部分通过以下示例项目介绍了每项配额的示例:

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

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

  • 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 资源不会计入读取请求配额。

加密请求数

加密请求配额会限制 Google Cloud 项目中调用 Cloud KMS API 的加密操作。例如,如果使用 API 调用(来自在 SERVICE_PROJECT 中运行的服务帐号资源使用 KEY_PROJECT 中的密钥)对数据进行加密,则会计入 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 配额问题,请参阅排查配额问题

后续步骤