Izolácia tenantov uchováva dáta a operácie každého zákazníka v rámci jeho vlastných hraníc, a to aj vtedy, keď viacero zákazníkov zdieľa rovnakú aplikáciu a infraštruktúru. Táto hranica sa vzťahuje na čítanie, zápis, ako aj na prácu na pozadí, súbory, cache, vyhľadávacie indexy, logy a externé integrácie.
Kde kontext tenanta začína a ako sa prenáša
Systém najskôr odvodzuje kontext tenanta z overenej identity, domény, pozvánky, prihlasovacích údajov služby alebo iného kontrolovaného mapovania. Tento kontext potom musí sprevádzať každú operáciu, ktorá pristupuje k prostriedku vlastnenému tenantom. Prijatie identifikátora tenanta priamo z požiadavky samo osebe nezaručuje vlastníctvo.
Audit softvéru vytvoreného pomocou AI sleduje tento kontext pri prechode dát produktom. Overuje, či synchrónne požiadavky a odložená práca využívajú rovnakú hranicu a či zdieľaná infraštruktúra zachováva oddelenie na každej vrstve.
| Vrstva | Otázka ohľadom izolácie | Dôkazy na kontrolu |
|---|---|---|
| Požiadavka | Ako sa určuje tenant? | Relácia, token, členstvo v účte |
| Aplikácia | Ktoré operácie nesú kontext tenanta? | Rozhrania politík a služieb |
| Úložisko | Ako je obmedzený rozsah záznamov? | Dopyty, kľúče, databázové pravidlá |
| Práca na pozadí | Ktorému tenantovi patrí daná úloha? | Obsah úlohy a kontext workera |
| Zdieľané služby | Môžu cachované alebo indexované dáta preniknúť medzi tenantmi? | Kľúče cache, vyhľadávacie filtre, cesty k súborom |
Bežné spôsoby narušenia hraníc
Úniky dát medzi tenantmi len málokedy vyžadujú, aby celá aplikácia ignorovala izoláciu. Úplne postačuje jedna cesta s neobmedzeným rozsahom. Vyhľadávanie na dashboarde môže byť správne, zatiaľ čo exportná úloha, endpoint pre automatické dopĺňanie alebo sťahovanie súborov používa globálny identifikátor.
Audit hľadá opakujúce sa príčiny:
- Tenant vybraný odosielateľom: Požiadavka poskytuje ID účtu, ktorému server dôveruje bez overenia.
- Vyhľadávanie bez obmedzenia rozsahu: Záznam je načítaný globálne ešte pred overením jeho tenanta.
- Zdieľaný kľúč cache: Výsledky v cache neobsahujú identifikáciu tenanta.
- Odpojená úloha na pozadí: Úloha v rade ukladá ID záznamu, ale stráca kontext tenanta.
- Príliš široké prístupy k službám: Integrácia môže pristupovať ku všetkým tenantom bez lokálnej kontroly pravidiel.
- Prevádzkové obchádzanie: Cesty podpory alebo administrácie používajú odlišné pravidlá izolácie.
Izolácia a autorizácia
Autorizácia rozhoduje o tom, či identita môže vykonať určitú akciu. Izolácia tenantov pridáva povinný rozsah: akcia musí zostať v rámci hranice tenanta danej identity. Používateľ môže mať správnu rolu, no stále môže požiadať o prostriedok iného tenanta, ak systém overuje iba rolu.
Autorizácia na úrovni objektov vynucuje tento vzťah pre jednotlivé prostriedky. Bezpečnosť na úrovni riadkov zasa môže vynútiť rozsah tenanta priamo v relačnej databáze. Ani jedno z toho však nenahrádza širšiu kontrolu súborov, úloh na pozadí, cache, externých volaní a privilegovaných prevádzkových ciest.
Ako audit dokazuje oddelenie
Testy využívajú dvoch tenantov s podobnými dátami, aby sa náhodné globálne dopyty nemohli skryť za prázdny výsledok. Každé citlivé čítanie a zápis sa testuje naprieč touto hranicou. Zamietnuté operácie nesmú pre druhého tenanta vytvoriť žiadne dáta, zmeny, udalosti, záznamy v cache ani úlohy v rade.
Výstup auditu presne definuje, ako sa kontext tenanta vytvára, kde sa šíri a ktoré vrstvy ho vynucujú. Táto mapa je súčasťou kontroly potrebnej pred tým, ako softvér vygenerovaný pomocou AI začne spracovávať reálnych používateľov a dáta. Mení všeobecný prísľub izolácie na konkrétne kontroly prepojené s kódom a infraštruktúrou.