Ensure that IAM users with data decryption permissions should use conditions to enforce strict controls, enhancing data protection and reducing risks of unauthorized decryption. For compliance, the Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter), Cloud KMS Crypto Operator (roles/cloudkms.cryptoOperator), and Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) roles must have a condition preventing data decryption with any KMS key.
There are two main reasons to restrict data decryption using all KMS keys in your Google Cloud account:
1. Security: Granting decrypt permissions to all KMS keys gives IAM users access to decrypt any data encrypted with those keys. This is a broad permission that can be risky if compromised.
2. Granular control: Using IAM policy conditions with decrypt permissions allows you to specify exactly which data a user can decrypt. This provides more control and reduces the risk of accidental or unauthorized decryption.
Audit
To determine if your IAM users have overly permissive policies granting decryption access to all KMS keys, perform the following operations:
Remediation / Resolution
To ensure that the IAM users with data decryption permissions are using conditions to enforce strict controls, perform the following operations:
References
- Google Cloud Platform (GCP) Documentation
- Identity and Access Management (IAM)
- IAM basic and predefined roles reference
- Permissions and roles
- GCP Command Line Interface (CLI) Documentation
- gcloud projects list
- gcloud projects get-iam-policy
- gcloud projects set-iam-policy