Public RDS Instances: A Misstep With Massive Risk

07/29/2025 β€” Lensix AWS Checks
Public RDS Instances: A Misstep With Massive Risk

One of the high-risk checks we run at Lensix is for publicly accessible RDS instances - databases exposed directly to the internet. This is usually not intentional and is rarely safe.

 

πŸ’‘ Why it matters

 

Why is this such a bad idea? Here are a few reasons:

  • Security Risk: Public RDS instances are prime targets for automated scanning, brute-force attacks, and exploitation. Even if you block access with security groups, it opens up the possibility of misconfigurations leading to catastrophic consequences.
  • Compliance Violations: Frameworks like HIPAA, PCI-DSS, ISO 27001, and SOC 2 prohibit or severely restrict direct public access to data stores. Even if you limit exposure, you will have to explain this every time.
  • No Web Application Shield: Unlike a web app behind a WAF or CDN, a public RDS instance is exposed as-is — often with default ports.

 

🧩 How Does It Happen?

 

There are a lot of ways that DBs end up public, almost always accidentally. Some examples:

  • Default Configs: A developer launches a DB from the console and leaves "public access" enabled, or someone checks the box on creation without realizing the consequences.
  • Test or Temp Setups: Someone might have required public access for quick testing or cross-account access and forgot to remove it.
  • Lack of Knowledge: Sometimes, engineers may not understand the cloud network infrastructure and its ability to utilize private networks, or might think that a DB needs to be public to function with their other systems.

 

⚠️ Common Caveats

  • Marking a DB as publicly accessible does not guarantee exposure - it must also have open security groups or network paths. But enabling public access strips away its most powerful layer of protection. 
  • In the rare case that a database does need to be public, there should be layers of security such as strong passwords, security group rules, proxies, and end-to-end encryption.

 

βœ… What to do about it

  1. Audit all RDS instances: Use tools like Lensix or AWS CLI to find public flags.
  2. Use VPC peering, bastions, or session manager to enable safe, indirect access.
  3. Update IaC modules: Make sure Terraform, CloudFormation, or CDK defaults to private-only deployments.
  4. Use PrivateLink or VPNs for secure, managed access across environments.

 

πŸ”’ Bottom Line

A publicly exposed database is a fast track to a breach. If you wouldn't post your app's credentials on GitHub, don't leave your RDS wide open either. Lensix can help you spot these kinds of misconfigurations and track them to remediation.

Share this post.
Stay up-to-date

Subscribe to our newsletter

Don't miss this

You might also like