Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
rds_instance_iam_authentication_enabledProvider: AWS
Service:
rdsSeverity: MEDIUM
Categories:
identity-accessResource type:
AwsRdsDbInstanceWhat this check verifies
RDS DB instances using MySQL, MariaDB, or PostgreSQL engines (including Aurora variants) have IAM database authentication enabled at the instance level or, when part of a cluster, evaluated for cluster-level enablement.Risk
Absent IAM-based, short-lived tokens, databases rely on static passwords in code and configs, increasing theft and reuse. Compromised DB creds enable unauthorized queries, leading to data exfiltration and tampering, and weaken centralized access control and rotation.Recommendation
Enable IAM database authentication for supported engines and apply least privilege with scoped IAM policies. Prefer short-lived tokens over static DB passwords, enforce TLS, and phase out embedded credentials. Monitor authentication activity with audit logs for defense in depth.Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws rds modify-db-instance —db-instance-identifier <DB_INSTANCE_ID> —enable-iam-database-authentication —apply-immediately
References
- https://docs.aws.amazon.com/securityhub/latest/userguide/rds-controls.html#rds-10
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Enabling.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/RDS/iam-database-authentication.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_iam_authentication_enabled. 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