Check ID:
Provider: AWS
Service:
Severity: LOW
Resource type:
rds_instance_non_default_portProvider: AWS
Service:
rdsSeverity: LOW
Resource type:
AwsRdsDbInstanceWhat this check verifies
RDS DB instances are evaluated for use of a port that differs from the engine’s default. Matching an engine with its default port-3306 (MySQL/MariaDB/Aurora MySQL), 5432 (PostgreSQL/Aurora), 1521 (Oracle), 1433 (SQL Server), 50000 (Db2)-indicates the instance uses the default listener.
Risk
Using a default DB port increases exposure to broad scans and eases service fingerprinting. With weak network controls, attackers can run credential brute force, target known engine exploits, or trigger DoS on the predictable port, threatening confidentiality and availability.Recommendation
Use a non-default DB port and enforce defense in depth:- Apply least-privilege network rules
- Keep databases in private subnets; avoid public exposure
- Require strong authentication and audit logging
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws rds modify-db-instance —db-instance-identifier <db-instance-id> —db-port <non-default-port>
References
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/RDS/rds-default-port.html
- https://docs.aws.amazon.com/securityhub/latest/userguide/rds-controls.html#rds-23
- https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = rds_instance_non_default_port. 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