|
1 | 1 | { |
2 | 2 | "Provider": "gcp", |
3 | 3 | "CheckID": "dataproc_encrypted_with_cmks_disabled", |
4 | | - "CheckTitle": "Ensure that Dataproc Cluster is encrypted using Customer-Managed Encryption Key", |
| 4 | + "CheckTitle": "Dataproc cluster is encrypted with a customer-managed encryption key (CMEK)", |
5 | 5 | "CheckType": [], |
6 | 6 | "ServiceName": "dataproc", |
7 | 7 | "SubServiceName": "", |
8 | 8 | "ResourceIdTemplate": "", |
9 | | - "Severity": "high", |
10 | | - "ResourceType": "Cluster", |
11 | | - "ResourceGroup": "container", |
12 | | - "Description": "When you use Dataproc, cluster and job data is stored on Persistent Disks (PDs) associated with the Compute Engine VMs in your cluster and in a Cloud Storage staging bucket. This PD and bucket data is encrypted using a Google-generated data encryption key (DEK) and key encryption key (KEK). The CMEK feature allows you to create, use, and revoke the key encryption key (KEK). Google still controls the data encryption key (DEK).", |
13 | | - "Risk": "The Dataproc cluster data is encrypted using a Google-generated Data Encryption Key (DEK) and a Key Encryption Key (KEK). If you need to control and manage your cluster data encryption yourself, you can use your own Customer-Managed Keys (CMKs). Cloud KMS Customer-Managed Keys can be implemented as an additional security layer on top of existing data encryption, and are often used in the enterprise world, where compliance and security controls are very strict.", |
| 9 | + "Severity": "medium", |
| 10 | + "ResourceType": "dataproc.googleapis.com/Cluster", |
| 11 | + "Description": "Dataproc clusters use **Customer-Managed Encryption Keys** (`CMEK`) for VM **persistent disk** encryption. The finding determines whether a customer KMS key is configured for disk data instead of the default Google-managed keys.", |
| 12 | + "Risk": "Without **CMEK** on Dataproc disks, keys remain provider-controlled, limiting **rotation**, **revocation**, and **location control**. This reduces containment if disks or snapshots are exposed and may block **data sovereignty** requirements, impacting **confidentiality** and incident response.", |
14 | 13 | "RelatedUrl": "", |
| 14 | + "AdditionalURLs": [ |
| 15 | + "https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/gcp/Dataproc/enable-encryption-with-cmks-for-dataproc-clusters.html", |
| 16 | + "https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/customer-managed-encryption" |
| 17 | + ], |
15 | 18 | "Remediation": { |
16 | 19 | "Code": { |
17 | 20 | "CLI": "", |
18 | 21 | "NativeIaC": "", |
19 | | - "Other": "https://www.trendmicro.com/cloudoneconformity/knowledge-base/gcp/Dataproc/enable-encryption-with-cmks-for-dataproc-clusters.html", |
20 | | - "Terraform": "https://docs.prowler.com/checks/gcp/google-cloud-general-policies/ensure-gcp-dataproc-cluster-is-encrypted-with-customer-supplied-encryption-keys-cseks#terraform" |
| 22 | + "Other": "1. In Google Cloud Console, go to Dataproc > Clusters\n2. Click Create cluster\n3. In Cluster configuration, open Security (or Encryption)\n4. For Disk encryption key, select Customer-managed key and choose your Cloud KMS key\n5. Click Create\n6. Migrate workloads to the new cluster and delete the old non-CMEK cluster", |
| 23 | + "Terraform": "```hcl\nresource \"google_dataproc_cluster\" \"<example_resource_name>\" {\n name = \"<example_resource_name>\"\n region = \"<example_region>\"\n\n cluster_config {\n encryption_config {\n gce_pd_kms_key_name = \"projects/<example_project_id>/locations/<example_region>/keyRings/<example_keyring_name>/cryptoKeys/<example_key_name>\" # FIX: Sets CMEK for persistent disks to pass the check\n }\n }\n}\n```" |
21 | 24 | }, |
22 | 25 | "Recommendation": { |
23 | | - "Text": "Ensure that your Google Cloud Dataproc clusters on Compute Engine are encrypted with Customer-Managed Keys (CMKs) in order to control the cluster data encryption/decryption process. You can create and manage your own Customer-Managed Keys (CMKs) with Cloud Key Management Service (Cloud KMS). Cloud KMS provides secure and efficient encryption key management, controlled key rotation, and revocation mechanisms.", |
24 | | - "Url": "https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/customer-managed-encryption" |
| 26 | + "Text": "Enable **CMEK** for Dataproc disk, job-argument, and staging-bucket encryption.\n- Grant KMS access with **least privilege** to required service accounts\n- Enforce **regular rotation** and support **revocation/disable** procedures\n- Keep keys co-located with data and monitor KMS usage\n- Consider **Cloud EKM** for external key control", |
| 27 | + "Url": "https://hub.prowler.com/check/dataproc_encrypted_with_cmks_disabled" |
25 | 28 | } |
26 | 29 | }, |
27 | 30 | "Categories": [ |
28 | | - "encryption", |
29 | | - "gen-ai" |
| 31 | + "encryption" |
30 | 32 | ], |
31 | 33 | "DependsOn": [], |
32 | 34 | "RelatedTo": [], |
|
0 commit comments