Customer Snapshot
| Attribute | Details |
|---|---|
| Industry | SaaS Platform |
| Cloud Environment | AWS (multiple accounts) |
| Workloads | ECS services fronting the application tier |
| Databases | Amazon RDS — PostgreSQL and MySQL |
| Sensitive Data | Customer PII in production tables |
| Current State | No query-level audit, no masking, shared/broad DB access |
| Focus Area | Data-tier governance for RDS |
The Situation: The Application Tier Is Watched, the Data Tier Isn’t
This team had invested in posture and had good coverage of the application and infrastructure layers. ECS services, task roles, networking — all under management. But behind those ECS services sat RDS databases (PostgreSQL and MySQL) holding customer PII, and the data tier had none of the same rigor.
The uncomfortable questions were the ones nobody could answer. Who queried the customer table last week, and what did they pull? Can a support engineer run SELECT * and export every record? If an auditor asked for query-level access logs on the PII tables, was there anything to hand over? The honest answers were “we don’t know,” “yes,” and “no.” The application tier was governed. The data — the thing that actually matters most — was effectively open behind it.
The Core Tension
Access control gets someone into the database; it does nothing about what they can see and do once inside. Native database roles and grants are too coarse to mask a column, block a dangerous query, or record who ran what at the statement level. So even a well-run access model leaves a gap: a legitimately-connected user can read every customer’s PII in plaintext and export it, with no record and no restraint. Closing that gap requires a control layer at the query itself — one that governs and records every statement without shipping sensitive data out of the team’s own cloud.
Where the Gaps Were
No Record of Who Queried What
Native database logs, where they exist at all, typically show that a connection happened under a shared or service account — not which human ran which statement, against which tables, returning how many rows. When the question is “who accessed customer PII and what did they retrieve,” connection-level logging is not an answer. The forensic detail — the statement, the human, the tables, the volume — simply is not captured.
Everyone Sees Raw PII
Without masking, any user who can read a table sees every column in plaintext. A support engineer investigating one customer’s issue can see every customer’s email, phone, and identifiers. This is both a privacy exposure and an audit liability: there is no role-based distinction between “needs to see this customer’s status” and “can read all PII for everyone.”
No Guardrail Against Destructive or Bulk Operations
A mistyped DELETE without a WHERE, a DROP during what was meant to be a read-only session, or a SELECT * that exfiltrates a million rows — native access has no safety net. The query reaches the database and executes. Prevention, where the dangerous statement is stopped before it runs, does not exist in the default setup.
The Data-Sovereignty Trap
The obvious fix — a legacy database activity monitoring product — often carries its own problem: routing sensitive query traffic through the vendor’s infrastructure. For a team that cares about where its customer data lives, sending every query and result through a third party is a non-starter. The team needed monitoring without surrendering data sovereignty.
How Cloudanix Addresses This Situation
A Secure Query Proxy in Your Own Cloud
Cloudanix Database Activity Monitoring deploys as a secure query proxy that runs inside the customer’s own environment — on their own ECS. Every SQL statement to the RDS databases routes through the proxy, and every audit record lands in the customer’s own storage. The database stays in its private subnet; the sensitive data never leaves the team’s AWS account to be secured. This is the answer to the data-sovereignty trap: full query-level control and monitoring, with nothing shipped to a vendor.

Query-Level Audit: Every Statement, Every Human
DAM logs every query with full context: the statement itself, the identity of the real human who ran it, the tables and columns touched, rows returned, and timing. Even where the database sees a shared connection, the query is attributed to the actual person. The previously unanswerable question — “who queried the PII tables and what did they pull?” — becomes a search against the audit trail in the team’s own storage.
Dynamic PII Masking, Role-Based
DAM masks sensitive data post-execution based on who is asking, with multiple strategies (full mask, show last four, mask email/phone, hash, redact, tokenize). A support engineer sees a customer’s status and a masked identifier; a role with a genuine need sees more. Masking happens at the query layer — no schema changes, no application changes. The same query returns different visibility depending on the requester’s role.

Guardrails: Blocking Dangerous Queries Before Execution
DAM inspects statements before they run and enforces guardrails: block destructive operations (DELETE/DROP/TRUNCATE) per policy, require a WHERE clause, restrict access to specific tables or columns, and cap row counts to prevent mass export. A blocked query returns a clear message explaining why. The safety net exists at the query layer — the statement that would have deleted production data or exported a million rows never reaches RDS.
Works With the Tools Engineers Already Use
Because DAM presents a standard database endpoint, engineers keep using DBeaver, DataGrip, TablePlus, pgAdmin, or psql. There is no browser-based SQL console to adopt and no workflow to relearn. The only change is that access is governed, masked, and recorded — invisibly, from the engineer’s point of view.
The Foundation: Keyless, Identity-Stamped Access
DAM builds on Database JIT: access is requested, approved, and time-bound, with short-lived credentials minted per session instead of shared passwords living on laptops. That is what makes query attribution to a real human possible in the first place — access control and data control working as one lifecycle rather than two bolted-together products.
See Cloudanix DAM in Action
In this 2-minute interactive walkthrough, see how Cloudanix DAM inspects, masks, and records queries — with your data never leaving your cloud.
Platform Impact
| Dimension | Before | After (DAM on RDS) |
|---|---|---|
| Query attribution | Connection under shared account | Every statement stamped to the real human |
| PII visibility | Raw plaintext for anyone who can read | Role-based masking at the query layer |
| Destructive/bulk queries | Execute with no safety net | Blocked before execution per policy |
| Audit evidence | Little to none | Full query-level trail in your own storage |
| Data sovereignty | At risk with vendor-routed tools | Proxy in your cloud; data never leaves |
| Engineer workflow | — | Unchanged — same DB clients |
Access Without Data Control Is Half a Solution
Getting someone safely into a database means very little if, once there, they can read and export every customer record unmasked and unlogged. The application tier being well-governed makes the data-tier gap more glaring, not less — it is the one layer holding the data that regulations, auditors, and customers actually care about, and it is the one left open.
Closing it does not mean surrendering your data to a monitoring vendor. A query proxy in your own cloud gives you the whole picture — who ran what, masked by role, with dangerous statements stopped before they execute — while your sensitive data stays exactly where it belongs. For an ECS-and-RDS team, that is how the data tier finally gets the same rigor the rest of the stack already has.
Key Outcomes
- ✅ Query-Level Audit: Every statement attributed to the real human, in your own storage.
- ✅ Role-Based PII Masking: Sensitive columns masked by who is asking — no schema changes.
- ✅ Query Guardrails: Destructive and bulk operations blocked before execution.
- ✅ Data Sovereignty: Proxy runs in your cloud; data never leaves your account.
- ✅ Native Tooling: DBeaver, DataGrip, TablePlus, pgAdmin, psql — unchanged.
- ✅ Access + Data as One: Built on keyless, identity-stamped Database JIT.
Sensitive Data in RDS Behind Your ECS Services?
If your ECS workloads front RDS databases full of customer PII — and you can’t prove who queried what or stop a full-table export — Cloudanix DAM adds query-level audit, role-based masking, and prevention, with your data never leaving your cloud.
Book a Free Assessment to see DAM protecting your RDS databases in under 30 minutes.
Related Resources
- The End of Permanent Access: Next-Generation JIT for Granular Database Security
- Database Activity Monitoring Use Cases: How DAM Prevents Data Loss
- Top Database Activity Monitoring Tools in 2026
- JIT Access and Database Activity Monitoring for a Lean RBI-Regulated FinTech
- Database Activity Monitoring: Real-Time Data Security