DMS endpoints should use SSL
DMS replication tasks move production data, often including PII, financial records, or credentials, between databases. When SSL is disabled on an endpoint, that data traverses the network in cleartext. An attacker with access to the VPC, a misconfigured peering connection, or a compromised intermediate host can passively capture every row replicated.
Enabling SSL on DMS endpoints is a low-effort change that eliminates an entire class of sniffing attacks. The performance overhead of TLS on modern instances is negligible compared to the risk of exposing migrated datasets.
Retrofit consideration
Changing ssl_mode on an existing endpoint requires the target database to accept TLS connections. You may need to install CA certificates on the database side and update certificate_arn on the DMS endpoint before flipping the mode. Existing replication tasks referencing the endpoint must be stopped, the endpoint modified, then tasks restarted.
Implementation
Choose the approach that matches how you manage Terraform.
Use AWS provider resources directly. See docs for the resources involved: aws_dms_endpoint.
resource "aws_dms_endpoint" "this" {
database_name = "pofix"
endpoint_id = "pofix-abc123"
endpoint_type = "source"
engine_name = "postgres"
password = "ChangeMe123!"
port = 5432
server_name = "postgres.example.com"
username = "admin"
ssl_mode = "require"
}
What this control checks
The control evaluates the aws_dms_endpoint resource. ssl_mode must be set to something other than "none". Acceptable values are "require", "verify-ca", or "verify-full". If ssl_mode is omitted, AWS defaults it to "none", which fails the control. When using "verify-ca" or "verify-full", you must also provide a certificate_arn referencing an aws_dms_certificate resource holding the CA certificate for the source or target database. Both source and target endpoints are evaluated independently, so every aws_dms_endpoint in the configuration must carry an explicit, non-none ssl_mode.
Common pitfalls
Default ssl_mode is none
If you omit
ssl_modefromaws_dms_endpoint, Terraform sends no value and AWS defaults to"none". This silently fails the control. Always setssl_modeexplicitly.Certificate required for verify-ca and verify-full
Setting
ssl_modeto"verify-ca"or"verify-full"without acertificate_arncauses endpoint creation to fail at apply time. You need anaws_dms_certificateresource and must reference its ARN in the endpoint config.Engine-specific SSL support gaps
Some DMS endpoint engine types (S3, DynamoDB, Kinesis) don't support
ssl_modebecause they use HTTPS natively. Setting it on those endpoints may be ignored or cause errors. This control applies to relational engines:mysql,postgres,oracle,sqlserver, andmongodb.Replication task must be stopped to change ssl_mode
terraform applywill error out if a replication task is running when you changessl_mode. DMS can't modify an endpoint that's actively in use, so stop the task first, apply the endpoint change, then restart.
Audit evidence
An auditor expects Config rule evaluation results showing all AWS::DMS::Endpoint resources as COMPLIANT, or equivalent output from a security posture tool scanning the SslMode property via the DescribeEndpoints API. Beyond the Config snapshot, auditors may pull CloudTrail ModifyEndpoint and CreateEndpoint events to confirm no endpoint was ever provisioned or changed to SslMode: none.
Supporting documentation should include the DMS certificate inventory (CA certificates uploaded via ImportCertificate) and evidence that the databases themselves enforce TLS, such as RDS parameter group settings (rds.force_ssl = 1 for SQL Server, require_secure_transport = ON for MySQL).
Framework-specific interpretation
Related controls
Tool mappings
Use these identifiers to cross-reference this control across tools, reports, and evidence.
Compliance.tf Control:
dms_endpoint_ssl_configuredAWS Config Managed Rule:
DMS_ENDPOINT_SSL_CONFIGUREDCheckov Check:
CKV2_AWS_49Powerpipe Control:
aws_compliance.control.dms_endpoint_ssl_configuredProwler Check:
dms_endpoint_ssl_enabledAWS Security Hub Control:
DMS.9
Last reviewed: 2026-03-09