Last Thursday, an AWS RDS instance connected with IAM authentication exposed records that should have never seen daylight. The leak wasn’t caused by brute force or zero-day exploits. It happened because tight access wasn’t tight enough, and trust between services was assumed, not verified.
AWS RDS with IAM authentication is designed to avoid static credentials. Done right, it’s safer than password-based connections. Done wrong, it can silently turn into an open door. The problem comes when permissions balloon. A developer account with excessive IAM policies can get programmatic access to RDS without ever knowing the password. If the same account is compromised, your database is next.
The weak links hide in plain sight. Policies that use wildcards. Roles that aren’t bounded by IP. Logs that never get checked. Even small lapses in least privilege can allow an attacker to pivot from S3 or Lambda to RDS. Once a connection is made, query-level logging might be the only sign — if it’s even turned on.