Menu

Neon Anonymized Branches: Mask the Columns, Then Scan the Rest
📰

Neon Anonymized Branches: Mask the Columns, Then Scan the Rest

DEV Community: postgres·DevOps Daily·7 days ago
#95xHlqIi
#devtopostgresql#devto#dev#email#users
Reading 0:00
15s threshold

We created an anonymized branch of a 20,000-user SaaS database on Neon. It had masking rules for the six PII columns of the users table: email, name, phone, street address, date of birth and signup IP. The masking run took 9 seconds. Afterwards, no row in users held its original email, name, phone, address or IP (3 of the 20,000 random dates of birth matched the original by chance). Then we read every text and JSON column on the branch. All 20,000 original email addresses were still there , and so was every original name, phone number, street address and IP address.

Most of them were in places nobody writes a rule for: the email copied onto each order at checkout, the JSON payloads of login and checkout events, the text of support tickets. The other 20,000 copies came from the masking run itself. The masking updates each row of users , so the audit trigger on that table fired 20,000 times and saved every original row into audit_log .

Anonymized branches mask the columns you list, and in our runs they did.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.