Check provider logo

RDS snapshot is not publicly shared

rds_snapshots_public_access

Severitycritical
Servicerds
by Prowler

RDS DB snapshots and DB cluster snapshots with public visibility (shared with all AWS accounts) are detected.

Snapshots limited to specific accounts or kept private are identified as restricted.

Risk

Public RDS snapshots expose full database copies to all AWS accounts, risking:

  • Loss of confidentiality via data exfiltration (PII, secrets)
  • Offline cracking of hashes and schema reconnaissance
  • Credential harvesting from dumps enabling lateral movement This directly compromises confidentiality and fuels targeted attacks.
Run this check with Prowler CLI

prowler aws --checks rds_snapshots_public_access

Fix finding with Prowler CLI

prowler aws --checks rds_snapshots_public_access --fixer

Recommendation

Keep RDS snapshots and cluster snapshots private. Share only with explicit AWS account IDs using least privilege and time-bound access.

Enforce guardrails to block public visibility, require approvals for sharing, and audit snapshot permissions. Use encryption with strict key policies to control who can restore data.

Remediation

CLI

aws rds modify-db-snapshot-attribute --db-snapshot-identifier <snapshot_id> --attribute-name restore --values-to-remove all

Other
  1. Open the Amazon RDS console and go to Snapshots
  2. Select the public snapshot (DB snapshot or DB cluster snapshot)
  3. Click Actions > Share snapshot
  4. Set visibility to Private (remove "All" from permissions) and click Save

Source Code

Resource Type

AwsRdsDbSnapshot

References