Check ID: rds_instance_protected_by_backup_plan
Provider: AWS
Service: rds
Severity: HIGH
Categories: resilience
Resource type: AwsRdsDbInstance

What this check verifies

RDS DB instances (non-Aurora) are included in an AWS Backup plan, indicating scheduled backups and retention are applied to the resource. Aurora engines are evaluated separately.

Risk

Without an AWS Backup plan, databases lack assured recovery, degrading availability and integrity. Likely outcomes: accidental deletion, corruption, or malicious wipes with no recent restore point. Expect missed RPO/RTO, extended outages, and data inconsistency after incidents.

Recommendation

Assign all non-Aurora RDS to an AWS Backup plan aligned to business RPO/RTO. Use tags for automatic coverage, define retention and lifecycle, and store backups in immutable vaults where possible. Regularly perform restore tests. Enforce least privilege and separation of duties for backup administration.

Remediation

aws backup create-backup-selection --backup-plan-id <example_backup_plan_id> --backup-selection '{"SelectionName":"<selection_name>","IamRoleArn":"<example_role_arn>","Resources":["<rds-instance-arn>"]}'

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = rds_instance_protected_by_backup_plan. 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