Google Cloud enforces quotas on resource usage. For Cloud Key Management Service (Cloud KMS), quotas are enforced on management and usage of resources such as keys and key versions, and locations. There are no quotas on the number of key rings, keys, key versions, or other Cloud KMS resources that you can have; only on their usage.
Effective February 16, 2026, Cloud KMS is changing the way quotas are tracked and enforced. This document provides information about how the quotas work before and after the change and helps you identify any steps you may need to take to prepare for the change.
Timeline
The following table provides an overview of the expected timeline for the changes to Cloud KMS quotas.
- Cloud KMS starts using the new metrics. The old metrics are still available for monitoring purposes, but are no longer used for quota enforcement.
- You can opt in to using the quota adjuster system to automatically adjust your Cloud KMS based on your usage.
Summary of changes
The revised quota system is designed to simplify quota management for Cloud KMS users. The following table summarizes the key changes:
Soft enforcement: When a quota limit is exceeded, read requests and most write requests and cryptographic operation requests are allowed if the system can serve the request. However, the following quota limits are hard-enforced:
- Create and import requests for hardware (Cloud HSM) keys
- All requests for external (Cloud EKM) keys
generateRandomBytes
requests.CryptoKey
and CryptoKeyVersion
resources, and others are applied to the project making the
request.CryptoKey
and CryptoKeyVersion
resources.Cloud KMS quotas after February 16, 2026
The following table lists the metrics and quotas for Cloud KMS.
Default
cloudkms.googleapis.com/read_usage
600 TPM
- Software-backed keys: Soft
- Hardware-backed keys: Soft
- External keys: Hard
cryptoKeys : get , getIamPolicy , list , testIamPermissions
cryptoKeyVersions : get , list
ekmConnections : get , getIamPolicy , list , testIamPermissions , verifyConnectivity
importJobs : get , getIamPolicy , list , testIamPermissions
keyRings : get , getIamPolicy , list , testIamPermissions
cloudkms.googleapis.com/write_usage
100 TPM
- Software-backed keys: Soft
- Hardware-backed keys: Soft
- External keys: Hard
cryptoKeys : create , patch , setIamPolicy , updatePrimaryVersion
cryptoKeyVersions : create , destroy , import , patch , restore
ekmConnections : create , patch , setIamPolicy
cloudkms.googleapis.com/software_usage
6,000,000 TPM
cloudkms.googleapis.com/hsm_usage
3,000,000 TPM
cloudkms.googleapis.com/external_usage
10,000 TPS
Tokens per operation
The following table lists the number of quota tokens that are consumed by each operation for each Cloud KMS resource, key size, and operation. You can use this table to estimate how many tokens of quota a certain application can consume. Operations that are more processing intensive use more tokens of quota.
HSM usage: 1,200
HSM usage: 50,000
- Symmetric encryption or decryption
- MAC sign or verify
-
getPublicKey
generateRandomBytes
- Asymmetric sign with 2048-bit RSA keys
- Asymmetric decrypt with 2048-bit keys
- Asymmetric sign with 3072-bit RSA keys
- Asymmetric decrypt with 3072-bit keys
- Asymmetric sign with
EC_SIGN_P224_SHA256keys - Asymmetric sign with
EC_SIGN_P256_SHA256keys - Asymmetric sign with
EC_SIGN_SECP256K1_SHA256keys
- Asymmetric sign with
EC_SIGN_P384_SHA384keys - Asymmetric sign with
EC_SIGN_P521_SHA512keys
- Asymmetric decrypt with 4096-bit keys
- Asymmetric sign with 4096-bit RSA keys
Suggested actions to prepare for quota changes
| Use case | Suggested preparation |
|---|---|
| Ensure adequate quotas for existing projects | For existing projects, quota limits for the new metrics will be calculated automatically based on the project's actual usage. No action is required for existing projects. |
| Ensure adequate quotas for new projects | If you are planning to create a new project and expect high quota usage, opt in to automated quota adjustment using the quota adjuster service . Allow 1-2 weeks of gradual traffic increase to allow the systems to adjust to your usage, or proactively request the quota limits that you think you will need. |
| Update monitoring to use new quotas | Monitoring using existing quota metrics is available through August 31, 2026. We recommend setting up monitoring using the new metrics after they are available on February 16, 2026 but before August 31, 2026. |
| Opt in to quota adjuster | We recommend that you opt in to using the quota adjuster system to automatically adjust your Cloud KMS quotas based on your usage. Each project that contains Cloud KMS resources must be opted-in to quota adjuster separately. |
Cloud KMS quotas before February 16, 2026
Some quotas on these operations apply to the calling project , the Google Cloud project that makes calls to the Cloud KMS service. Other quotas apply to the hosting project , the Google Cloud project that contains the keys used for the operation.
Calling project quotas don't include usage generated by Google Cloud services using Cloud KMS keys for customer-managed encryption key (CMEK) integration . For example, encryption and decryption requests coming directly from BigQuery, Bigtable, or Spanner don't contribute to Cryptographic requests quotas.
The Google Cloud console lists the limit for each quota in queries per minute
(QPM), but hosting project quotas are enforced by the second. Quotas
enforced in queries per second (QPS) deny requests that exceed the QPS limit,
even if your per-minute usage is less than the listed QPM limit. If you exceed a
QPS limit, you receive a RESOURCE_EXHAUSTED
error
.
Quotas on the usage of Cloud KMS resources
The following table lists each quota applied to Cloud KMS resources. The table gives the name and limit of each quota, which project the quota applies to, and the operations that count against the quota. You can enter a keyword in the field to filter the table. For example, you can enter calling to see only the quotas applied to the calling project or encrypt to see only the quotas related to encryption operations:
Quota examples
The following sections include examples of each quota using the following example projects:
-
KEY_PROJECT- A Google Cloud project that contains Cloud KMS keys, including Multi-tenant Cloud HSM and Cloud EKM keys. -
SPANNER_PROJECT- A Google Cloud project that contains a Spanner instance which uses the customer-managed encryption keys (CMEKs) that reside inKEY_PROJECT. -
SERVICE_PROJECT- A Google Cloud project that contains a service account that you use to manage Cloud KMS resources that reside inKEY_PROJECT.
Read requests
The Read requestsquota limits read requests from the
Google Cloud project calling the Cloud KMS API. For
example, viewing a list of keys in KEY_PROJECT
from KEY_PROJECT
using
Google Cloud CLI counts against the KEY_PROJECT
Read requestsquota. If you use a service account in SERVICE_PROJECT
to view your list of keys, the read request counts
against the SERVICE_PROJECT
Read requestsquota.
Using the Google Cloud console to view Cloud KMS resources doesn't contribute to the Read requestsquota.
Write requests
The Write requestsquota limits write requests from the
Google Cloud project calling the Cloud KMS API. For
example, creating keys in KEY_PROJECT
using gcloud CLI counts
against the KEY_PROJECT
Write requestsquota. If you use a
service account in SERVICE_PROJECT
to create keys, the write
request counts against the SERVICE_PROJECT
Write requestsquota.
Using the Google Cloud console to create or manage Cloud KMS resources doesn't contribute to the Read requestsquota.
Cryptographic requests
The Cryptographic requestsquota limits cryptographic operations from the
Google Cloud project calling the Cloud KMS API. For
example, encrypting data using API calls from a service account resource running
in SERVICE_PROJECT
using keys from KEY_PROJECT
counts against the SERVICE_PROJECT
Cryptographic requestsquota.
Encryption and decryption of data in a Spanner resource in SPANNER_PROJECT
using CMEK integration doesn't count toward the Cryptographic requestsquota of SPANNER_PROJECT
.
HSM symmetric cryptographic requests per region
The HSM symmetric cryptographic requests per
regionquota limits cryptographic operations using
symmetric Cloud HSM
keys on the Google Cloud
project that contains those keys. For example, encrypting data in a
Spanner resource using symmetric HSM keys counts against the KEY_PROJECT
HSM symmetric cryptographic requests per
regionquota.
HSM asymmetric cryptographic requests per region
The HSM asymmetric cryptographic requests per
regionquota limits cryptographic operations using
asymmetric Cloud HSM
keys on the Google Cloud
project that contains those keys. For example, encrypting data in a
Spanner resource using asymmetric HSM keys counts against the KEY_PROJECT
HSM asymmetric cryptographic requests per
regionquota.
HSM generate random requests per region
The HSM generate random requests per
regionquota limits generate random bytes operations using Cloud HSM
in the Google Cloud project specified in
the request message. For example, requests from any source to generate random
bytes in KEY_PROJECT
counts against the KEY_PROJECT
HSM generate random requests per
regionquota.
External cryptographic requests per region
The External cryptographic requests per
regionquota limits cryptographic operations using external
( Cloud EKM
) keys on the Google Cloud project that
contains those keys. For example, encrypting data in a Spanner resource
using EKM keys counts against the KEY_PROJECT
External cryptographic requests per
regionquota.
Quota error information
If you make a request after your quota is reached, your request results in a RESOURCE_EXHAUSTED
error. The HTTP status code is 429
. For information on
how client libraries surface the RESOURCE_EXHAUSTED
error, see Client library
mapping
.
If you receive the RESOURCE_EXHAUSTED
error, you might be sending too many cryptographic operation requests
per second. You can receive the RESOURCE_EXHAUSTED
error even if the Google Cloud console shows that you are
within the queries per minute limit. This issue can happen because
Cloud KMS hosting project quotas are displayed per minute, but are
enforced on a per second scale. To learn more about monitoring metrics, see Set up quota alerts and monitoring
.
For details about troubleshooting Cloud KMS quota issues, see Troubleshoot quota issues .
What's next
- Learn about using Cloud Monitoring with Cloud KMS .
- Learn how to monitor and adjust Cloud KMS quotas .

