Narnet: Podaci iza sedam brava
Multi-tenant nabava s Row Level Security i kriptografskom izolacijom. Čak i da netko probije app, baza ne da podatke krive firme.
- Multi-tenant
- PostgreSQL
- RLS
- Queue Workers
- Enterprise Security
- Crypto Isolation
Izazov
Više konkurentskih firmi na istom sustavu. Strah od curenja podataka bio je ogroman. "Logička" izolacija (samo WHERE tenant_id = X) nije bila dovoljna — jedan bug u kodu ili zlonamjerni upit i podaci druge tvrtke mogu iscuriti. Klijent je trebao garanciju na razini baze.
Rješenje
Implementirali smo Row Level Security (RLS) na razini PostgreSQL baze. Čak i da netko probije aplikaciju ili pokrene raw SQL, baza ne da podatke krive firme. Politike RLS-a provjeravaju kontekst sesije; nema "samo dodaj tenant_id u WHERE". Uz to — kriptografija na razini polja za najosjetljivije podatke, tako da čak i DBA vidi samo šifrirane vrijednosti.
Što smo napravili
- Paranoična sigurnost (RLS) — svi upiti prolaze kroz RLS politike. Nema bypassa u aplikaciji.
- Queue Workeri koji žvaču tisuće zahtjeva dok vi pijete kavu — teška obrada (izvještaji, masovni import) ide u red; korisnik dobiva rezultat kad je gotovo, bez blokiranja sučelja.
- Audit i compliance — tko je što promijenio i kada; nemjenjivi log za reviziju.