Skip to main content

More Info:

Ensure that there is a KMS Key in the App-tier in order to protect the data that is transmitted from the application stack.

Risk Level

Medium

Address

Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • Cloudanix Best Practice
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • Essential 8
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • NIS2 Directive
  • NIST SP 800-171
  • NYDFS 23 NYCRR 500
  • SWIFT Customer Security Controls Framework
  • Sarbanes-Oxley IT General Controls
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

To remediate the misconfiguration “KMS Key Should Have Unique Key In An App-Tier” for GCP using GCP console, follow the below steps:
  1. Login to your GCP console.
  2. Go to the Cloud KMS page.
  3. Click on the Key Rings in the left-hand menu.
  4. Select the key ring in which the misconfigured key is present.
  5. Select the key that has the misconfiguration.
  6. Click on the “Edit” button at the top of the page.
  7. In the “Key rotation” section, enable the “Automatic key rotation” option.
  8. In the “Labels” section, add a label with a unique key that identifies the key as being used in the app-tier.
  9. Click on the “Save” button to save the changes.
By following the above steps, you have now remediated the misconfiguration “KMS Key Should Have Unique Key In An App-Tier” for GCP using GCP console.

To remediate this misconfiguration in GCP using GCP CLI, you can follow the below steps:
  1. Open the Cloud Shell in the GCP console.
  2. Set the project where the KMS key exists as the default project using the following command:
  3. Get the list of all the KMS keys in the project using the following command:
  4. Identify the KMS key that is used in the app-tier and note down its name.
  5. Get the details of the KMS key using the following command:
  6. Check if the key is unique by verifying that it is not used in any other app-tier in the project.
  7. If the key is not unique, create a new KMS key using the following command:
    Replace [NEW_KEY_NAME] with a unique name for the new KMS key, [LOCATION] with the location where you want to create the key, and [KEYRING_NAME] with the name of the keyring where you want to create the key.
  8. Update the app-tier to use the new KMS key.
  9. Delete the old KMS key using the following command:
    Replace [KEY_NAME] with the name of the old KMS key that you want to delete.
  10. Verify that the misconfiguration has been remediated by checking that the KMS key used in the app-tier is unique and not used in any other app-tier in the project.
To remediate the misconfiguration “KMS Key Should Have Unique Key In An App-Tier” for GCP using Python, you can follow these steps:
  1. Identify the KMS key that is being used by the App-Tier in GCP.
  2. Check if the KMS key is unique and not being used by any other application or service in GCP.
  3. If the KMS key is not unique, create a new KMS key for the App-Tier.
  4. Update the App-Tier to use the new KMS key.
Here’s the Python code to remediate the misconfiguration:
Note: Replace <PROJECT_ID>, <LOCATION>, <KEYRING_NAME>, <KEY_NAME> with the appropriate values for your GCP project and KMS key.
This adds a dedicated KMS CryptoKey for the application tier, identified by the specified label key/value. No existing resources are forced to be replaced unless you attach this new key to other resources. After updating Terraform, terraform plan should show one new google_kms_key_ring (if it didn’t exist) and one new google_kms_crypto_key to be created, with the app-tier label set.