Check provider logo

Cloud KMS key has no public IAM access

kms_key_not_publicly_accessible

Severityhigh
Servicekms
by Prowler

Cloud KMS crypto keys are evaluated for public principals in their IAM bindings, specifically allUsers 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
Run this check with Prowler CLI

prowler gcp --checks kms_key_not_publicly_accessible

Recommendation

Remove allUsers 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
Other
  1. In Google Cloud Console, go to Security > Key Management > Key rings
  2. Open the key ring, then select the affected key
  3. Click the Permissions tab
  4. Remove principals "allUsers" and "allAuthenticatedUsers" from all roles
  5. Click Save

Source Code

Resource Type

cloudkms.googleapis.com/CryptoKey

References