Check ID:
Provider: GCP
Service:
Severity: MEDIUM
Categories:
Resource type:
iam_role_kms_enforce_separation_of_dutiesProvider: GCP
Service:
iamSeverity: MEDIUM
Categories:
identity-access, encryptionResource type:
cloudresourcemanager.googleapis.com/ProjectWhat this check verifies
Project IAM assignments are analyzed for Cloud KMS separation of duties: principals simultaneously grantedroles/cloudkms.admin and any of roles/cloudkms.cryptoKeyEncrypterDecrypter, roles/cloudkms.cryptoKeyEncrypter, or roles/cloudkms.cryptoKeyDecrypter.
Risk
Combining key management and key usage undermines confidentiality, integrity, and availability:- Unauthorized decryption of sensitive data
- Tampering with policies or rotation to conceal access
- Disabling or destroying keys, causing outages
Recommendation
Apply least privilege and separation of duties:- Never combine
roles/cloudkms.adminwith anyroles/cloudkms.cryptoKey* - Isolate key management and usage in dedicated projects
- Require approvals, log all key access, and monitor
- Avoid broad
roles/owneron key scopes
Remediation
- CLI
- Terraform
- Dashboard steps
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/gcp/CloudIAM/enforce-separation-of-duties-for-kms-related-roles.html
- https://cloud.google.com/kms/docs/separation-of-duties
Where this check fires
This check runs on every scheduled scan against your GCP account. Findings appear at Cloud Security → Findings filterable byCheck ID = iam_role_kms_enforce_separation_of_duties. 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