More Info:
Microsoft SQL Server and PostgreSQL instances provisioned with Amazon RDS should have Transport Encryption feature enabled in order to meet security and compliance requirementsRisk Level
MediumAddress
SecurityCompliance 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
- DPDPA
- Digital Operational Resilience Act (EU)
- FedRAMP
- HITRUST CSF
- ISO/IEC 27017
- ISO/IEC 27018
- ISO/IEC 27701
- KSA PDPL
- MAS Technology Risk Management (Singapore)
- MITRE ATT&CK (Cloud)
- NIS2 Directive
- NIST CSF
- NIST SP 800-171
- NYDFS 23 NYCRR 500
- PCI
- SOC2
- 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
Remediation
Using Console
Using Console
To remediate the misconfiguration of enabling transport encryption for AWS RDS using the AWS console, follow these steps:
- Login to AWS Console: Go to the AWS Management Console and log in using your credentials.
- Navigate to RDS Service: Click on the “Services” dropdown menu at the top of the page, search for “RDS” and click on it to open the RDS dashboard.
- Select the RDS Instance: From the list of RDS instances, select the instance for which you want to enable transport encryption by clicking on its name.
- Modify the RDS Instance: In the RDS instance dashboard, click on the “Modify” button at the top right corner.
- Enable Encryption: Scroll down to the “Network & Security” section, and look for the “Encryption” option.
- Enable Encryption: Check the box next to “Enable Encryption” to enable transport encryption for the RDS instance.
- Choose Encryption Type: Select the desired encryption type (e.g., AWS Key Management Service (KMS) key) from the dropdown menu.
- Save Changes: Scroll down to the bottom of the page and click on the “Continue” button.
- Apply Changes: Review the changes you are about to make, and click on the “Modify DB Instance” button to apply the changes.
- Monitor Encryption Status: Once the modification is complete, monitor the RDS instance to ensure that transport encryption is successfully enabled. You can check the status in the RDS dashboard.
Using CLI
Using CLI
To remediate the misconfiguration of enabling Transport Encryption for an AWS RDS instance using the AWS CLI, follow these steps:By following these steps, you can successfully remediate the misconfiguration of enabling Transport Encryption for an AWS RDS instance using the AWS CLI.
- Get the RDS instance identifier: First, identify the RDS instance for which you want to enable Transport Encryption. You can get the instance identifier by running the following AWS CLI command:
- Enable Transport Encryption: Once you have the RDS instance identifier, you can enable Transport Encryption by modifying the instance with the following AWS CLI command. Replace
<instance_identifier>with the actual identifier of your RDS instance:
- Verify Encryption Status: You can verify that Transport Encryption has been enabled for the RDS instance by describing the instance and checking the
StorageEncryptedattribute. Run the following AWS CLI command:
- Wait for the Modification to Complete: The modification to enable Transport Encryption may take some time to complete. You can monitor the status of the modification by describing the RDS instance and checking the
DBInstanceStatusattribute. Run the following AWS CLI command:
Using Python
Using Python
To remediate the misconfiguration of enabling transport encryption for AWS RDS using Python, you can follow these steps:
- Import the necessary libraries:
- Create an AWS RDS client:
- Get a list of all RDS instances:
- Iterate through each RDS instance and enable transport encryption:
- Confirm that the transport encryption is enabled by checking the DB instance details:
- Run the Python script to enable transport encryption for all RDS instances.
Using Terraform
Using Terraform
- This matches the CLI remediation by setting
rds.force_sslto1in the cluster parameter group withapply_method = "pending-reboot", which forces all connections to use SSL/TLS. - This is only valid for PostgreSQL-based RDS/Aurora engines; there is no equivalent server-side enforcement parameter for SQL Server on RDS.
- If you are currently using an AWS default cluster parameter group, you must:
- Create this custom
aws_rds_cluster_parameter_group. - Point your
aws_rds_cluster.db_cluster_parameter_group_nameat it (as above).
- Create this custom
- The parameter change will take effect only after you reboot all DB instances in the cluster, causing a service interruption. Terraform itself will not replace the cluster for this change, but you must plan for the outage when you perform the reboot in AWS.
- Run
terraform plan. You should see either:- A new
aws_rds_cluster_parameter_groupwithparameter rds.force_sslset to1and the cluster updated to use it, or - A change on the existing parameter group where
rds.force_sslis added or updated from another value to"1".
- A new

