Check ID:
Provider: AWS
Service:
Severity: CRITICAL
Categories:
Resource type:
dms_instance_no_public_accessProvider: AWS
Service:
dmsSeverity: CRITICAL
Categories:
internet-exposedResource type:
AwsDmsReplicationInstanceWhat this check verifies
AWS DMS replication instances are evaluated for public exposure. Exposure is identified whenPubliclyAccessible is enabled and an attached security group allows inbound traffic from any address. Private or allowlisted instances are not considered exposed.
Risk
Publicly reachable replication instances threaten:- Confidentiality: migration data and credentials can be intercepted or exfiltrated.
- Integrity: attackers may alter tasks or inject records.
- Availability: abuse or DDoS can stall replication and delay cutovers.
Recommendation
Adopt a private-only design:- Disable
PubliclyAccessible; place instances in private subnets. - Enforce least privilege security groups (no
0.0.0.0/0); allow only required sources/ports. - Provide access via VPN, peering, or Direct Connect.
- Layer controls (ACLs, monitoring) and restrict IAM to necessary actions.
Remediation
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/securityhub/latest/userguide/dms-controls.html#dms-1
- https://docs.aws.amazon.com/amazonq/detector-library/terraform/restrict-public-access-dms-terraform/
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/DMS/publicly-accessible.html
- https://support.icompaas.com/support/solutions/articles/62000233448-ensure-dms-instances-are-not-publicly-accessible
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = dms_instance_no_public_access. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks