Ensure that separation of duties is enforced for all Cloud Key Management Service (KMS) related roles. The principle of separation of duties (also known as segregation of duties) has as its primary objective the prevention of fraud and human error. This objective is achieved by dismantling the tasks and the associated privileges for a specific business process among multiple users/identities. Google Cloud provides predefined roles that can be used to implement the principle of separation of duties, where it is needed. The predefined Cloud KMS Admin role is meant for users to manage KMS keys but not to use them. The Cloud KMS CryptoKey Encrypter/Decrypter roles are meant for services who can use keys to encrypt and decrypt data, but not to manage them. To adhere to cloud security best practices, your IAM users should not have the Admin role and any of the CryptoKey Encrypter/Decrypter roles assigned at the same time.
This rule resolution is part of the Conformity Security & Compliance tool for GCP.
The principle of separation of duties can be enforced in order to eliminate the need for the IAM user/identity that has all the permissions needed to perform unwanted actions, such as using a cryptographic key to access and decrypt data which the user should not normally have access to.
Audit
To determine if there are any IAM users that have KMS-related roles assigned at the same time, perform the following actions:
Remediation / Resolution
To implement the principle of separation of duties and secure the access to your GCP projects, revoke either Cloud KMS Admin role or one of the encrypter/decrypter roles (i.e. Cloud KMS CryptoKey Encrypter/Decrypter, Cloud KMS CryptoKey Encrypter or Cloud KMS CryptoKey Decrypter) from the IAM user that is associated with both these roles, and attach one of the roles to another identity according to your business requirements.
Step A: To revoke the Cloud KMS Admin role from the required IAM member (principal), perform the following actions:Step B: Assign the removed service role, i.e. Cloud KMS Admin, to another IAM member (principal) created for your GCP project by performing the following actions:
References
- Google Cloud Platform (GCP) Documentation
- Identity and Access Management (IAM)
- Understanding roles
- Separation of duties
- Permissions and roles
- CIS Security Documentation
- Securing Google Cloud Computing Platform
- GCP Command Line Interface (CLI) Documentation
- gcloud projects list
- gcloud projects get-iam-policy
- gcloud projects set-iam-policy