Cloudsecurity-basics die developers vaak negeren



Smiling person in layered hair w/eyelashes,gesturing

Zoia Baletska

14 april 2026

ao4lun.webp

Cloudsecurity wordt vaak gepresenteerd als een gedeelde verantwoordelijkheid. In de praktijk vertaalt zich dat meestal naar iets als: “het platform regelt het grootste deel wel”. Precies bij die aanname beginnen de problemen.

Moderne cloudproviders doen hun werk goed als het om infrastructuur gaat — fysieke hardware, netwerklagen en managed services. Maar zodra jij daarbovenop begint te bouwen, verschuift de verantwoordelijkheid razendsnel. Verkeerde configuraties, te ruime rechten en impliciet vertrouwen tussen services horen nog altijd bij de meest voorkomende oorzaken van incidenten.

Het interessante is dat die problemen zelden voortkomen uit een gebrek aan tools. Ze komen voort uit kleine beslissingen tijdens de ontwikkeling die op dat moment niet riskant lijken.

Identity: meer dan alleen inloggen

De meeste teams denken bij identity aan het authenticeren van gebruikers. OAuth-flows, JWT's, loginproviders — dat is meestal prima geregeld.

Wat minder aandacht krijgt, is service identity.

In een cloudomgeving praten services voortdurend met elkaar. API's roepen andere API's aan, achtergrondjobs benaderen databases, functies zetten vervolgprocessen in gang. Elk van die interacties vraagt om rechten, en die rechten zijn vaak ruimer dan nodig.

Een veelvoorkomend patroon ziet er zo uit:

  • één service account gedeeld door meerdere services

  • rechten toegekend “voor het geval dat”

  • langlevende credentials in environment variables

Het werkt, tot het niet meer werkt. Gaat er iets mis, dan wordt die gedeelde identity een breed aanvalsoppervlak. In plaats van dat het probleem ingedamd blijft, verspreidt het zich over meerdere delen van het systeem.

Steviger is het om services te behandelen zoals je gebruikers behandelt:

  • elke service krijgt zijn eigen identity

  • rechten worden beperkt tot wat werkelijk nodig is

  • credentials zijn kortlevend en roteren automatisch

Dat kost vooraf wat werk, maar het verdient zich snel terug zodra systemen groeien.

Het probleem met “heel even, deze ene uitzondering”

Securityproblemen beginnen vaak met uitzonderingen.

Een tijdelijke regel om de ontwikkeling vlot te trekken. Een snelle rechtenwijziging om een falende deploy te repareren. Een publiek endpoint dat opengezet werd om te testen en nooit meer dichtging.

Op zichzelf lijkt geen van die beslissingen kritiek. Maar ze stapelen zich op.

Na verloop van tijd zit je met:

  • firewallregels die niemand nog helemaal doorziet

  • publieke resources die privé hadden moeten zijn

  • rechten die zijn uitgedeeld zonder duidelijke eigenaar

In cloudomgevingen speelt dit extra sterk, omdat wijzigingen makkelijk te maken zijn — en net zo makkelijk te vergeten.

De uitdaging is niet om uitzonderingen volledig te vermijden. Het is om ze zichtbaar en terugdraaibaar te maken.

Dat betekent meestal:

  • wijzigingen vastleggen via infrastructure as code

  • rechten nalopen als vast onderdeel van je werkwijze

  • periodiek controleren wat er daadwerkelijk openstaat

Zonder dat drijft het systeem weg van zijn oorspronkelijke ontwerp.

Secrets: nog altijd een van de zwakste schakels

Ondanks alle verbeteringen in cloudtooling blijft secrets management een van de kwetsbaarste onderdelen. Credentials belanden nog steeds op plekken waar ze niet horen:

  • hardcoded in de broncode

  • opgeslagen in gewone environment variables

  • gedeeld tussen services

  • gekopieerd naar CI/CD-pipelines

Het probleem is niet alleen blootstelling. Het is ook de levensduur. Secrets blijven vaak veel langer bestaan dan bedoeld. API-keys die tijdens de ontwikkeling zijn aangemaakt, zijn maanden later nog actief. Databasecredentials roteren zelden. Oude tokens blijven geldig, ook na een systeemwijziging.

Moderne cloudplatformen bieden hier speciale tools voor — secret managers, toegang op basis van identity, automatische rotatie. Maar ze consequent gebruiken vraagt discipline.

Een goede basis ziet er zo uit:

  • geen secrets in je repositories

  • centrale opslag van secrets

  • toegang geregeld via identity, niet via gedeelde keys

  • regelmatig roteren en opruimen

Het is niet ingewikkeld, maar het is makkelijk over het hoofd te zien als je snel gaat.

Standaard publiek (ook als je dat niet zo bedoelde)

Een van de subtielere risico's in cloudsystemen is onbedoelde blootstelling.

Storage buckets, API's, databases — veel daarvan zet je met één configuratiewijziging open. Soms met opzet. Soms door een standaardinstelling of een snelle ingreep tijdens het debuggen.

Het probleem is dat iets wat eenmaal openstaat, meestal open blijft staan.

Developers kijken zelden opnieuw naar toegangsinstellingen, tenzij er iets stukgaat. En anders dan bij prestatieproblemen geven verkeerde securityinstellingen niet altijd meteen symptomen.

Een bruikbare gewoonte: ga ervan uit dat alles wat publiek staat vroeg of laat gevonden wordt. Dat betekent niet dat je publieke endpoints moet mijden, maar wel dat je er bewust over moet zijn.

In plaats van:

“Het werkt, dus het is prima”

wordt de vraag:

“Zou dit überhaupt vanaf het internet bereikbaar moeten zijn?”

Loggen zonder na te denken over data

Loggen is onmisbaar voor debuggen en observability. Maar het kan net zo goed een lek van gevoelige gegevens worden. Het is verrassend makkelijk om dingen te loggen als:

  • tokens van gebruikers

  • persoonsgegevens

  • request payloads met gevoelige velden

  • interne systeemdetails

Die logs belanden vaak in centrale systemen waar meer mensen bij kunnen dan je denkt. Wat begon als hulpmiddel bij het debuggen, wordt zo een securityrisico. De oplossing is niet minder loggen, maar bewuster loggen:

  • log gevoelige velden niet standaard mee

  • maskeer of verwijder gegevens waar dat nodig is

  • regel wie er bij je logsystemen kan

  • leg bewaartermijnen vast

Logs horen je te helpen je systeem te begrijpen — niet om het bloot te leggen.

CI/CD-pipelines: een stil aanvalsoppervlak

Pipelines worden vaak als interne tooling gezien, maar ze hebben forse toegang tot je systemen.

Ze kunnen:

  • infrastructuur uitrollen

  • bij secrets

  • productieomgevingen wijzigen

Zijn de credentials van je pipeline te ruim of slecht beheerd, dan wordt het een aantrekkelijk doelwit. Veelvoorkomende problemen:

  • langlevende tokens opgeslagen in je CI-systeem

  • brede rechten over meerdere omgevingen

  • geen scheiding tussen staging en productie

Behandel je pipelines als onderdeel van je securitygrens, dan richt je ze anders in. Rechten kunnen per omgeving worden afgebakend, credentials kunnen kortlevend zijn en toegang kan aan specifieke workflows worden gekoppeld.

Security hoort bij ontwikkelen, niet in een aparte fase

Een van de redenen dat deze problemen blijven bestaan, is dat security vaak als iets voor later wordt behandeld. Een review vóór de release. Een checklist vóór productie. Een apart team dat de problemen eruit moet vissen.

In cloudomgevingen houdt dat model geen stand. Systemen veranderen te snel, en kleine configuratiebeslissingen hebben grote gevolgen. Het werkt beter om security in het dagelijkse ontwikkelwerk te weven:

  • rechten definiëren naast je infrastructuur

  • toegang meenemen in je code reviews

  • verkeerde configuraties behandelen als bugs, niet als uitzonderingen

Daar heb je geen diepgaande securityexpertise voor nodig. Wel het besef van hoe kleine beslissingen het systeem op termijn vormgeven.

Het grotere plaatje

Cloudplatformen hebben het makkelijker dan ooit gemaakt om systemen te bouwen en te laten groeien. Ze hebben het ook makkelijker gemaakt om risico binnen te halen via configuratie, toegang en stilzwijgende aannames.

De meeste securityproblemen komen niet voort uit ingewikkelde aanvallen. Ze komen voort uit simpele dingen die over het hoofd zijn gezien of vooruitgeschoven.

  • een recht dat te ruim was

  • een secret dat nooit geroteerd is

  • een service die meer vertrouwd wordt dan zou moeten

  • een resource die per ongeluk openstond

Stuk voor stuk lijken die beslissingen klein. Samen bepalen ze hoe veilig je systeem werkelijk is.

Developers hoeven geen securityspecialist te worden om hier goed mee om te gaan. Maar ze moeten wel doorhebben dat architectuurbeslissingen en securitybeslissingen in de cloud vaak precies hetzelfde zijn.

En hoe eerder je die beslissingen bewust neemt, hoe makkelijker de rest wordt.

no image placeholder

Alles of Niets, Katapulteer naar de Cloud