Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
rds_instance_certificate_expirationProvider: AWS
Service:
rdsSeverity: HIGH
Categories:
encryptionResource type:
AwsRdsDbInstanceWhat this check verifies
RDS DB instances are evaluated for server certificate validity windows, including default and customer-managed certificates. Certificates expired or approaching expiration (e.g.,<1 month, <3 months, 3-6 months, >6 months) are identified using the certificate valid_till date.
Risk
Without timely rotation:- TLS failures block DB connections, impacting availability
- Bypassed or weak validation enables MITM, risking confidentiality and integrity
- Emergency changes increase operational risk and error rates
Recommendation
Establish a certificate lifecycle for RDS:- Rotate server/CA certs well before expiry; avoid pinned or outdated CAs
- Keep client trust stores current and enforce TLS with validation
- Monitor expiry and automate alerts/rotation
- For custom certs, apply least privilege, separation of duties, and periodic key rotation; test changes
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws rds modify-db-instance —db-instance-identifier <example_resource_id> —ca-certificate-identifier rds-ca-rsa2048-g1 —apply-immediately
References
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/RDS/rotate-rds-certificates.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_certificate_expiration. 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