Skip to main content

More Info:

This rule checks if an Amazon MSK cluster enforces encryption in transit using HTTPS (TLS) with the broker nodes of the cluster. It marks the rule as NON_COMPLIANT if plain text communication is enabled for in-cluster broker node connections.

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)
  • ISO/IEC 27017
  • ISO/IEC 27018
  • ISO/IEC 27701
  • KSA PDPL
  • MAS Technology Risk Management (Singapore)
  • MITRE ATT&CK (Cloud)
  • 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 of MSK Cluster Encryption In Transit not being enabled for AWS RDS using the AWS console, follow these steps:
  1. Sign in to the AWS Management Console:
  2. Navigate to the Amazon RDS Console:
    • Click on the “Services” dropdown menu at the top left corner.
    • Under the “Database” section, click on “RDS”.
  3. Select the RDS Instance:
    • In the Amazon RDS dashboard, select the RDS instance that you want to enable encryption in transit for.
  4. Modify the RDS Instance:
    • Click on the checkbox next to the RDS instance you selected.
    • Click on the “Modify” button at the top.
  5. Enable Encryption in Transit:
    • Scroll down to the “Network & Security” section.
    • Under the “Additional configuration” heading, look for the “Encryption” option.
    • Select the option for “Encryption in transit”.
    • Choose the appropriate encryption type (SSL/TLS) from the dropdown menu.
  6. Save the Changes:
    • Scroll to the bottom of the page and click on the “Continue” button.
    • Review the changes you are about to make.
    • Click on the “Modify DB Instance” button to apply the changes.
  7. Monitor the Modification Progress:
    • Wait for the modification process to complete. This may take a few minutes.
    • You can monitor the progress in the RDS dashboard or through the “Modify” option.
  8. Verify Encryption in Transit:
    • Once the modification is complete, verify that encryption in transit is enabled for the RDS instance.
    • You can check the encryption status in the RDS console or by connecting to the RDS instance and checking the encryption settings.
By following these steps, you can successfully remediate the misconfiguration of MSK Cluster Encryption In Transit not being enabled for AWS RDS using the AWS console.

To remediate the misconfiguration of MSK Cluster Encryption In Transit not being enabled for AWS RDS using AWS CLI, you can follow these steps:
  1. Open the AWS CLI and run the following command to enable encryption in transit for the MSK cluster:
Make sure to replace your-db-cluster-name with the actual name of your RDS DB cluster.
  1. Wait for the modification to be completed. You can check the status of the modification by running the following command:
Replace your-db-cluster-name with the actual name of your RDS DB cluster.
  1. Once the modification is completed, verify that encryption in transit is enabled for the MSK cluster by running the following command:
Replace your-db-cluster-name with the actual name of your RDS DB cluster.By following these steps, you can successfully remediate the misconfiguration of MSK Cluster Encryption In Transit not being enabled for AWS RDS using AWS CLI.
To remediate the misconfiguration of MSK Cluster Encryption In Transit not being enabled for AWS RDS using Python, you can follow these steps:
  1. Import the necessary libraries:
  1. Initialize the AWS RDS client:
  1. Get a list of all RDS instances:
  1. Iterate through each RDS instance and enable encryption in transit for MSK Cluster:
  1. Verify that encryption in transit for MSK Cluster is enabled by checking the DB instance details:
By following these steps, you can remediate the misconfiguration of MSK Cluster Encryption In Transit not being enabled for AWS RDS using Python.
Substitute:
  • THIS_MSK_CLUSTER with your Terraform resource name.
  • REPLACE_WITH_CLUSTER_NAME with the MSK cluster name.
  • REPLACE_WITH_KAFKA_VERSION with a valid Kafka version (e.g., "3.6.0").
  • REPLACE_WITH_BROKER_NODE_COUNT with the desired integer node count.
  • REPLACE_WITH_INSTANCE_TYPE with a supported broker instance type.
  • REPLACE_WITH_SUBNET_IDS with a list of subnet IDs.
  • REPLACE_WITH_SG_IDS with a list of security group IDs.
  • Optionally REPLACE_WITH_KMS_KEY_ARN with a KMS key ARN if using encryption at rest.
Changing encryption_info.encryption_in_transit.in_cluster from false to true generally forces replacement of the MSK cluster, which can cause downtime; plan carefully before applying.This AWS Config rule is specific to Amazon MSK and does not apply to RDS; there is no equivalent “in-cluster broker TLS” setting on RDS instances.For verification, terraform plan should show:
  • encryption_info.0.encryption_in_transit.0.in_cluster changing to true on the MSK cluster.
  • A resource replacement if the cluster previously had in_cluster = false or omitted.

Additional Reading: