Skip to main content

More Info:

Ensure that your AWS Elastic MapReduce (EMR) clusters are encrypted in order to meet security and compliance requirements. Data encryption helps prevent unauthorized users from reading sensitive data available on your EMR clusters and their associated data storage systems. This includes data saved to persistent media, known as data at-rest, and data that can be intercepted as it travels through the network, known as data in-transit.

Risk Level

High

Address

Cost Optimisation, Security

Compliance Standards

  • APRA CPS 234 (Australia)
  • AWS Well Architected Framework
  • BSI C5 (Germany)
  • Brazil LGPD
  • CCPA / CPRA (California)
  • CIS Critical Security Controls v8
  • CMMC 2.0
  • CSA Cloud Controls Matrix v4
  • DPDPA
  • Digital Operational Resilience Act (EU)
  • HIPAA
  • ISO 27001
  • 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
  • Securities and Exchange Board of India (SEBI) - Cloud Security Adoption Framework
  • UK NCSC Cyber Assessment Framework

Triage and Remediation

Remediation

Using Console

To remediate the misconfiguration of lack of in-transit and at-rest encryption for AWS Redshift, follow these steps using the AWS Management Console:
  1. In-Transit Encryption:
    • Go to the AWS Management Console and navigate to the Amazon Redshift console.
    • Select the Redshift cluster for which you want to enable in-transit encryption.
    • Click on the “Properties” tab in the cluster details.
    • Under the “Network and security” section, click on the “Modify” button.
    • Scroll down to the “Security” section and enable the “Require SSL” option.
    • Click on the “Modify Cluster” button to apply the changes.
  2. At-Rest Encryption:
    • Go to the AWS Management Console and navigate to the Amazon Redshift console.
    • Select the Redshift cluster for which you want to enable at-rest encryption.
    • Click on the “Properties” tab in the cluster details.
    • Under the “Cluster permissions and encryption” section, click on the “Modify” button.
    • Scroll down to the “Data encryption” section and select the option to enable encryption.
    • Choose the KMS key that you want to use for encryption or create a new one.
    • Click on the “Modify Cluster” button to apply the changes.
  3. Verify Encryption:
    • After making the above changes, it is essential to verify that both in-transit and at-rest encryption are enabled.
    • For in-transit encryption, you can connect to the Redshift cluster using SSL by specifying the SSL option in the connection string.
    • For at-rest encryption, you can check the cluster details in the AWS Management Console to ensure that encryption is enabled and the correct KMS key is being used.
By following these steps, you can successfully remediate the misconfiguration of lack of in-transit and at-rest encryption for AWS Redshift using the AWS Management Console.

To remediate the misconfiguration of EMR in-transit and at-rest encryption for AWS Redshift using AWS CLI, follow these steps:
  1. Enable in-transit encryption for Redshift clusters:
  1. Enable at-rest encryption for Redshift clusters:
  1. Verify the encryption status of the Redshift cluster to ensure that both in-transit and at-rest encryption are enabled:
  1. Monitor the cluster status to confirm that the encryption changes have been applied successfully:
By following these steps, you can remediate the misconfiguration of EMR in-transit and at-rest encryption for AWS Redshift using AWS CLI.
To remediate the misconfiguration of lacking in-transit and at-rest encryption for AWS Redshift using Python, you can follow these steps:
  1. In-Transit Encryption:
    • For in-transit encryption, you need to ensure that Redshift clusters use SSL to encrypt data transmitted between the client application and the cluster.
    • You can enable SSL by setting the require_ssl parameter to true in the Redshift cluster’s parameter group.
    • Below is an example Python script using the Boto3 library to enable SSL for Redshift clusters:
  1. At-Rest Encryption:
    • For at-rest encryption, you need to enable encryption of data stored in Redshift clusters using AWS Key Management Service (KMS) keys.
    • You can enable at-rest encryption by specifying the KMS key when creating a new Redshift cluster or modifying an existing cluster.
    • Below is an example Python script using Boto3 to enable at-rest encryption for a Redshift cluster:
By following these steps and running the Python scripts provided, you can remediate the misconfiguration of lacking in-transit and at-rest encryption for AWS Redshift.
Changing encrypted from false to true or changing kms_key_id forces replacement of aws_redshift_cluster.this, which is destructive and will drop data unless you restore from a snapshot.terraform plan should show creation of aws_kms_key.redshift_encryption and aws_redshift_parameter_group.cluster_pg; for an existing unencrypted cluster it will show replacement of aws_redshift_cluster.this with encrypted = true and kms_key_id set, plus the new parameter group attached.

Additional Reading: