Check ID:
Provider: GCP
Service:
Severity: HIGH
Categories:
Resource type:
kms_key_not_publicly_accessibleProvider: GCP
Service:
kmsSeverity: HIGH
Categories:
internet-exposed, identity-accessResource type:
cloudkms.googleapis.com/CryptoKeyWhat this check verifies
Cloud KMS crypto keys are evaluated for public principals in their IAM bindings, specificallyallUsers and allAuthenticatedUsers.
The finding reflects whether these memberships are present on a key.
Risk
Granting public principals access lets anyone on the Internet or any Google account use permissions on the key.- Confidentiality loss via unauthorized
decrypt - Integrity compromise via illicit
sign - Availability impact from disable, rotation, or destruction
Recommendation
RemoveallUsers and allAuthenticatedUsers from key IAM. Grant access only to specific groups or service accounts with least privilege at the key scope. Enforce separation of duties between admins and users, and regularly review inherited bindings and audit logs.
Remediation
- Terraform
- Dashboard steps
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/gcp/CloudKMS/publicly-accessible-kms-cryptokeys.html
- https://cloud.google.com/kms/docs/iam
Where this check fires
This check runs on every scheduled scan against your GCP account. Findings appear at Cloud Security → Findings filterable byCheck ID = kms_key_not_publicly_accessible. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to GCP checks