RBAC naspram izolacije zakupaca: dve različite bezbednosne granice

RBAC kontroliše šta korisnik sme da radi; izolacija zakupaca kontroliše kojim resursima tog zakupca ta radnja može da pristupi. Saznajte zašto bezbednost višekorisničkog SaaS-a zahteva obe granice.
Objavljeno:
Aleksandar Stajić
Ажурирано: 8. октобар 2026. 20:56
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

1
1. Autentifikuj principal
Utvrdi ko je korisnik, servis ili agent.
2
2. Razreši verifikovani kontekst zakupca
Odredi koji kontekst zakupca se primenjuje na osnovu pouzdanih informacija o identitetu/članstvu na strani servera.
3
3. Razreši dozvolu
Proceni da li uloga ili politika principala dozvoljava traženu operaciju.
4
4. Ograniči ciljni resurs
Verifikuj da ciljni objekat pripada dozvoljenom zakupcu ili eksplicitno deljenom opsegu.
5
5. Primeni na granici pristupa
Izvrši operaciju nad bazom podataka, kešom, skladištem, redom ili servisom uz primenjena ograničenja zakupca.
6
6. Revidiraj obe dimenzije
Zabeleži principal, zakupca, operaciju, cilj i rezultat kako bi pokušaji prelaska granica zakupaca bili vidljivi.

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

RBACIzolacija 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

SlojPitanjePrimer neuspeha
AutentifikacijaKo je ovaj principal?Napadač se predstavlja kao Alice
Autorizacija / RBACMože li ovaj principal izvršiti ovu operaciju?Viewer može obrisati korisnike
Izolacija zakupacaMož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živanjeJač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

StrategijaGranicaSnaga / kompromis
Deljene tabele + ključ zakupcaPolitika reda/aplikacijeOperativno efikasno; zahteva iscrpno određivanje opsega zakupca i jake testove
Deljene tabele + RLS baze podatakaGranica politike baze podatakaSmanjuje zavisnost od svakog upita aplikacije; zahteva ispravne uloge, kontekst zakupca sesije/transakcije i pokrivenost politikama
Odvojene šemeGranica imenskog prostora / DB ulogeJača logička razdvojenost; veća operativna složenost
Odvojene baze podatakaGranica baze podataka / akreditivaJaka izolacija i jednostavnija priča o domenu uticaja; veći troškovi obezbeđivanja i operacija
Odvojena infrastruktura/nalogGranica infrastruktureNajjača gruba razdvojenost; najveći trošak i operativni overhead
HibridnoPo radnom opterećenju/klasi podatakaOmoguć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

PrincipalDozvola ulogeOdnos sa zakupcemOdluka
Aliceorders.readPorudžbina pripada Alisinom zakupcuDozvoli
Aliceorders.readPorudžbina pripada drugom zakupcuOdbij
Aliceorders.writePorudžbina pripada Alisinom zakupcuDozvoli ako uloga uključuje pisanje
Aliceorders.writePorudžbina pripada drugom zakupcuOdbij
Platform supportsupport.cross_tenant.readEksplicitni obim podrške + revidirani ciljni zakupacPotencijalno dozvoli pod politikom platforme
Background workerorders.processObim pouzdane usluge za zakupca poslaDozvoli 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 implementacijeBezbednosno značenje
Tipizirani kodovi dozvolaRBAC rečnik operacija je eksplicitan
Sistemska uloga → mape dozvolaUloge agregiraju dozvole umesto hardkodiranja korisnika
tenantId_code identitet ulogeIsta logička uloga može postojati odvojeno po zakupcu
Pretraga uloge koristi id + tenantIdIzmena uloge je ograničena na zakupca
Relacija korisnik-uloga čuva tenantIdČlanstvo se ne izvodi globalno samo iz uloge
Razrešavanje dozvola koristi tenantId + userIdAutorizacija 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 ulogeKorisnik bez dozvole ne može izvršiti operaciju čak ni unutar svog zakupca
Test objekta između zakupacaKorisnik sa ispravnom ulogom i dalje ne može pristupiti istoj vrsti resursa u drugom zakupcu
Krivotvorenje identifikatoraPromena ID-jeva objekata/zakupaca ne prelazi opseg
Test liste/grupnih endpointaŠiroki upiti vraćaju samo autorizovane podatke zakupca
Test ponovne upotrebe kešaDva zakupca koja koriste ponovo upotrebljene procese/veze nikada ne primaju keširano stanje onog drugog
Test RLS uloge zahtevaProdukcijska uloga zahteva ne može zaobići politike redova
Test asinhronog radnikaKontekst zakupca preživljava stavljanje u red i ponovo se validira pri potrošnji
Test vektorske pretrageUpit Zakupca A nikada ne pronalazi delove Zakupca B
Test platformskog administratoraMogućnost između zakupaca je eksplicitna, uska i revizibilna
Test odjavePodaci 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 neuspehaZašto ne uspeva
Provera uloge ali ne i zakupcaValidna uloga postaje autoritet između zakupaca
Verovanje ID-ju zakupca iz zahtevaKlijent kontroliše selektor izolacije
Ograničavanje UI ali ne i API-jaSkrivena dugmad ne štite pozadinske resurse
Endpoint za detalje svestan zakupca, endpoint liste bez opsegaGrupna čitanja otkrivaju druge zakupce
Filter zakupca u većini upitaJedna zaboravljena putanja kvari granicu
Globalni ključevi kešaIspravna izolacija baze podataka se zaobilazi keširanim podacima
Deljeni vektorski indeks bez prinudnih filtera metapodatakaRAG pronalazi delove drugog zakupca
ID zakupca u poruci reda tretiran kao autorizacijaKrivotvoren ili pogrešno proizveden posao može preći granicu zakupca
Platformski administrator modelovan kao običan ADMINMoć između zakupaca postaje implicitna i teška za reviziju
Uloga kopirana globalno kroz članstva u zakupcimaKorisnik dobija dozvole u zakupcima gde nikada nije dodeljen
Odvojene baze podataka ali deljeni privilegovani akreditivAplikacija i dalje može preći baze podataka ako je njen akreditiv preširok
RLS sa BYPASSRLS ulogom zahtevaPolitika baze podataka postoji ali ne štiti stvarnu putanju zahteva
Nasumični UUID-ovi tretirani kao izolacijaTeško pogodivi identifikatori smanjuju nabrajanje ali ne autorizuju pristup

Uobičajene zablude

ZabludaIspravka
„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

1
1. Definišite vlasništvo zakupca
Klasifikujte koji entiteti i resursi su globalni, ograničeni na zakupca, ograničeni na korisnika ili namerno između zakupaca.
2
2. Definišite operacije
Kreirajte eksplicitne dozvole za čitanje, pisanje, objavljivanje, odobravanje, administraciju i druge poslovne akcije.
3
3. Definišite uloge
Grupirajte dozvole prema odgovornostima bez ugrađivanja slučajnog globalnog opsega.
4
4. Definišite opseg članstva
Vežite dodele uloga za kontekst zakupca/radnog prostora/projekta u kojem se primenjuju.
5
5. Razrešite pouzdan kontekst zakupca
Izvedite identitet zakupca iz autentifikovanog, na serveru verifikovanog članstva ili autorizacije servisa.
6
6. Primenite vlasništvo resursa
Primenite opseg zakupca na svakoj granici podataka/usluga u vlasništvu zakupca.
7
7. Dodajte odbranu u dubinu
Koristite RLS, odvojene akreditive, šeme/baze podataka, politike skladištenja ili mašine politika gde rizik to opravdava.
8
8. Prenesite opseg kroz izvedene sisteme
Sačuvajte metapodatke zakupca u kešu, pretrazi, vektorskim indeksima, redovima, fajlovima i analitici.
9
9. Modelujte operacije između zakupaca eksplicitno
Odvojite platformsku administraciju i identitete servisa od običnih uloga zakupca.
10
10. Testirajte obe ose
Pokrenite negativne testove za nedostajuću dozvolu i za pogrešnog zakupca nezavisno.
11
11. Revidirajte zakupca + dozvolu zajedno
Beležite ko je delovao, u kom zakupcu, na kom cilju i pod kojim autoritetom.
12
12. Ponovo testirajte nakon promena šeme/izvršavanja
Izolacija se može pokvariti kada se uvedu nove tabele, keševi, redovi ili putanje pronalaženja.

RBAC + kontrolna lista izolacije zakupaca

PitanjeOč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?

RBAC određuje koje operacije principal može da izvrši. Izolacija tenanata određuje kojim resursima tog tenanta te operacije mogu da pristupe. Bezbedne aplikacije sa više tenanata obično zahtevaju oboje.

Da li ADMIN uloga automatski dozvoljava pristup svim tenantima?

Ne. ADMIN bi trebalo da ima eksplicitni obim. Administrator tenanta obično ima široke dozvole samo unutar tog tenanta, dok administraciju platforme između tenanata treba modelovati odvojeno.

Da li je autentifikacija dovoljna za izolaciju tenanata?

Ne. Autentifikacija dokazuje identitet. Autorizacija kontroliše dozvoljene radnje. Izolacija tenanata dodatno sprečava da te radnje dosegnu resurse pogrešnog tenanta.

Da li tenantId treba čuvati u JWT-u?

Može biti jedan od ulaza u kontekst tenanta, ali server mora da verifikuje trenutno članstvo/ovlašćenje i sprovede obim na granicama zaštićenih resursa. Sam zahtev ne zamenjuje kontrolne mehanizme izolacije.

Da li mi je potrebna odvojena baza podataka za svaki tenant?

Ne nužno. Modeli izolacije sa deljenim tabelama, RLS-om, šemom, bazom podataka, infrastrukturom i hibridni modeli mogu svi biti validni u zavisnosti od rizika i operativnih zahteva.

Može li PostgreSQL RLS da zameni filtere tenanata u aplikativnom kodu?

RLS može da pruži snažnu odbranu u dubinu, ali ispravne uloge baze podataka, kontekst zahteva, pokrivenost politikama i autorizacija na nivou aplikacije i dalje su važni.

Kako RAG treba da sprovede izolaciju tenanata?

Obim tenanta/pristupa treba sprovesti tokom pretrage tako da neovlašćeni delovi nikada ne uđu u kontekst modela. Sačuvajte metapodatke pristupa kroz deljenje na delove i indeksiranje.

Može li jedan korisnik imati različite uloge u različitim tenantima?

Da. To je uobičajeno u B2B SaaS-u i snažan razlog da se dodele uloga ograniče članstvom u tenantu, umesto da se uloge tretiraju kao globalno vezane za korisnika.

Koji je najbolji test za izolaciju tenanata?

Koristite negativne testove između tenanata: kreirajte najmanje dva tenanta, dajte korisniku validne dozvole u jednom tenantu, zatim dokažite da svaka zaštićena putanja odbija pristup resursima drugog tenanta.

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.
Autorizacija
Proces odlučivanja koji utvrđuje da li subjekat može da izvrši traženu operaciju nad resursom.
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 ulogama

NIST pregled RBAC modela i INCITS RBAC standarda, uključujući korisnike, uloge, dozvole, operacije i objekte.

NIST CSRC — RBAC pojmovnik

Aktuelne NIST definicije kontrole pristupa zasnovane na ulogama kao dodele dozvola putem uloga.

AWS — Način razmišljanja o izolaciji

AWS SaaS smernice koje eksplicitno razlikuju autentifikaciju/autorizaciju od izolacije zakupaca i preporučuju deljene mehanizme izolacije.

AWS — Česta pitanja o autorizaciji sa više zakupaca

Aktuelne smernice koje objašnjavaju razliku između autorizacije i izolacije zakupaca u SaaS aplikacijama.

AWS — Razmatranja dizajna sa više zakupaca

Aktuelne 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 zakupaca

Aktuelne 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-a

Aktuelne smernice koje zahtevaju kontrolu pristupa u trenutku preuzimanja i izolaciju zakupaca za vektorske baze podataka sa više zakupaca.

OWASP — Regresiono testiranje autorizacije

Aktuelne 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 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?

Š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

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: 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 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 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

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

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: Š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 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

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

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.