← All posts

Jou rugsteun wek stilweg die gebruikers op wat jy uitgevee het

Authagonal·July 12, 2026
backupstoragesecurity

Elke inkrementele rugsteun maak dieselfde stille aanname: om te rugsteun wat verander het, vind die rye wat verander het. Op 'n sleutelwaarde-stoor soos Azure Table Storage of DynamoDB beteken "wat verander het" "rye waarvan die laasgewysig-tydstempel nuwer is as my laaste watermerk." Stap deur die tabel, gryp alles wat nuwer is, skryf dit uit. Vinnig, goedkoop, korrek.

Korrek vir skryfaksies. Vee nou 'n ry uit.

Die ry kry nie 'n "uitgevee"-vlag nie. Dit kry nie 'n nuwer tydstempel nie. Dit skuif nie na 'n asblik nie. Dit hou eenvoudig op om te bestaan. Hierdie stoorstelsels het geen uitveemerkers en geen veranderingsvoer vir uitvee-aksies nie, so 'n uitgeveede ry laat presies niks agter nie. Jou inkrementele rugsteun, wat veranderinge vind deur vir nuwer tydstempels te skandeer, skandeer reg verby die leë spasie waar die ry was en vind niks. Daar is niks om te vind nie. Die uitvee is onsigbaar.

Wat beteken jou rugsteun bevat steeds die ry. En hier is waar 'n dataverlies-storie in 'n sekuriteitstorie verander.

Dink aan wat 'n uitvee gewoonlik in 'n stawingstelsel beteken. Jy het nie daardie gebruiker vir die pret uitgevee nie. Jy het 'n werknemer uitgefaseer. Jy het 'n rekening verwyder waarvan die wagwoord in 'n uitgelekte databasis opgeduik het. Jy het 'n OAuth-toekenning herroep nadat 'n token uitgelek het. Jy het 'n administrateur se toegang teruggetrek die dag toe hulle vertrek het. Elkeen daarvan is 'n sekuriteitsbesluit, en nie een van hulle oorleef 'n rugsteun wat nie uitvee-aksies kan sien nie.

Dan herstel jy. Miskien ná 'n regte ramp, miskien net na 'n toetskloon. Die rugsteun doen presies wat jy gevra het: dit sit elke ry terug waarvan dit weet. Die uitgefaseerde werknemer is weer 'n gebruiker. Die uitgelekte wagwoord is weer geldig. Die herroepte toekenning werk weer. Die verwyderde administrateur het weer administrateursregte. Jou herstel het nie data verloor nie. Dit het jou sekuriteitsbesluite stilweg omgekeer en jou 'n stelsel gegee wat gesond lyk en in stilte gekompromitteer is. 'n Rugsteun wat 'n uitvee vergeet, is erger as geen rugsteun nie, want jy vertrou dit.

Die oplossing is om op te hou om 'n uitvee as die afwesigheid van 'n ry te hanteer en dit as 'n gebeurtenis te begin hanteer. Uitvee-aksies is data.

Ons gee dus vir uitvee-aksies hul eie tabel. Elke uitvee in die stelsel gaan deur 'n ingespuite ITombstoneWriter wat 'n grafsteen aanteken: die sleutel, en die tyd toe dit gesterf het. Daar is geen kodepad wat 'n ry uitvee sonder om 'n grafsteen agter te laat nie, want die uitvee en die grafsteen is een bewerking. 'n Inkrementele rugsteun is dan twee dele wat by 'n enkele watermerk vasgevang word: die upserts (rye met 'n nuwer tydstempel) en die grafstene (uitvee-aksies sedert die laaste watermerk). Herstel speel albei in tydsvolgorde terug, sodat 'n uitvee net soos 'n skryfaksie toegepas word, en 'n sleutel wat uitgevee en later herskep is, eindig by wat laaste gebeur het. Die leë spasie het uiteindelik 'n rekord daaraan gekoppel.

Dit is die hele truuk, en dit is klein. Die rede waarom dit saak maak, is nie.

Die patroon hier leef langer as Table Storage en DynamoDB. Enige stelsel wat 'n uitvee modelleer as "die ry is weg" kan nie uitvee-aksies rugsteun, repliseer of sinchroniseer nie, want daar is niks om oor te dra nie. Dit duik op in naïewe gebeurtenis-terugspelings wat net skeppings en opdaterings terugspeel. Dit duik op in kasgeheues wat verval maar nooit ongeldig gemaak word nie. Dit duik op in leesreplikas wat wegdryf omdat die uitvee nooit deurgegee is nie. En dit is die gevaarlikste presies waar uitvee-aksies die manier is waarop jy sekuriteit afdwing, wat in 'n identiteitstelsel oral is: herroeping, uitfasering, rotasie, uitsluiting. As jou duursaamheidstorie net die dinge naspoor wat bestaan, sal dit getrou die dinge bewaar wat jy moeite gedoen het om nie te laat bestaan nie.

Oudit dus jou eie rugsteune met een vraag: as ek nou dadelik 'n gebruiker uitvee, 'n rugsteun neem en dit herstel, is daardie gebruiker weg? As die eerlike antwoord "ek is nie seker nie" is, is jou rugsteun 'n tydmasjien wat in die verkeerde rigting wys. Dit beskerm jou nie teen jou foute nie. Dit wek hulle op: die wagwoord wat jy geroteer het, die werknemer wat jy uitgefaseer het, die token wat jy herroep het.

Uitvee-aksies is data. Rugsteun hulle so.

As jy eerder wil hê jou rugsteune moet 'n uitvee eerbiedig sonder dat jy moet bewys dat hulle dit doen, is dit waarvoor 'n platform daar is. Authagonal teken 'n grafsteen aan vir elke uitvee, sodat 'n herstel nooit 'n herroepte geloofsbrief terugbring nie.