Izolácia tenantov (Tenant Isolation)

Aktualizované

Izolácia tenantov je súbor hraníc, ktoré zabraňujú jednému zákazníkovi alebo organizácii pristupovať k dátam, úlohám a prostriedkom iného tenanta v zdieľanom systéme alebo ich ovplyvňovať. Pri audite softvéru vytvoreného pomocou AI (vibe-coded) sleduje kontext tenanta cez požiadavky, úložiská, úlohy, cache, súbory a externé služby.

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.

VrstvaOtázka ohľadom izolácieDôkazy na kontrolu
PožiadavkaAko sa určuje tenant?Relácia, token, členstvo v účte
AplikáciaKtoré operácie nesú kontext tenanta?Rozhrania politík a služieb
ÚložiskoAko 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žbyMôž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.