Profile Applicability:
- Level 1
Description:
Encryption in transit ensures that data remains confidential and protected as it travels from one location to another within the AWS environment. By enabling SSL/TLS, you prevent unauthorized interception and manipulation of data during transmission.
Rationale:
Data transmitted without encryption can be intercepted and read by malicious actors. Enabling SSL/TLS ensures data confidentiality and integrity in transit between clients and the database service.
Impact:
If the data is intercepted during transmission, it will be unreadable without the decryption key. However, misconfigurations could lead to failed connections from clients not configured to use SSL/TLS.
Default Value:
By default, some AWS services (like DynamoDB) enable encryption in transit. However, for services like RDS or Aurora, the client must be explicitly configured to use SSL/TLS.
Pre-requisites:
Access to the AWS Console or CLI
Administrative privileges for modifying database configurations
SSL/TLS certificates (if not using default AWS certificates)
Remediation
Test Plan
Using AWS Console:
Sign in to the AWS Management Console
Navigate to the database service console (e.g., RDS, DynamoDB, DocumentDB, Neptune)
Select your database instance or cluster
Check under the Encryption in Transit or Connectivity section
Verify that SSL/TLS is enabled
Using AWS CLI:
Run the following command for RDS:
aws rds describe-db-instances --query "DBInstances[*].{DBInstanceIdentifier:DBInstanceIdentifier,SSLSupport:EnabledCloudwatchLogsExports}"
For Neptune:
aws neptune describe-db-clusters
Check for SSL/TLS configuration fields in the output
Implementation Plan
Using AWS Console:
Open the relevant database console (e.g., RDS, Neptune)
Select the DB instance or cluster
Click Modify
Under Connectivity or Encryption in Transit, enable SSL/TLS
Choose or upload the SSL certificate if needed
Click Continue or Apply Changes
Using AWS CLI:
Modify RDS instance (example):
aws rds modify-db-instance --db-instance-identifier <instance-id> --ca-certificate-identifier rds-ca-2019 --apply-immediately
Modify Neptune cluster:
aws neptune modify-db-cluster --db-cluster-identifier <cluster-id> --enable-iam-database-authentication --apply-immediately
Backout Plan
Using AWS Console:
Go to the DB instance
Click Modify
Uncheck the Enable SSL/TLS option (if allowed)
Save changes
Using AWS CLI:
For RDS:
aws rds modify-db-instance --db-instance-identifier <instance-id> --no-enable-iam-database-authentication --apply-immediately
For Neptune:
aws neptune modify-db-cluster --db-cluster-identifier <cluster-id> --disable-iam-database-authentication --apply-immediately
References:
CIS Controls v8 – Control 3.10: Encrypt Sensitive Data in Transit
CIS Benchmark Document