RBAC naspram izolacije zakupaca: dve različite bezbednosne granice

RBAC i izolacija zakupaca rešavaju dva različita bezbednosna problema u sistemima sa više zakupaca. Kontrola pristupa zasnovana na ulogama (RBAC) određuje šta autentifikovani principal sme da radi, kao što je čitanje porudžbina, uređivanje proizvoda ili upravljanje korisnicima. Izolacija zakupaca određuje kojem zakupcu podaci, resursi i kontekst izvršavanja taj principal sme da pristupi. Korisnik može biti ispravno autentifikovan i ispravno mu dodeljena RBAC uloga, a ipak doživeti bezbednosni propust ako aplikacija dozvoli toj ulozi da radi sa resursima drugog zakupca.
Šta RBAC zaista kontroliše
RBAC je model autorizacije u kojem su dozvole povezane sa ulogama, a korisnici su dodeljeni tim ulogama. Uloga deluje kao administrativna apstrakcija između identiteta i dozvola.
NIST-ov klasičan rad o RBAC-u formalizuje ovo oko korisnika, uloga, dozvola, operacija i objekata. Praktična korist je da organizacija može da upravlja autorizacijom kroz relativno stabilne uloge zasnovane na poslu ili odgovornosti, umesto da svaku dozvolu direktno povezuje sa svakim korisnikom.
Uloga kao što je EDITOR može stoga da znači: može da čita sadržaj, piše sadržaj i objavljuje sadržaj. Uloga kao što je ACCOUNTANT može da znači: može da čita podatke za naplatu, usklađuje fakture i odobrava poravnanja.
Šta izolacija zakupaca zaista kontroliše
Izolacija zakupaca je skup mehanizama koji sprečavaju da jedan zakupac čita, menja, utiče na ili slučajno primi resurse drugog zakupca u deljenom sistemu.
Zaštićena granica je šira od redova u bazi podataka. Stanje specifično za zakupca može postojati u relacionim tabelama, objektnom skladištu, vektorskim indeksima, keševima, indeksima pretrage, porukama u redovima, fajlovima, privremenim artefaktima, pozadinskim poslovima, analitici, ograničenjima brzine i infrastrukturnim resursima.
AWS-ove SaaS smernice jasno prave razliku: autorizacija odobrava pristup resursima, dok izolacija zakupaca obezbeđuje da ti resursi ne mogu preći pogrešnu granicu zakupca čak i kada je infrastruktura deljena.
Najjednostavniji primer
Pretpostavimo da je Alice administrator za Zakupca A, a Bob administrator za Zakupca B. Oba korisnika legitimno imaju istu ADMIN ulogu.
RBAC može ispravno zaključiti da oba korisnika mogu izvršiti operaciju kao što je users.read. Ali kada Alice zatraži korisnika sa ID-jem 847, aplikacija i dalje mora da verifikuje da korisnik 847 pripada Zakupcu A.
Ako API proverava samo „Alice ima ADMIN” i zatim izvršava SELECT * FROM users WHERE id = 847, RBAC je uspeo, dok je izolacija zakupaca podbacila.
Ispravna odluka o autorizaciji u okruženju sa više zakupaca
Gde se jednostavan primer zaustavlja
Stvarni sistemi često sadrže nekoliko klasa identiteta: korisnike zakupca, administratore platforme, pozadinske radnike, integracije, agente i operativne servise između zakupaca. Neki od njih legitimno prelaze granice zakupaca.
To ne uklanja potrebu za izolacijom. To znači da autoritet između zakupaca mora biti eksplicitan, uzak i odvojeno revidiran, a ne da nastaje slučajno iz globalne uloge ili neograničene veze sa bazom podataka.
Izolacija zakupaca takođe može varirati po sloju. Proizvod može deliti aplikacione servere dok razdvaja baze podataka, ili koristiti deljenu bazu podataka sa politikama na nivou reda dok premium zakupcima daje izolovano skladištenje ili računarske resurse. Ne postoji jedna univerzalna topologija izolacije.
RBAC naspram izolacije zakupaca
Dve različite bezbednosne dimenzije
| RBAC | Izolacija zakupaca | |
|---|---|---|
| Primarno pitanje | ||
| Tipična jedinica | ||
| Primer | ||
| Tipičan neuspeh | ||
| Tipična implementacija | ||
| Može li postojati samo? |
Autentifikacija, autorizacija i izolacija su tri različite provere
| Sloj | Pitanje | Primer neuspeha |
|---|---|---|
| Autentifikacija | Ko je ovaj principal? | Napadač se predstavlja kao Alice |
| Autorizacija / RBAC | Može li ovaj principal izvršiti ovu operaciju? | Viewer može obrisati korisnike |
| Izolacija zakupaca | Može li ova operacija dosegnuti ovu granicu zakupca/resursa? | Administrator zakupca A čita porudžbinu zakupca B |
Ove provere su povezane ali se ne mogu međusobno zameniti. Autentifikacija može biti savršena dok autorizacija ne uspe. Autorizacija može biti ispravna dok izolacija zakupaca ne uspe. Bezbedna SaaS putanja zahteva sve primenljive granice.
Uloge zahtevaju opseg
Reč ADMIN je nepotpuna bez opsega. Može značiti administrator platforme, administrator zakupca, administrator projekta, administrator radnog prostora ili administrator jednog podsistema.
U sistemima sa više zakupaca, dodela uloga bi normalno trebalo da bude povezana sa članstvom u zakupcu ili drugim eksplicitnim opsegom resursa. Isti korisnik može legitimno biti ADMIN u zakupcu A i VIEWER u zakupcu B.
Globalni model uloga koji ignoriše ovu razliku može stvoriti curenje privilegija čak i kada je sama mapa dozvola ispravna.
Kontekst zakupca mora doći iz pouzdanog puta
ID zakupca koji dostavlja klijent je koristan kao selektor, ali nije dokaz autoriteta. Server mora izvesti ili verifikovati članstvo u zakupcu na osnovu autentifikovanog identiteta i trenutnih podataka o autorizaciji.
OWASP-ove trenutne smernice za multi-tenant preporučuju uspostavljanje konteksta zakupca rano u životnom ciklusu zahteva i eksplicitno upozoravaju da se klijentski zaglavlja ili parametri zahteva ne tretiraju kao dokaz autorizacije.
Ovo je važno jer trivijalna izmena zahteva sa tenant=A na tenant=B ne sme biti dovoljna da se pređe granica izolacije.
Opseg zakupca pripada pretrazi resursa
Uobičajen obrazac izolacije na nivou aplikacije je uključivanje opsega zakupca u isti upit koji razrešava resurs.
| Slabo pretraživanje | Jače pretraživanje sa opsegom zakupca |
|---|---|
| findFirst({ where: { id } }) | findFirst({ where: { id, tenantId } }) |
| UPDATE orders SET ... WHERE id = ? | UPDATE orders SET ... WHERE id = ? AND tenant_id = ? |
| cache.get('user:' + id) | cache.get('tenant:' + tenantId + ':user:' + id) |
Ovaj obrazac nije jedini mogući mehanizam izolacije, ali zadržava vlasništvo nad zakupcem blizu operacije pristupa podacima i sprečava da ID objekta postane sposobnost za pristup drugim zakupcima.
Provere u aplikaciji su korisne, ali izolacija ne bi trebalo da zavisi od savršenog ponašanja programera
AWS smernice za izolaciju eksplicitno upozoravaju da se sprovođenje izolacije ne prepušta samo programerima servisa. U velikoj bazi koda, vremenom će neki upit, keš ključ ili putanja radnika možda izostaviti opseg zakupca.
Odbrana u dubinu stoga može preneti izolaciju u deljeni middleware, slojeve repozitorijuma/servisa, mehanizme politika, bezbednost na nivou redova baze podataka, namenske akreditive, odvojene šeme ili odvojene baze podataka u zavisnosti od rizika i arhitekture.
Strategije izolacije baze podataka
| Strategija | Granica | Snaga / kompromis |
|---|---|---|
| Deljene tabele + ključ zakupca | Politika reda/aplikacije | Operativno efikasno; zahteva iscrpno određivanje opsega zakupca i jake testove |
| Deljene tabele + RLS baze podataka | Granica politike baze podataka | Smanjuje zavisnost od svakog upita aplikacije; zahteva ispravne uloge, kontekst zakupca sesije/transakcije i pokrivenost politikama |
| Odvojene šeme | Granica imenskog prostora / DB uloge | Jača logička razdvojenost; veća operativna složenost |
| Odvojene baze podataka | Granica baze podataka / akreditiva | Jaka izolacija i jednostavnija priča o domenu uticaja; veći troškovi obezbeđivanja i operacija |
| Odvojena infrastruktura/nalog | Granica infrastrukture | Najjača gruba razdvojenost; najveći trošak i operativni overhead |
| Hibridno | Po radnom opterećenju/klasi podataka | Omogućava jaču izolaciju samo tamo gde rizik/usaglašenost to opravdava |
OWASP-ova aktuelna Multi-Tenant Security Cheat Sheet navodi odvojene baze podataka, odvojene šeme, deljene tabele sa kontrolama na nivou redova i hibridne modele. Ispravan model zavisi od nivoa pretnje, usaglašenosti, performansi i operativnih troškova.
PostgreSQL Row-Level Security može pružiti odbranu u dubinu
Sa deljenim tabelama, PostgreSQL Row-Level Security može sprovesti predikat zakupca na nivou baze podataka tako da obični upiti ne mogu videti redove van aktivne politike zakupca.
Međutim, RLS nije magija. PostgreSQL superkorisnici i uloge sa BYPASSRLS mogu zaobići politike redova. OWASP stoga preporučuje korišćenje uloge sa najmanjim privilegijama na putu zahteva i testiranje istog režima konekcije/pooling-a koji se koristi u produkciji.
Ponovno korišćenje konekcije je još jedna važna ivica: kontekst zakupca mora biti bezbedno postavljen i resetovan za svaku transakciju/zahtev kako jedna pooled konekcija ne bi mogla da procuri prethodno stanje zakupca.
Izolacija zakupca mora uključivati keševe
Upit baze podataka može biti savršeno ograničen i ipak procuriti podatke kroz deljeni keš ključ.
Ako user:42 postoji i kod Zakupca A i kod Zakupca B, globalni keš ključ može vratiti vrednost pogrešnog zakupca. Keš ključevi osetljivi na zakupca treba da uključe svaki atribut koji menja vidljivost ili semantiku rezultata, obično zakupca, korisnika, lokal, skup funkcija ili verziju dozvole.
Particionisanje keša je odbrana u dubinu, a ne zamena za autorizaciju. Zahtev i dalje mora biti autorizovan pre nego što se vrati zaštićeni keširani sadržaj.
Skladištenje datoteka i objekata zahteva sopstvenu granicu tenanta
Skladištenje objekata treba da razlikuje globalne, objekte u okviru tenanta i objekte u okviru korisnika. Sam prefiks foldera je samo konvencija imenovanja osim ako politika pristupa zaista ograničava čitanje i pisanje.
Robusniji dizajni mogu koristiti ključeve objekata svesne tenanta, politike bucket-a, odvojene bucket-e/naloge ili ključeve za šifrovanje specifične za tenanta kada rizik ili usklađenost zahtevaju jaču izolaciju.
Potpisani URL-ovi moraju biti autorizovani pre izdavanja i ograničeni na tačan objekat i operaciju. posedovanje identifikatora objekta samo po sebi ne bi trebalo da daje pristup između tenanata.
Pozadinski poslovi i redovi mogu narušiti izolaciju
Asinhroni poslovi često napuštaju kontekst originalnog HTTP zahteva, što olakšava pogrešno rukovanje propagacijom tenanta. Poruka u redu koja sadrži tenantId nije dovoljan dokaz da je producent bio autorizovan.
Radnik treba da nosi verifikovani identitet servisa/korisnika ili pouzdan omot posla, ponovo uspostavi kontekst tenanta i ponovo autorizuje posledične operacije na granici potrošača.
Izolacija tenanta takođe uključuje dostupnost. Jedan tenant ne bi trebalo da može monopolizovati deljene radnike, redove, bazene konekcija ili računske resurse na način koji materijalno degradira druge tenante.
Pretraga i RAG zahtevaju preuzimanje svesno tenanta
Multi-tenant AI uvodi još jednu kopiju problema izolacije. Dokumenti mogu biti podeljeni u delove, ugrađeni i sačuvani u vektorskom indeksu nakon unosa.
OWASP-ove trenutne smernice za RAG bezbednost navode da kontrola pristupa mora biti sprovedena u trenutku preuzimanja i da delovi od Tenanta A ne smeju biti preuzeti upitima od Tenanta B. Ne može se jednostavno pretpostaviti da dozvole na nivou dokumenta automatski preživljavaju deljenje.
Vektorski indeks stoga zahteva metapodatke o tenantu/pristupu ili fizički/logički odvojene kolekcije u skladu sa dizajnom izolacije. Filteri za preuzimanje treba da se primenjuju pre nego što neovlašćeni sadržaj može ući u kontekst modela.
Izvedeni podaci nasleđuju osetljivost tenanta
Ugrađivanja, indeksi pretrage, sličice, generisani rezimei, keševi, redovi analitike i AI odgovori izvedeni su iz izvornih podataka. Njihov obim tenanta treba da prati izvor osim ako eksplicitna transformacija stvara legitiman deljeni/globalni artefakt.
Brisanje i odjava stoga moraju da se propagiraju izvan kanonskog reda. Uklanjanje dokumenta tenanta dok ostaju delovi koji se mogu pretraživati ili keširani rezimei može zadržati izloženost između tenanata ili nakon perioda zadržavanja.
Nije sve vlasništvo tenanta
Multi-tenant platforme često imaju namerno globalne resurse: taksonomije proizvoda, javne šablone, sistemske dozvole, definicije funkcija ili javni sadržaj.
Najbezbedniji model je eksplicitna klasifikacija: globalno, u okviru zakupca, u okviru korisnika ili eksplicitno između zakupaca. Nejasni resursi su mesto gde počinje slučajno curenje.
Namerno deljeni objekat treba da ima dokumentovan razlog zašto je globalan, a ne da mu jednostavno nedostaje povezanost sa zakupcem.
Administratori platforme zahtevaju drugačiji model ovlašćenja
Operater platforme može morati da pregleda više zakupaca radi podrške, usklađenosti ili infrastrukturnih operacija. Modelovanje ovoga kao običnog ADMIN-a zakupca sa slučajnim globalnim pristupom bazi podataka slabi i bezbednost i mogućnost revizije.
Bolji dizajn koristi poseban identitet platforme ili eksplicitnu dozvolu između zakupaca, jaču autentifikaciju, ograničenje svrhe, detaljnu reviziju i, gde je prikladno, kontrole odobrenja ili prinudnog pristupa.
Pristup između zakupaca bi stoga trebalo da bude imenovana sposobnost, a ne odsustvo filtera zakupca.
RBAC se može kombinovati sa atributima
Neke odluke zavise od više od uloge. Članstvo u zakupcu, region, vlasnik resursa, nivo pretplate, vreme, članstvo u projektu ili klasifikacija podataka mogu uticati na pristup.
RBAC i ABAC se ne isključuju međusobno. AWS-ove trenutne smernice za autorizaciju u više zakupaca razmatraju RBAC, ABAC i hibridne modele. Uloga može definisati široku odgovornost dok atributi ograničavaju kojoj konkretnoj instanci resursa se može pristupiti.
Ključno arhitektonsko pravilo ostaje: ne kodirajte izolaciju zakupaca samo kao slučajni naziv uloge ako je identitet zakupca granica resursa prvog reda.
Odluke o autorizaciji su najmanje dvodimenzionalne
| Principal | Dozvola uloge | Odnos sa zakupcem | Odluka |
|---|---|---|---|
| Alice | orders.read | Porudžbina pripada Alisinom zakupcu | Dozvoli |
| Alice | orders.read | Porudžbina pripada drugom zakupcu | Odbij |
| Alice | orders.write | Porudžbina pripada Alisinom zakupcu | Dozvoli ako uloga uključuje pisanje |
| Alice | orders.write | Porudžbina pripada drugom zakupcu | Odbij |
| Platform support | support.cross_tenant.read | Eksplicitni obim podrške + revidirani ciljni zakupac | Potencijalno dozvoli pod politikom platforme |
| Background worker | orders.process | Obim pouzdane usluge za zakupca posla | Dozvoli samo za verifikovanog zakupca posla |
Dokaz originalne implementacije: Aaasaasa AI CMS
RBAC servis definiše tipizirane kodove dozvola kao što su cms.content.read, shop.orders.write, billing.reconcile i users.roles. Sistemske uloge mapiraju te dozvole u imenovane skupove odgovornosti.
Zapisi uloga se kreiraju i razrešavaju sa tenantId. Sistemske uloge se ažuriraju ili ubacuju korišćenjem složenog identiteta zakupac/kod, a listanje uloga je filtrirano po zakupcu.
Ažuriranje i brisanje uloge prvo razrešava ulogu koristeći i ID uloge i ID zakupca. Dodele uloga korisnicima se takođe čuvaju i zamenjuju u okviru trenutnog konteksta zakupca.
Razrešavanje dozvola čita eksplicitne dodele uloga korisnicima ograničene i tenantId i userId. Ovo sprečava da dodela uloge jednog zakupca automatski postane dodela uloge drugog zakupca.
Na API nivou, administrativne RBAC rute razrešavaju kontekst zakupca pre kreiranja ili izmene uloga. To je ispravan smer: administracija dozvola i sama mora poštovati zakupništvo.
| Uočeni obrazac implementacije | Bezbednosno značenje |
|---|---|
| Tipizirani kodovi dozvola | RBAC rečnik operacija je eksplicitan |
| Sistemska uloga → mape dozvola | Uloge agregiraju dozvole umesto hardkodiranja korisnika |
| tenantId_code identitet uloge | Ista logička uloga može postojati odvojeno po zakupcu |
| Pretraga uloge koristi id + tenantId | Izmena uloge je ograničena na zakupca |
| Relacija korisnik-uloga čuva tenantId | Članstvo se ne izvodi globalno samo iz uloge |
| Razrešavanje dozvola koristi tenantId + userId | Autorizacija se evaluira unutar konteksta zakupca |
Zašto je ova razlika još važnija za AI agente
AI agenti mogu pretvoriti grešku u dozvolama u niz akcija. Ako agent dobije široki alat orders.read bez prinude ograničene na zakupca, greška u rezonovanju ili prompt-injection može izazvati čitanje između zakupaca mašinskom brzinom.
Opisi alata agenta mogu pominjati ograničenja zakupca, ali prinuda se i dalje mora odvijati u pouzdanom sloju izvršavanja/usluge/podataka. Uputstva na prirodnom jeziku nisu granica autorizacije.
Isto važi i za RAG: agent može imati dozvolu da koristi alat za pretragu, dok pozadina pretrage i dalje mora sprečiti da upit Zakupca A vrati delove Zakupca B.
Testirajte RBAC i izolaciju zakupaca odvojeno
| Porodica testova | Šta bi trebalo da dokaže |
|---|---|
| Test degradacije uloge | Korisnik bez dozvole ne može izvršiti operaciju čak ni unutar svog zakupca |
| Test objekta između zakupaca | Korisnik sa ispravnom ulogom i dalje ne može pristupiti istoj vrsti resursa u drugom zakupcu |
| Krivotvorenje identifikatora | Promena ID-jeva objekata/zakupaca ne prelazi opseg |
| Test liste/grupnih endpointa | Široki upiti vraćaju samo autorizovane podatke zakupca |
| Test ponovne upotrebe keša | Dva zakupca koja koriste ponovo upotrebljene procese/veze nikada ne primaju keširano stanje onog drugog |
| Test RLS uloge zahteva | Produkcijska uloga zahteva ne može zaobići politike redova |
| Test asinhronog radnika | Kontekst zakupca preživljava stavljanje u red i ponovo se validira pri potrošnji |
| Test vektorske pretrage | Upit Zakupca A nikada ne pronalazi delove Zakupca B |
| Test platformskog administratora | Mogućnost između zakupaca je eksplicitna, uska i revizibilna |
| Test odjave | Podaci zakupca i izvedeni indeksi/keševi se uklanjaju u skladu sa politikom |
OWASP smernice za regresiju autorizacije posebno ističu testove granica između zakupaca jer promene koda u keširanju, upitima ili deljenim uslugama mogu tiho pokvariti izolaciju čak i kada testovi uloga nastave da prolaze.
Uobičajeni načini neuspeha
| Način neuspeha | Zašto ne uspeva |
|---|---|
| Provera uloge ali ne i zakupca | Validna uloga postaje autoritet između zakupaca |
| Verovanje ID-ju zakupca iz zahteva | Klijent kontroliše selektor izolacije |
| Ograničavanje UI ali ne i API-ja | Skrivena dugmad ne štite pozadinske resurse |
| Endpoint za detalje svestan zakupca, endpoint liste bez opsega | Grupna čitanja otkrivaju druge zakupce |
| Filter zakupca u većini upita | Jedna zaboravljena putanja kvari granicu |
| Globalni ključevi keša | Ispravna izolacija baze podataka se zaobilazi keširanim podacima |
| Deljeni vektorski indeks bez prinudnih filtera metapodataka | RAG pronalazi delove drugog zakupca |
| ID zakupca u poruci reda tretiran kao autorizacija | Krivotvoren ili pogrešno proizveden posao može preći granicu zakupca |
| Platformski administrator modelovan kao običan ADMIN | Moć između zakupaca postaje implicitna i teška za reviziju |
| Uloga kopirana globalno kroz članstva u zakupcima | Korisnik dobija dozvole u zakupcima gde nikada nije dodeljen |
| Odvojene baze podataka ali deljeni privilegovani akreditiv | Aplikacija i dalje može preći baze podataka ako je njen akreditiv preširok |
| RLS sa BYPASSRLS ulogom zahteva | Politika baze podataka postoji ali ne štiti stvarnu putanju zahteva |
| Nasumični UUID-ovi tretirani kao izolacija | Teško pogodivi identifikatori smanjuju nabrajanje ali ne autorizuju pristup |
Uobičajene zablude
| Zabluda | Ispravka |
|---|---|
| „RBAC obezbeđuje izolaciju zakupaca.“ | RBAC kontroliše dozvole; izolacija takođe zahteva opseg zakupca/resursa. |
| „Ako je korisnik administrator, provere zakupca nisu potrebne.“ | Administratorski autoritet i dalje mora imati eksplicitan opseg. |
| „ID zakupca u JWT-u je dovoljan.“ | Može biti pouzdan ulaz samo ako se validira i primenjuje dosledno na svaku zaštićenu putanju resursa. |
| „Odvojene baze podataka uklanjaju zahteve za autorizacijom.“ | Korisnicima su i dalje potrebne dozvole na nivou operacija unutar njihovog zakupca. |
| „Kolona tenant_id znači da je sistem izolovan.“ | Polje pomaže samo ako putanje pristupa ga primenjuju. |
| „UUID-ovi sprečavaju pristup između zakupaca.“ | Nepredvidivi identifikatori su odbrana u dubinu, a ne autorizacija. |
| „RLS znači da aplikacijski kod ne treba bezbednosne provere.“ | Aplikacijska autorizacija, ispravne DB uloge i pokrivenost politikama su i dalje važni. |
| „Jedna deljena vektorska baza je nesigurna.“ | Može biti sigurna ako je izolacija sprovodiva i verifikovana; fizičko razdvajanje je jedna opcija, ne jedina. |
| „Platformska podrška zahteva globalnog ADMIN-a.“ | Podrška između zakupaca treba da bude poseban, ograničen i revizibilan autoritet. |
| „Interni servisi mogu preskočiti provere zakupca.“ | Interne putanje i dalje mogu biti kompromitovane ili pogrešno konfigurisane i moraju sačuvati kontekst zakupca. |
Praktičan redosled dizajna
Dizajnirajte dozvole i izolaciju kao odvojene dimenzije
RBAC + kontrolna lista izolacije zakupaca
| Pitanje | Očekivani odgovor |
|---|---|
| Ko je principal? | Autentifikovani identitet korisnika/servisa/agenta |
| Koji kontekst zakupca se primenjuje? | Na serveru verifikovano članstvo ili opseg servisa |
| Koja operacija se zahteva? | Tipizirana dozvola ili akcija politike |
| Da li principal ima tu dozvolu? | Odluka o ulozi/politici |
| Ko je vlasnik ciljnog resursa? | Eksplicitna klasifikacija zakupca/globalnog/korisnika |
| Da li se opseg resursa poklapa sa autoritetom? | Pretraga/politika svesna zakupca |
| Može li skladište zaobići aplikacijske provere? | Odluka o odbrani u dubinu dokumentovana |
| Da li su keševi sigurni za zakupce? | Ključevi/imenski prostori i autorizacija čuvaju opseg zakupca |
| Da li su fajlovi/blobovi sigurni za zakupce? | Politika objekata i izdavanje potpisanih URL-ova primenjuju opseg |
| Da li su asinhroni poslovi sigurni za zakupce? | Verifikovani kontekst se propagira i ponovo validira |
| Da li su RAG/pretraga sigurni za zakupce? | Izolacija metapodataka/kolekcija se primenjuje pre konteksta modela |
| Da li su administratori između zakupaca eksplicitni? | Odvojen autoritet, kontrole i revizija |
| Mogu li obični akreditivi zaobići izolaciju? | Ne, ili strogo dokumentovana izuzetna putanja |
| Da li su negativni testovi između zakupaca automatizovani? | Da za svaki relevantni sloj pristupa |
Rubni slučajevi i ograničenja
Korisnik može pripadati većem broju tenanata. Trenutni tenant bi stoga trebalo da bude eksplicitni kontekst izvršavanja, a ne da se trajno izvodi iz korisničkog naloga.
Neki resursi se namerno dele između odabranih tenanata, kao što su prostori za saradnju ili podaci konzorcijuma. To zahteva eksplicitni model deljenja; pretvaranje da resurs pripada jednom tenantu i dodavanje izuzetaka kasnije obično stvara dvosmislenu autorizaciju.
Izolacija od bučnih suseda je povezana, ali različita od izolacije poverljivosti. Tenant možda nikada neće videti podatke drugog tenanta, ali i dalje može da iscrpi deljene CPU resurse, kapacitet reda čekanja ili veze sa bazom podataka. Ograničenja brzine i kvote resursa stoga mogu biti svesne tenanta kao granica dostupnosti.
Fizička izolacija nije automatski bezbedna ako akreditivi kontrolne ravni ili administrativne putanje mogu preći granice. Logička izolacija nije automatski slaba ako se politike centralno sprovode, uz najmanje privilegije i temeljno testiranje.
Zahtevi za izolaciju tenanata mogu se razlikovati po klasi podataka. Podaci javnog kataloga, evidencija naplate i privatni AI dokumenti mogu opravdati različite granice skladištenja i enkripcije unutar istog SaaS proizvoda.
Šta bi promenilo ovaj odgovor?
Tačna implementacija se menja u zavisnosti od arhitekture: serverless API-ji, Kubernetes, PostgreSQL, skladištenje objekata, vektorske baze podataka i mehanizmi politika izlažu različite primitive izolacije.
Potrebna snaga se takođe menja u zavisnosti od regulative, ugovora sa klijentima, osetljivosti podataka, modela pretnji i operativnog obima. Neki tenanti mogu opravdati izolovane baze podataka ili infrastrukturu, dok drugi dele zajedničke resurse.
Konceptualna razlika se ne menja: dozvola za izvršavanje operacije nije isto što i dozvola za prelazak granice tenanta.
Povezano kanonsko znanje
S01 je preduslov bezbednosne granice za Enterprise AI Architecture i AI Governance. Kada AI alati, RAG ili agenti rade nad podacima više tenanata, identitet tenanta mora da putuje kroz pretragu, izvršavanje alata, memoriju, keševe i revizorske tragove.
Takođe se direktno povezuje sa Agentic AI: sposobnost alata i dozvola uloge i dalje moraju biti ograničene vlasništvom tenanta pre nego što agent može da čita ili menja poslovne resurse.
Za RAG, izolacija tenanata mora biti sprovedena pre nego što zaštićeni delovi dođu u kontekst modela.
Često postavljana pitanja
RBAC vs izolacija tenanata - često postavljana pitanja
Koja je razlika između RBAC-a i izolacije tenanata?
Da li ADMIN uloga automatski dozvoljava pristup svim tenantima?
Da li je autentifikacija dovoljna za izolaciju tenanata?
Da li tenantId treba čuvati u JWT-u?
Da li mi je potrebna odvojena baza podataka za svaki tenant?
Može li PostgreSQL RLS da zameni filtere tenanata u aplikativnom kodu?
Kako RAG treba da sprovede izolaciju tenanata?
Može li jedan korisnik imati različite uloge u različitim tenantima?
Koji je najbolji test za izolaciju tenanata?
Pojmovnik
Ključni pojmovi bezbednosti više zakupaca
- RBAC
- Kontrola pristupa zasnovana na ulogama: model autorizacije koji povezuje dozvole sa ulogama i dodeljuje korisnike ili subjekte tim ulogama.
- Zakupac
- Korisnik, organizacija, radni prostor ili drugi izolovani logički potrošač deljenog sistema sa više zakupaca.
- Izolacija zakupaca
- Mehanizmi koji sprečavaju jednog zakupca da pristupa, menja ili prima resurse drugog zakupca u deljenom sistemu.
- Autentifikacija
- Provera identiteta korisnika, servisa ili drugog subjekta.
- Dozvola
- Definisana dozvoljena operacija ili sposobnost, kao što su orders.read ili users.write.
- Uloga
- Imenovana grupa dozvola povezana sa odgovornošću ili funkcijom.
- ABAC
- Kontrola pristupa zasnovana na atributima: autorizacija zasnovana na atributima subjekta, resursa, radnje ili okruženja.
- Bezbednost na nivou reda
- Mehanizam politike baze podataka koji ograničava koje redove uloga ili sesija baze podataka može da čita ili menja.
- Pristup između zakupaca
- Svaki put pristupa u kojem subjekat koji deluje u kontekstu jednog zakupca dospeva do resursa koji pripadaju drugom zakupcu.
- Administrator platforme
- Privilegovani operativni identitet sa eksplicitno modelovanim ovlašćenjem koje može da obuhvata više zakupaca.
- Kontekst zakupca
- Verifikovani obim zakupca pod kojim se izvršava trenutni zahtev, posao ili operacija agenta.
Zaključak
RBAC i izolacija zakupaca su komplementarni, a ne konkurentski bezbednosni mehanizmi. RBAC strukturira operativne dozvole; izolacija zakupaca ograničava granicu resursa unutar koje te dozvole mogu da se primenjuju.
Robustan zahtev sa više zakupaca stoga zahteva više od „korisnik ima ulogu ADMIN“. Potreban je verifikovani subjekat, verifikovani kontekst zakupca, dozvoljena operacija, cilj u okviru zakupca i primena na svakom sloju resursa koji može da nosi podatke u vlasništvu zakupca.
Najkraće pouzdano pravilo je: autorizuj radnju, zatim izoluj obim — i nikada ne pretpostavljaj da jedno dokazuje drugo.
Primarni izvori i aktuelne smernice
Izvori navedeni u nastavku podržavaju definiciju RBAC-a i aktuelne smernice za izolaciju zakupaca. Odsek Aaasaasa AI CMS predstavlja originalne dokaze o implementaciji i namerno je ograničen na obrasce koda koji su verifikovani.
NIST — Kontrola pristupa zasnovana na ulogamaNIST pregled RBAC modela i INCITS RBAC standarda, uključujući korisnike, uloge, dozvole, operacije i objekte.
NIST CSRC — RBAC pojmovnikAktuelne NIST definicije kontrole pristupa zasnovane na ulogama kao dodele dozvola putem uloga.
AWS — Način razmišljanja o izolacijiAWS SaaS smernice koje eksplicitno razlikuju autentifikaciju/autorizaciju od izolacije zakupaca i preporučuju deljene mehanizme izolacije.
AWS — Česta pitanja o autorizaciji sa više zakupacaAktuelne smernice koje objašnjavaju razliku između autorizacije i izolacije zakupaca u SaaS aplikacijama.
AWS — Razmatranja dizajna sa više zakupacaAktuelne SaaS smernice koje razlikuju izolaciju zakupaca od autorizacije i razmatraju modele politike autorizacije sa udruženim/izolovanim resursima.
OWASP — Šalabahter za bezbednost aplikacija sa više zakupacaAktuelne praktične smernice za kontekst zakupca, izolaciju baze podataka, keševe, skladištenje, redove, testiranje i sprečavanje pristupa između zakupaca.
OWASP — Šalabahter za bezbednost RAG-aAktuelne smernice koje zahtevaju kontrolu pristupa u trenutku preuzimanja i izolaciju zakupaca za vektorske baze podataka sa više zakupaca.
OWASP — Regresiono testiranje autorizacijeAktuelne smernice za testiranje, uključujući testove degradacije uloga i granica između zakupaca.
Related Articles

MCP vs A2A vs UCP vs AP2 vs A2UI: Objašnjen stek agentskih protokola
MCP, A2A, UCP, AP2 i A2UI se često predstavljaju kao konkurentski standardi za agente. Oni uglavnom rešavaju različite probleme interoperabilnosti. Ovaj vodič mapira svaki protokol na granicu koju zapravo standardizuje—i pokazuje kako oni mogu da rade zajedno u jednom produkcionom sistemu.

Šta bi AI agent trebalo da zapamti, zaboravi, ponovo izračuna ili ponovo preuzme?
Dugotrajni agenti ne bi trebalo da pamte sve. Ovaj članak pruža praktičan model životnog ciklusa za odlučivanje o tome šta pripada trajnoj memoriji, šta bi trebalo ponovo preuzeti, šta je bezbednije ponovo izračunati i šta bi trebalo da istekne ili bude zamenjeno.

Kada bi AI trebalo da prestane da veruje sopstvenom znanju? — Okidač za pretragu
AI model ne zahteva pretragu za svako pitanje. Važan problem je znati kada njegovo interno znanje više nije dovoljno. Okidač za pretragu je praktična granica odlučivanja koja određuje kada AI sistem treba da prestane da se oslanja isključivo na znanje modela i pribavi spoljne dokaze pre odgovaranja.

Suverena AI: Kontrola modela, podataka, infrastrukture i zavisnosti
Suverena AI se odnosi na efektivnu kontrolu nad modelima, podacima, infrastrukturom, softverom, operacijama i strateškim zavisnostima — a ne samo na to gde je AI model hostovan.

Generativna veštačka inteligencija objašnjena: modeli, pretraga, alati i aplikacije nisu ista stvar
Generativna AI je više od modela. Saznajte kako se modeli, pretraga, alati, kontekst, okruženja i aplikacije uklapaju u produkcione AI sisteme.

Izvor istine u AI sistemima: Odakle pouzdano znanje zaista dolazi
Izvor istine definiše koji je izvor merodavan za određenu činjenicu ili stanje. Saznajte kako se razlikuje od RAG-a, porekla, memorije, konteksta, vektorskih baza podataka i sistema evidencije.

Granica valjanosti odgovora: Nedostajući sloj između relevantnosti i pouzdanih AI odgovora
Izvor može biti relevantan, autoritativan i ipak pogrešan za pitanje koje se postavlja. Sloj koji nedostaje je primenljivost: uslovi pod kojima odgovor važi i promene koje ga primoravaju na preispitivanje. Ovaj članak predstavlja Granicu važenja odgovora kao obrazac za dizajn izvora za ljude, AI pretragu i RAG sisteme.

Kako znati da li je AI agent zaista koristio prave dokaze
AI agent može citirati izvore i ipak koristiti pogrešne dokaze. Ovaj članak predstavlja praktičnu metodu za proveru potkrepljenosti tvrdnji, autoriteta izvora, primenjivosti, porekla i toga da li su dokazi zaista uticali na odgovor.

Enterprise AI arhitektura: Šta se menja kada AI uđe u kompaniju
Enterprise AI arhitektura objašnjava kako AI menja korporativne sisteme kroz autoritet podataka, identitet, dozvole, provajdere, rizik, upravljanje, evaluaciju, usklađenost i operacije.

Memorija AI agenta nije RAG: Kako razdvojiti memoriju, pronalaženje, stanje i kontekst
Memorija agenta, RAG, stanje i kontekst često se koriste kao da su međusobno zamenjivi. Oni to nisu. Ovaj praktični arhitektonski model razdvaja ova četiri sloja, pokazuje gde svaki pripada i objašnjava šta se kvari kada ih sistemi stope u jedno.

Frontend i Backend Razvoj
Front-end i back-end razvoj je suštinski deo veb razvoja i obuhvata kreiranje veb aplikacija i veb-sajtova. Front-end razvoj se fokusira na korisnički interfejs, dok je back-end razvoj odgovoran za programiranje i upravljanje serverskom stranom.

MCP objašnjen: Šta povezuje, šta ne radi i gde se uklapa
Model Context Protocol povezuje AI aplikacije sa eksternim alatima, resursima i promptovima kroz standardnu granicu klijent-server. Saznajte šta MCP radi, šta ne radi i gde se uklapa u arhitekturu agenata.