Gedeelde tenancy is een belofte over code die je niet kunt lezen. Elke klant van email.eu krijgt een eigen drive-exemplaar, met een eigen database en een eigen opslagbucket. Wat dat je koopt, wat het ons kost, en de toegangshaak die de juiste plek bleek voor elke rechtenbeslissing.
"Multi-tenant" is het woord voor honderden bedrijven die één systeem delen, van elkaar gescheiden door een kolom in een database die zegt bij welk bedrijf elke regel hoort. Zo is de meeste software die je gebruikt gebouwd, en het werkt, tot precies het moment dat een zoekopdracht ergens vergeet op die kolom te filteren.
Dat kun je van buitenaf niet nakijken. Je vertrouwt erop dat elke zoekopdracht, in elke functie, geschreven door elke ontwikkelaar die daar ooit heeft gewerkt, eraan gedacht heeft. De eerlijke samenvatting van beveiliging bij gedeelde tenancy is dat het een belofte is over code die je niet kunt lezen.
Onze drive is niet zo gebouwd. Elke klant krijgt zijn eigen.
Bij het aanmaken van je werkomgeving zetten wij een volledige drive voor je op. Je eigen exemplaar van de software, op je eigen adres, met een eigen database en een eigen opslagbucket.
Niet je eigen regel in onze database. Je eigen database. Niet een map in een gedeelde bucket. Je eigen bucket.
De vraag "kan het bestand van een andere klant bij ons zichtbaar worden, of het onze bij hen" heeft dus een structureel antwoord in plaats van een procedureel. Er is geen zoekopdracht die bestanden van een ander bedrijf kan teruggeven, want de bestanden van dat andere bedrijf staan niet in de opslag waarin gezocht wordt. Isolatie is geen filter dat elke keer goed moet worden toegepast. Het is de vorm van het systeem.
Beperkte schade. Een probleem dat beperkt is tot één exemplaar is beperkt tot één klant. Niet een soort probleem dat per constructie iedereen tegelijk raakt.
Verwijderen dat verwijderen betekent. Ga je weg, dan wordt je drive afgebroken: exemplaar, database, bucket. Er blijft geen gearchiveerd restant van je bestanden in een gedeelde opslag staan te wachten op een bewaarbeleid dat misschien wel of niet wordt nageleefd. Die belofte werkt alleen omdat de isolatie echt is.
Eerlijke antwoorden bij een audit. Vraagt een klant van jou waar zijn data staat en wie er nog bij kan, dan kun je specifiek antwoorden in plaats van een compliancedocument van een leverancier door te sturen.
De prijs, en die horen we te noemen, is dat dit duurder is om te beheren dan één groot gedeeld systeem. Meer exemplaren, meer databases, meer bewegende delen. We hebben er toch voor gekozen, want het alternatief is jou vragen code te vertrouwen die je niet kunt zien, en dat is precies het vertrouwen dat onze hele aanpak bestaat om niet te hoeven vragen.
Hier is een ontwerpdetail dat interessanter is dan het klinkt.
De drivesoftware heeft geen ingebouwde manier om een harde opslaglimiet per gebruiker af te dwingen. Veel systemen zijn zo: ze laten je gebruik zien, en ze houden niemand tegen. Dat is een probleem als opslag deel is van wat een abonnement koopt.
Dus vraagt elk exemplaar het aan ons. Elke keer dat iemand de drive opent of een bestand uploadt, belt het exemplaar terug naar onze beheeromgeving met "deze persoon, deze werkomgeving, mag dat?" en antwoorden wij ja of nee. Die ene haak bleek de juiste plek voor elke toegangsbeslissing, niet alleen voor opslag:
Dat alles op één plek beantwoorden betekent dat toegangscontrole leeft in het systeem dat de waarheid over leden, abonnementen en betalingen echt kent, in plaats van dat het naar elk product gekopieerd wordt en gaat afwijken.
Er zit een subtiliteit in die we bij de tweede lezing van de documentatie goed hebben gedaan, en het is het soort ding dat bepaalt of een systeem onder druk te vertrouwen is. Willen we toegang weigeren, dan moeten we duidelijk "nee" antwoorden. Zouden we in plaats daarvan een foutmelding teruggeven, dan behandelt de drive de hele controle als kapot en krijgt de gebruiker een foutpagina. Een weigering en een storing zijn verschillende gebeurtenissen en moeten er verschillend uitzien, anders wordt elke hik in onze beheeromgeving een storing voor jou. Dus een weigering is een expliciet, netjes gevormd nee, en foutmeldingen zijn voorbehouden aan dingen die werkelijk fout zijn.
Het quotum is een pool voor de werkomgeving, op maat van hoeveel mensen je hebt. Op Starter is dat 100 GB per persoon, op Business 2 TB per persoon, en het dekt mail en bestanden samen.
Pool in plaats van per persoon is opzet. In elk echt bedrijf is het gebruik van opslag wild ongelijk: de ontwerper heeft 400 GB aan materiaal en de verkoopleider 4 GB aan pdf's. Een strikte kooi per persoon betekent dat de ontwerper vastzit terwijl het grootste deel van wat je betaalde ongebruikt blijft. Poolen betekent dat je voor het bedrijf koopt en het bedrijf het verdeelt, en zo wordt het ook echt gebruikt.
Bestanden synchroniseren, zijn te delen via een link, en openen in een echte editor om samen aan documenten en spreadsheets te werken. Het spreekt standaardprotocollen, dus je kunt er vanuit de verkenner van je computer bij en alles eruit halen wanneer je wilt, en dat is het meeneembaarheidsprincipe toegepast op bestanden.
De software eronder is La Suite Drive, de opensource-drive die door de Franse overheid is gebouwd, die wij draaien en waaraan we bijdragen. We hebben eerder geschreven over waarom we op dat ecosysteem bouwen in plaats van zelf van nul te beginnen.
Eén grens is het benoemen waard: bestanden zijn versleuteld in de opslag, maar niet op een manier die ze onleesbaar maakt voor ons, anders dan bij versleuteling van je postbus in ruste, waar jij de sleutel hebt. Is een bestand gevoelig genoeg dat geen enkele beheerder het mag kunnen lezen, versleutel het dan voordat het erin gaat. We vertellen je die grens liever dan je een sterkere te laten aannemen.
Drive zit in elk abonnement, met de pool op maat van je abonnement.