Wie mag wat
Applicatiebeheer — deel 19
Maandag, week zes. De vraag die Ravi vrijdag liet liggen komt terug, en het blijkt iets te zijn waar Joost twintig jaar lang bovenop heeft gezeten.
Concepts
Het was maandag, week zes, en de vraag van vrijdag lag op Joosts bureau nog voor de koffie koud was.
Het was het slot waar Ravi het over had gehad. Het wachtwoord lag apart, maar wie er wel en niet bij mocht, dat echte slot, dat moest nog komen. En het zat aan iets groters vast, had Ravi gezegd, iets over wie wat mag in het hele cluster. Joost had het hele weekend geweten dat hij dit kende. Hij had het alleen nog niet bij naam.
Ravi schoof een stoel bij. "Klaar voor het slot van vrijdag?"
"Daar wacht ik op." Joost draaide zijn scherm een kwartslag weg. "Want ik heb het hele weekend het idee gehad dat ik dit al doe. Dat ik dit al twintig jaar doe. Op mijn servers had ik gebruikers. En groepen. En elke gebruiker mocht precies dat wat hij moest, en niet meer. De ene mocht alleen lezen. De andere mocht ook iets aanpassen. En een enkeling mocht alles, maar dat waren er weinig, en die hield ik kort. Ik had een lijst van wie waarvoor de sleutel kreeg. Dat was mijn werk, een groot deel ervan. Niet alleen dat de boel draaide, maar dat alleen de juiste mensen aan de juiste knoppen konden."
"En als iemand iets wilde wat hij niet nodig had?"
"Dan kreeg hij het niet. Het kleinste-rechten-principe, zo noemde ik het in mijn hoofd. Geef iemand precies genoeg om zijn werk te doen, en geen vingerbreed meer. Want elk recht dat iemand had en niet nodig had, dat was een risico. Een gat. Als zo'n te ruim account in verkeerde handen viel, kon er veel meer kapot dan nodig was geweest." Joost haalde zijn schouders op. "Daar heb ik twintig jaar op gelet. Het minste, niet het meeste."
Ravi liet een stilte vallen, en het was een tevreden stilte. "Dan ga ik je iets vertellen wat je gaat bevallen. Want dat principe, het minste en niet het meeste, dat is precies de bedoeling hier. En het is hier hard nodig, want het gaat sneller mis dan je denkt."
"Hoe bedoel je."
"Niet doordat een werklast standaard veel mag. Dat is juist niet zo. Een vers neergezet platform mag van zichzelf zo goed als niks aan het cluster vragen. Het probleem zit ergens anders, op twee plekken." Ravi stak een vinger op. "Eén. Zo'n werklast krijgt automatisch een toegangspasje meegestopt. Een pasje waarmee hij zich bij het cluster kan melden. Hij doet er meestal niks mee, maar het zit wel in zijn binnenzak. En als iemand een lek vindt in het spelplatform en erin komt, dan vist die indringer dat pasje uit de binnenzak en gaat ermee naar de deur." Een tweede vinger. "Twee. Mensen. Iemand die snel klaar wil zijn hangt aan zo'n werklast veel te ruime rechten. Geeft hem voor het gemak de sleutel van alles, omdat dat nou eenmaal sneller werkt dan precies uitzoeken wat hij echt nodig heeft. En dán wordt dat meegestopte pasje ineens gevaarlijk. Want nu opent het pasje van de indringer alles waar die te ruime rechten bij horen. Bij de geheimen van vrijdag, bijvoorbeeld."
"Dus het gevaar is niet dat het ding van zichzelf veel mag," zei Joost langzaam. "Het gevaar is dat er een pasje meegaat, en dat iemand er per ongeluk te veel aan dat pasje hangt."
"Precies dat. Het pasje plus de te ruime hand. Dáár valt het om. En dat is precies het gat waar jij twintig jaar lang op lette."
Joost voelde een kilte. Dat was precies het scenario dat hij zijn hele leven had proberen te voorkomen. Een te ruim account, een lek, en dan een indringer die ineens overal bij kon.
"Dus dat moet je dichttimmeren," zei hij.
"Dat moet je dichttimmeren. En je doet het op precies jouw manier. Je geeft elke werklast alleen wat hij echt nodig heeft. Vaak is dat bijna niks. Het spelplatform hoeft het cluster zelf helemaal niets te vragen. Het speelt spelletjes, het praat met zijn database, en verder bemoeit het zich nergens mee. Dus geef je het ook de bevoegdheid om zich nergens mee te bemoeien. Niks. Het kleinste recht dat er is."
"En dat regelen, wie wat mag, hoe heet dat hier?"
"Dat heet RBAC," zei Ravi. "Het staat voor toegang op basis van rollen, en het komt erop neer wat jij al deed: je legt vast wie welke handeling mag uitvoeren op welk soort ding. Wie mag lezen. Wie mag aanpassen. Wie mag verwijderen. En je koppelt dat aan wie iemand is. Het is je gebruikers-en-groepenlijst, je sudoers, je sleutelbeheer, in één systeem gegoten."
Joost proefde het. RBAC. Wie mag wat. Het was geen nieuw idee onder de zon, het was zijn oudste idee, met een afkorting eraan.
"Maar er is één ding dat hier net iets anders ligt dan bij jou," zei Ravi. "Bij jou waren het meestal mensen die rechten kregen. Gebruikers, mensen met een naam. Hier is het vaak geen mens. Hier is het een werklast die zelf iets aan het cluster wil vragen. Het spelplatform. Een hulpje dat ergens informatie moet ophalen. Die hebben geen mens achter zich. En toch moet je kunnen zeggen wat ze mogen. Dus geef je zo'n werklast een eigen identiteit. Een eigen naambordje, alsof het een werknemer is. En aan dát naambordje hang je de rechten."
"Een eigen identiteit voor een programma," zei Joost.
"Een eigen identiteit voor een werklast. Wij noemen dat een ServiceAccount. Het is het account van een dienst in plaats van van een mens. En het is handig, want nu kun je per werklast zeggen wat hij mag, los van alle andere. Het hulpje dat informatie moet ophalen, dat krijgt zijn eigen naambordje met precies het recht om die informatie te lezen, en verder niks. En het spelplatform krijgt een naambordje waar zo goed als niks aan hangt, want het hoeft niks aan het cluster te vragen."
Joost zat er even mee. Een eigen naambordje voor een programma. Het was vreemd en het was logisch tegelijk. In zijn oude wereld had hij dat ook wel gehad, op zijn eigen manier. Een dienst die onder een eigen, kaal gebruikersaccount draaide, eentje die verder nergens bij mocht, juist zodat een lek in die dienst niet meteen het hele systeem opende. Hij had het alleen nooit zo'n nette naam gegeven.
"Dat deed ik ook," zei hij langzaam. "Een dienst liet ik nooit als de oppermachtige gebruiker draaien. Die kreeg een eigen, kaal account, eentje die bijna niks mocht. Zodat als die dienst gekraakt werd, de schade beperkt bleef tot dat kale account. Niet tot alles."
Ravi knikte, en deze keer klonk er geen plagerij meer in mee. "Je hebt het hele idee al in je vingers. Een eigen identiteit per dienst, en aan die identiteit hang je het kleinste recht dat het werk toelaat. Het verschil is alleen dat het hier in het systeem zit, netjes opgeschreven, in plaats van in jouw hoofd en in een handvol verspreide instellingen. En dat je het kunt nakijken. Je kunt het cluster vragen: mag deze werklast dit eigenlijk wel? En dan krijg je gewoon antwoord. Ja of nee."
Dat laatste raakte iets. Joost herinnerde zich hoe vaak hij in zijn oude leven had moeten gokken of iemands rechten klopten. Uitpluizen, in zijn hoofd narekenen, hopen dat hij niets over het hoofd had gezien. Dat je het hier gewoon kon vrágen, en een eerlijk ja of nee terugkreeg, dat was meer dan netjes. Dat was een gereedschap dat hij altijd had gewild.
Dus regelden ze het. Het spelplatform kreeg zijn eigen naambordje, en aan dat naambordje hingen ze zo goed als geen rechten, want het had niets aan het cluster te vragen. En toen vroegen ze het cluster, voor de zekerheid, of het platform bij de geheimen kon. En het cluster zei nee. Een kale, eerlijke nee. Het mocht niet, dus het kon niet, en als er ooit iemand via een lek in het platform binnenkwam, dan stond hij voor diezelfde dichte deur.
"Dat," zei Joost, en hij leunde achterover, "is het gat van vrijdag, dichtgemaakt."
"Dat is het gat van vrijdag, dichtgemaakt op de manier die jij al kende." Ravi stond op. "Het wachtwoord ligt apart. En nu kan het platform er zelf niet eens bij als het zou willen. Daar zit je echte bescherming, meer dan in welk groot woord ook."
Joost bleef nog even zitten toen Ravi wegliep. Hij dacht aan al die jaren dat hij over wie-wat-mag had gewaakt, vaak zonder dat iemand het zag, vaak met het gevoel dat het ondankbaar werk was waar je pas iets van merkte als het misging. En hier bleek het ineens een vak met een afkorting en een eigen plek in het systeem. Niet iets wat hij moest leren. Iets wat ze van hem hadden kunnen leren.
Yara liep langs met twee bekers koffie en zette er een voor hem neer zonder iets te vragen. Joost knikte haar dankbaar toe, draaide zijn scherm weer recht, en boog zich over het volgende. Op zijn eigen terrein, voor het eerst in weken zonder de vraag of hij er nog wel hoorde.