Skip to main content

Triage and Remediation

Remediation

Using Console

To remediate the misconfiguration “Bigtable Cluster Should Be Encrypted With Customer Managed Keys” for GCP using GCP Console, please follow the below steps:
  1. Log in to your GCP Console.
  2. Go to the Bigtable instances page by clicking on “Navigation Menu > Bigtable” or by searching for “Bigtable” in the search bar.
  3. Select the Bigtable instance that you want to remediate.
  4. Click on the “Encryption” tab.
  5. Under the “Encryption at rest” section, select “Customer-managed key”.
  6. Click on “Create a key”.
  7. Choose the location for the key.
  8. Choose the key ring for the key.
  9. Enter a name for the key.
  10. Click on “Create”.
  11. Select the newly created key from the dropdown menu.
  12. Click on “Save” to save the changes.
After following these steps, your Bigtable cluster will be encrypted with customer-managed keys and the misconfiguration will be remediated.

To remediate the misconfiguration in GCP, follow these steps:
  1. Open the Google Cloud Console and select the project where the Bigtable cluster is located.
  2. Open the Cloud Shell by clicking on the icon in the top right corner of the console.
  3. In the Cloud Shell, run the following command to enable the Cloud Key Management Service (KMS) API:
  4. Create a new keyring in the Cloud KMS:
    Replace <keyring-name> with a name for the keyring and <location> with the location where the keyring will be stored (for example, us-central1).
  5. Create a new key in the keyring:
    Replace <key-name> with a name for the key.
  6. Get the resource ID of the key:
  7. Update the Bigtable cluster to use the customer-managed encryption key:
    Replace <cluster-id> with the ID of the Bigtable cluster and <key-resource-id> with the resource ID of the key obtained in step 6.
  8. Verify that the Bigtable cluster is now using the customer-managed encryption key:
    This command should return the resource ID of the key.
That’s it! Your Bigtable cluster is now encrypted with a customer-managed key.
To remediate the misconfiguration “Bigtable Cluster Should Be Encrypted With Customer Managed Keys” for GCP using Python, you can follow the below steps:
  1. Enable the Cloud Key Management Service (KMS) API for your project.
  2. Create a new key ring and a new key in the Cloud KMS.
  3. Grant the necessary permissions to the Cloud KMS key.
  4. Create a new instance of the Bigtable client library.
  5. Retrieve the Bigtable cluster instance by its ID.
  6. Create a new instance of the google.cloud.bigtable_admin_v2.types.EncryptionInfo class.
  7. Set the encryption_type property of the EncryptionInfo instance to google.cloud.bigtable_admin_v2.enums.EncryptionInfo.EncryptionType.CUSTOMER_MANAGED_ENCRYPTION.
  8. Set the kms_key_name property of the EncryptionInfo instance to the name of the Cloud KMS key.
  9. Update the Bigtable cluster instance with the new encryption configuration by calling the update_cluster method of the Bigtable client library.
Here’s a sample Python code to remediate the misconfiguration “Bigtable Cluster Should Be Encrypted With Customer Managed Keys”:
Note: Make sure to replace the placeholders your-project-id, your-instance-id, your-cluster-id, your-key-ring, and your-key with the actual values specific to your GCP project and Bigtable instance.
Using kms_key_name on the Bigtable cluster enforces customer-managed encryption as required.
Changing or adding CMEK to an existing Bigtable cluster forces recreation of that cluster (and typically the instance) – plan for downtime and data migration; this is irreversible for the existing encrypted data.
Verification: terraform plan should show the Bigtable cluster being created (or replaced) with kms_key_name = "projects/YOUR_PROJECT_ID/locations/…/keyRings/…/cryptoKeys/…", and the KMS resources and IAM binding being added with no further changes.