Category Archives: Security

De business logica van een IT afdeling

Al jaren doe ik werk voor IT afdelingen van bedrijven, in voorkomende gevallen zelfs IT organisaties genoemd. Soms als interne collega maar meestal als externe consultant. Als mij jaren geleden gevraagd was wat IT afdelingen doen, dan had ik waarschijnlijk gezegd “Die doen IT”. Inmiddels weet ik beter, ik heb eens goed nagedacht over deze overduidelijk simpele vraag en het resultaat wil ik graag met jullie delen. Het beantwoorden van een overduidelijk simpele vraag geeft soms toch bijzondere inzichten.

Het resultaat was voor mij erg verhelderend. Ik begrijp nu de vier hoofdtaken van IT afdelingen; “Maintenance” – het beschikbaar houden van bestaande functies, “Projects” – het verwerven van nieuwe functies, “What’s on the Radar” – welke ontwikkelingen worden belangrijk en “Decommisioning” – het afvoeren van verouderde technologie, systemen en applicaties. Dit is dan ook wat alle IT afdelingen gemeenschappelijk hebben. In zekere zin lijken ze dus op elkaar, in ieder geval qua generieke uitdaging. Maar hoe omschrijf je dan het nut van IT afdelingen voor de organisatie?

Acceleration

Ja, wat doet een IT afdeling voor het bedrijf waar zij deel van uit maakt? En dan met name vanuit een business perspectief gezien? Aanvankelijk was mijn eerste serieuze suggestie, “De IT afdeling ondersteunt de business”. Vluchtig bekeken lijkt dat zinvol, maar “Ondersteunen” is wel passief. Mijn tweede gedachte was daarom ook “De IT afdeling versnelt de business”. Dat was veel beter, want het geeft aan waar het nut van de afdeling zit.

Ik heb eerder geschreven over versnelling, dus deze gedachte is geen grote verrassing. Maar overweeg het omgekeerde, stel dat de IT afdeling de business vertraagt, zou de organisatie er dan wel geld aan willen uitgeven? Zeg nu zelf, dat doet geen enkele organisatie. Dan gaat het dus om versnelling. En dan met versnellen bedoel ik dan dingen sneller doen, ze beter doen, tegen lagere kosten, minder complexiteit en met minder fouten. Dat is toch wel wat organisaties van IT verwachten? Gecombineerd met de vier generieke taken van de IT afdeling, ontstaat er het volgende beeld.

Maintenance

Het overgrote deel van de inspanning van een IT afdeling betreft “Maintenance”. Het beschikbaar houden van bestaande functionaliteiten. Er wordt geen nieuwe functionaliteit geïntroduceerd, maar men behoudt wat er is. Vergelijk het met onderhoud aan een auto. Je verwacht dat na het onderhoud alles weer optimaal functioneert, maar niet dat er ineens een autoradio is toegevoegd. Deze “Maintenance” functie van de IT afdeling doet ze liefst zo efficiënt en kosteneffectief mogelijk. Er wordt tenslotte niets nieuws gemaakt. Je zou dit kunnen vergelijken met het behouden van een bepaald niveau, een plafond zo je wil. Het “Plafond” is het maximaal haalbare, je kan het alleen slechter doen. Daarom is de kern bij “Maintenance”, “Efficiëntie”.

Projects

Een andere belangrijke taak van een IT afdeling is in mijn ogen “Projects”. Nieuwe functionaliteit wordt namelijk in projecten gerealiseerd. Dus waar het bij “Maintenance” gaat om het bereiken van het “Plafond” (en het dus om “Efficiëntie” draait), gaat het hier om het verhogen van het “Plafond” en de kern is dan “Effectiviteit”. Waarom? Nou, natuurlijk willen we projecten graag op tijd en binnen budget afgerond hebben, maar als ze geen waarde toevoegen (ze de organisatie niet versnellen), dan is het alsnog verspilde moeite. Bijvoorbeeld, een project dat later dan afgesproken wordt opgeleverd en misschien duurder was dan gebudgetteerd, maar wel de organisatie versneld, heeft toch waarde. “Effectiviteit” is daarom belangrijker dan “Efficientie”. In het voorbeeld van de auto zou je bijvoorbeeld kunnen denken aan het monteren van een trekhaak. Dat heeft niets met onderhoud te maken maar realiseert een nieuwe functie – het kunnen trekken van een aanhanger.

On the Radar

De derde functie van een IT afdeling is wat ik “What’s on the Horizon” of “What’s on the Radar” noem. Dat zijn onderwerpen waar de IT afdeling in de toekomst mogelijk iets mee moet. Dat kunnen nieuwe technologieën zijn, bedrijfsveranderingen zoals overnames of veranderende wet- en regelgeving. Deze taak kent twee uitdagingen. De eerste is, kunnen we succesvol vaststellen of een onderwerp belangrijk wordt voor de organisatie? We kunnen bijvoorbeeld denken dat een onderwerp belangrijk gaat worden, maar achteraf gezien is dat niet het geval (type 1 error), of we denken dat een onderwerp niet belangrijk is, maar achteraf gezien is dat toch wel zo (type 2 error). Als we deze twee soorten fouten hebben kunnen voorkomen, dan hebben we nog een volgende “Hobbel” te nemen.

Deze “Hobbel” is wat de Eisenhouwer Matrix genoemd wordt. Deze matrix kent twee dimensies, “Belangrijk” versus “Urgentie”. Dit leidt dan tot 4 combinaties. Is een onderwerp eenmaal relevant bevonden (dus geen type 1 of een type 2 error), is de vraag of we die op de roadmap kunnen krijgen? Meestal krijgen onderwerpen die urgentie hebben voorrang, ongeacht of ze belangrijk zijn. Onderwerpen die geen urgentie hebben, maar wel belangrijk zijn worden uitgesteld. In het voorbeeld van de auto zien we bijvoorbeeld aankomen dat elektrisch rijden de toekomst is. We willen ons daarop voorbereiden. Zo kunnen we dan besluiten alvast laadpalen te plaatsten nog voordat iedereen elektrisch rijdt. Dat is belangrijk. Wachten we tot de elektrische auto’s rond rijden, dan zijn we te laat met het plaatsen van de laadpalen.

Deze “On the Radar” functie van de IT afdeling is erg lastig uit te voeren vanwege de genoemde uitdagingen. De kern is “Relevantie”. Het correct bepalen van relevante onderwerpen is de sleutel tot succes.

Decommisioning

De laatste functie bij een IT afdeling is “Decommisioning” van oude technologie en applicaties. Waarom is dit een belangrijke functie? Oude technologie en applicaties vragen veel onderhoudswerk en vragen dus een onevenredig groot deel van het budget. Bovendien heeft oude / verouderde technologie vaak security issues die veel werk vragen en afbreukrisico kennen. Het is daarom verstandig oude technologie af te voeren zodra dat kan. Niet te vroeg, want dat schaad de organisatie, maar zeker ook niet te laat. Kortom, de kern van deze functie is dan ook “tijdigheid”. In het voorbeeld van de auto kunnen we denken aan het afvoeren (verkopen) van een brandstof auto omdat elektrisch rijden de toekomst heeft.

Als je dit leest vraag je je waarschijnlijk af hoe deze vier functies zich tot elkaar verhouden voor wat betreft het percentage inspanning. Dat vroeg ik me ook af. Grok heeft me hier even geholpen, 

- onderhoud 55% tot 70%,
- projecten 15% tot 25%,
- on the Radar 10% tot 20% en het
- afvoeren van oude technologie 3% tot 10%

Hier zie je overigens gelijk nog een reden waarom het bij "Maintenance" om "Efficientie" gaat. Het is verreweg de functie die de meeste inspanning vergt. Een efficientieslag hier levert het meeste op.

In de praktijk zal “Decommisioning” een project zijn, of onderdeel zijn van een groter project. Als een applicatie bijvoorbeeld vervangen wordt, is het logisch het afvoeren van de oude applicatie daar als laatste stap aan toe te voegen.

“Maintenance” legt “Projects” beperkingen op

Nu de basisfuncties van de IT afdeling geïdentificeerd zijn, kunnen we het model “Testen”. Kunnen we er wat mee? Geeft het ons inzicht? Het eerste dat opvalt is dat de resultaten van de projecten eindigen bij “Maintenance”. Dus, hoe sneller / succesvoller we projectresultaten opleveren, hoe meer onderhoudswerk er te doen is. Dus gaat er meer budget naar “Maintenance”. En als gevolg hiervan kunnen we dan weer minder projecten doen. Er is dus een negatieve feedback loop tussen “Maintenance” en “Projects”. Dat is een interessant inzicht.

De vier hoofdtaken kennen een soort "Flow". Items "On the Radar" worden een keer een project. Het resultaat daarvan komt bij "Maintenance" terecht en na verloop van jaren worden die opgeruimd ("Decommissioning"). Feitelijk is dit een "Product Life Cycle".

Budget invloeden

Veel IT afdelingen hebben tegenwoordig te maken met budgetbeperkingen. Soms worden budgetten “Bevroren” of zelfs kleiner. Het is dan de vraag hoe kan er dan ruimte gemaakt worden voor projecten – want het versnellen van de business blijft nodig. Ik zie hier een paar mogelijkheden.


De eerste optie is het budget toch opgehoogd te krijgen. Soms lukt dat, als de business case goed is of wanneer het zakelijk belang dermate groot is dat het verantwoord is.

Een alternatief is bijvoorbeeld projecten te schrappen of later uit te voeren. Dit is een relatief makkelijk oplossing waarvoor vaak gekozen wordt. Het probleem hiermee is, we versnellen de organisatie niet. Dat gaat maar een tijdje goed. Maar zodra we een concurrentie achterstand gaan ervaren, zijn we te laat. Het is dan ook een tijdelijke oplossing. Er is nog een factor die dit onderstreept. Beheercontracten zijn altijd langerlopende contracten. Deze zijn lastig of niet voortijdige te beëindigen. Dat is waarom als eerste op projecten bezuinigd wordt.


Een andere en logische optie is “Maintenance” efficiënter uit te voeren. Dit maakt budget vrij voor projecten. Dit is daarom de onderbouwing waarom de “Efficiëncy” de kern is van “Maintenance”. IT-onderwerpen die betrekking hebben op efficiëntieverbeteringen, betreffen daarom altijd de onderhoudsfunctie van de IT afdeling.


Als laatste mogelijkheid zie ik het afvoeren van oude technologie, applicaties en technische schuld (“Decommisioning”). Dit verlaagd de onderhoudsinspanning en dus het beslag op het budget.

DevOps?

Veel bedrijven werken vandaag volgens de DevOps aanpak waarbij het team zowel verantwoordelijk is voor software development als het beheer ervan. Dit wordt ook wel aangeduid als "You build it, you run it". Is dit dan strijdig met wat hierboven beschreven is? Nee, het zijn twee taken die bij hetzelde team belegd zijn. Het development werk is feitelijk een doorlopend project, of meerdere kleine projecten (we noemen dit vaak "Sprints"). Voor het beheerwerk ("Maintenance") geldt ook hier dat het zo efficient mogelijk gedaan moet worden. Beheerwerk gaat letterlijk ten kosten van development uren. Een groot voordeel van DevOps is dat dezelfde mensen de beheer consquenties voelen van hun development werk. DevOps vergroot dan ook de kans op slim software ontwikkelen met een minimale beheer impact. En dat is wenselijk.

En security dan?

Kan dit model ons helpen inzicht te krijgen in het onderwerp security? De meeste security onderwerpen hebben betrekking op “Maintenance”. Want zowel de inspanning om de security op peil te houden, maar ook veel van de werkzaamheden als gevolg van security incidenten doen een beroep op (het budget van) “Maintenance”. Security is daarom voornamelijk een “Maintenance” aangelegenheid. Er is wel een uitzondering. Want wat zou security in projecten kunnen zijn? Dan heb je het over “Secure by design”. En dat is slim omdat het security level, na oplevering (en dus tijdens “Maintenance”) makkelijker op peil te houden is. Minder werk en dus minder kosten. Het heeft daarom zeker nut security als specifiek onderwerp in een project mee te nemen. Hetzelfde geldt voor “Decommisioning”. Waarom ontwerpen we systemen in de projectfase niet zo dat zij met minimale inspanning afgevoerd kunnen worden. Een soort exit strategie van de applicatie.

Technical Debt

Ik heb vaak bij klanten gezien dat verouderde applicaties en technologie problemen gaven. Er moest extra veel tijd in “maintenance” gestoken worden en soms kon de applicatie zelfs niet meer goed onderhouden worden. Dat kwam bijvoorbeeld doordat upgrades onmogelijk geworden waren. Dat laatste is een bron van security problemen. Kortom, technische schuld geeft ellende, vertraagt en doet een te groot beslag op het budget. De vraag is dan natuurlijk, hoe voorkom ik dat ik vandaag de technische schuld van morgen creëer? En net als bij security ligt het antwoord bij de projecten die je doet. Kan je projecten (en technisch ontwerpen) zo maken dat je toekomstige technische schuld – by design – beperkt? Ik denk het wel. Bijvoorbeeld door alle handmatige werkzaamheden te voorkomen en door de onderhoudbaarheid van applicaties als ontwerpcriterium mee te nemen.

Een goede “Design” vraag is dan ook, kan mijn applicatie onderhouden worden als ik die straks opgelever? En wat hebben mijn collega’s dan nodig om dat efficiënt te kunnen doen? En dat betekent vandaag nadenken over de onderhouds uitdagingen van morgen. Ik kan je verzekeren dat die te maken hebben met efficiëntie.

De overduidelijk simpele vraag

Als je nog steeds leest dan hoop ik dat het beantwoorden van deze overduidelijk simpele vraag ook voor jou verhelderend is. Voor mij is de (business) werking van een IT afdeling nu veel logischer. Ik begrijp nu hoe en waarom groepen van werkzaamheden zijn zoals die zijn en hoe ze elkaar beïnvloeden. Dat we een “Product Life Cycle” achtige “Flow” zien in de taken. Met een paar voorbeelden heb ik geprobeerd het model te “Toetsen” zo je wil. Door te zien of het ons inzicht verschaft en dat doet het naar mijn idee. Er zijn vast meer voorbeelden te bedenken. Het model staat, doe er je voordeel mee.

Het pad naar Digital Sovereignty

Een van de onderwerpen waarover ik de laatste tijd veel nadenk is “Digital Sovereignty”. Het afgelopen jaar is er veel veranderd in het geopolitieke speelveld, ik denk dan aan de Amerikaanse politiek, de verhouding van het westen met China en de oorlog in Oekraïne. Inmiddels is dit onderwerp bij de IT consultancy bedrijven aan beland, onze klanten vragen hiernaar.

Het onderwerp “Digital Sovereignty” lijkt een veelkoppig monster omdat je er verschillende perspectieven op kan hebben. Je kan het benaderen vanuit een bedrijfsvoering perspectief, namelijk kan ik mijn bedrijf operationeel houden? Je kan ook focus hebben op de data, waar verblijft deze? Of je kijkt naar de geldende wetgeving, is de Amerikaanse Patriot act van kracht, of is de Europese wetgeving leidend? Als laatste is er het technische perspectief, welke technische maatregelen kan of moet ik treffen? Na studie (o.a. het AWS perspectief middels een online cursus), discussie met klanten en collega’s, cloud leveranciers white papers en – niet geheel onbelangrijk – er goed over nadenken, is het volgende mijn kijk op de zaak.

Eerst studeren dan maar

De externe bronnen die ik als eerste heb geraadpleegd zijn bijvoorbeeld Gartner, wat is hun kijk op deze materie. Maar ook AWS, Microsoft en Oracle hebben aanbod op dit onderwerp. Erg nuttig vond ik zelf informatie van de Europese Commissie zelf. Zo kan je online het “Cloud Sovereignty Framework” document vinden met daarin verschillende perspectieven op dit onderwerp. Zo kijkt zij naar de “Sovereignty Objectives”, de “Sovereignty Effective Assurance Levels” en “Assessment of Sovereignty Effectiveness”. Als laatste biedt zij een rekenmodel voor een “Sovereignty Score”. Dit laatste heeft vooral betrekking op aanbestedingen.

Voor mijzelf is het technisch / IT perspectief interessanter. Wat kunnen  / moeten we doen voor onze digitale soevereiniteit? En als je er goed over nadenkt, dan hebben die maatregelen veel weg van de maatregelen die we treffen bij security-onderwerpen. Die moet ik als cloud architect (of security architect) vaak meenemen in ontwerpen en adviezen. Het gaat dan om het mitigeren van (security) risico’s. In dit geval risico’s van geopolitieke aard, maar ook die leiden tot technische maatregelen. Dus is het dan gewoon “Risk management”?

Centraal bij security risico’s is dat je als bedrijf “In control” blijft. In control van wie er toegang hebben tot data, in control van wie er gebruik maken van ons netwerk en zo verder. Waarom wil je als bedrijf “In control” zijn? Dat is om zeker te kunnen stellen dat de bedrijfsvoering doorgang kan vinden. De bedrijfsvoering vraagt (vaak) dat de IT weerstand kan bieden aan verstoringen van welke aard dan ook (“Resilience”). Daarbij wil een bedrijf of organisatie in staat blijven veranderingen in de IT aan te kunnen brengen, bijvoorbeeld als de bedrijfsvoering daarom vraagt, of wanneer wet- en regelgeving verandert.

IT capabilities

Vanuit een IT architectuur bezien gaat het wat mij betreft vooral over “IT Capabilities” – kennis, kunde en verworvenheden. Als de “IT capabilities” toenemen, is men steeds beter in staat verstoringen te weerstaan en keuzes te maken die bij de bedrijfsontwikkeling passen. Op welke zaken heeft dit dan betrekking? Wat mij betreft zie ik (minimaal) de volgende onderwerpen waarbij je “In control” moet blijven:

  • software development
  • security
  • scalability
  • availability
  • licenses
  • hardware
  • (geo) locatie van data en
  • vendoren

Ik zie eigenlijk een soort denkbeeldige ladder waarbij je omhoog klimt en steeds meer “IT capabilities’ verwerft. Helemaal onderaan de ladder is een situatie waarbij er sprake is van “Technical debt”. Er worden verouderde software en platformen gebruikt, men is niet goed in staat aan de eigen software verder te ontwikkelen, er zijn in toenemende mate security risico’s. Er is veel handwerk. En er worden proprietary software en licenties gebruikt – waarvan men moeilijk af raakt. Eigenlijk is men niet in staat enig risico te mitigeren.

Applicatie modernisatie, de eerste stap

Hierna volgt de reis van de applicatie modernisatie. Platformen worden vernieuwd (zowel hardware als software) en met behulp van moderne software development tools kan de ontwikkeling van de eigen software weer gestart worden. Er kunnen nu weer keuzes gemaakt worden, men kan operationele uitdagingen mitigeren, bijvoorbeeld op het gebied van availability, resilience, licenties en security. Men neemt voorzichtige eerste stappen met het automatiseren van IT processen, installaties en configuraties.

Digital Sovereignty “ready”

In het volgende “Plateau” is de mate van automatisering groter zodat dat men in staat is om “Workloads” op verschillende (cloud) platformen te draaien. Er komt grip op de data residency (waar staat mijn data) en zaken als hoge beschikbaarheid (multi site) kunnen gerealiseerd worden. Ook krijgt men meer grip op leveranciers, er kunnen tenslotte keuzes gemaakt worden en veelal gaat men nu Open Source Software (OSS) gebruiken. De risico’s die nu gemitigeerd kunnen worden zijn van tactische aard. Eigenlijk is het bedrijf klaar om “Digital Sovereignty” te bereiken als dat gewenst zou zijn.

Strategische controle

Naar mijn idee is het hoogste “Plateau” een niveau waarin de organisatie grip heeft op alle “IT capabilities” die er zijn. Men kiest voor Open Source Software (en containers bijvoorbeeld) waar men dat wil en waar men vrijwillig kiest voor afhankelijkheden waar mogelijk. Men is daarbij in “Control of data residency”. Eigenlijk heeft men de functionaliteit losgekoppeld van de technische implementatie. Hierdoor ontstaat ruimte om te kunnen manoeuvreren en de risico’s die daarbij dus gemitigeerd kunnen worden zijn van strategische aard.

Voor mij gaat “Digital Sovereignty” dus om het beklimmen van de “Ladder” van “IT capabilities”. Bedrijven en organisaties die hoger op deze “Ladder” staan zullen dus beter in staat zijn de “Digital Sovereignty” te bereiken. Mijn suggestie daarbij is, laten we het een discussie maken over “IT capabilities”.

AWSome for the enterprise

Inmiddels is iedereen er wel van overtuigd. Public Cloud is de toekomst in het IT landschap. Aanvankelijk verzonnen we redenen om niet naar de cloud te moeten. We vonden de cloud bijvoorbeeld niet secure. De data stond niet in Nederland en het was alleen geschikt voor websites. Ook was het voornamelijk bedoeld voor start ups, en ehh, oh ja, de cloud was te duur. Toch zijn er door de jaren heen steeds meer bedrijven die kozen voor de Public Cloud. Blijkbaar waren onze redenen drogredenen. Of misschien hadden we de feiten onjuist, een soort alternatieve waarheden? Nu we deze vooroordelen achter ons hebben gelaten, kunnen we naar de Cloud. Of gelooft u nog steeds dat de mens niet op de maan is geweest en dat Elvis nog steeds leeft?

Natuurlijk verloopt de adoptie niet bij alle bedrijven even snel. Het is alleen niet meer de vraag “Of we naar de Cloud gaan”, maar “Wanneer”. Een interessante observatie daarbij is dat Amazon’s AWS verreweg de grootste aanbieder is van Public Cloud diensten. Interessant omdat Amazon geen speler was in het IT landschap. Ze begon ooit als webshop voor boeken, maar bouwde al snel een infrastructuur waar haar klanten ook graag gebruik van maakten. Inmiddels is ze de grootste aanbieder van Public Cloud diensten. AWS (Amazon Web Services) is vele malen groter dan alle overige Cloud aanbieders bij elkaar. Maar hoe maken we AWS geschikt voor grote bedrijven?

Multi account structuur

Wanneer je snel aan de slag wilt met Public Cloud, dan is een Amazon AWS account zo aangelegd. Voor zo’n account is slechts een credit card nodig en je bent “In business”. Alle AWS diensten staan je vervolgens ter beschikking. Ook echte enterprise features zoals Content Delivery Networks en uitgebreide security tools. Dat klinkt allemaal prima, maar gaan grote bedrijven er zo ook mee om? Is het echt een kwestie van account aanleggen credit-card-klaar? Misschien dat bedrijven op deze wijze starten, maar na verloop van tijd kiezen zij voor een structuur die past bij een enterprise.

Grote bedrijven hebben bijvoorbeeld behoefte om applicaties van elkaar gescheiden te houden. Ook willen ze uitgebreid gebruikersbeheer (met gedelegeerde rechten) te kunnen uitvoeren of IT architectuur uitgangspunten te kunnen afdwingen (zoals off site backups). Daarnaast willen ze security maatregelen kunnen treffen (zoals off site audit trails) en overzicht te houden over de kosten (consolidated billing). In AWS is dit mogelijk door meerdere accounts aan elkaar te koppelen, waarbij sommige account generieke voorzieningen verzorgen, de multi account structuur.

Root account

Nu is het belangrijk om te weten dat de eerste user die je aanlegt de root user is. Dit is de enige user binnen het AWS account waarmee alles gedaan kan worden. Het is ook de enige die het gehele account kan opgeheffen. Het dagelijks gebruik van deze root user is daarom ook af te raden. Deze root user credentials kunnen beter in een kluis worden opgeslagen. Voor het dagelijkse gebruik van de AWS console (de web toegang tot alle AWS diensten) worden gewone user accounts gemaakt.

Operationele- versus non-operationele accounts

Bij het gebruik van meerder AWS accounts wordt een onderscheid gemaakt tussen operationele accounts (zoals bijvoorbeeld een account waarin de productieomgeving van een specifieke applicatie draait) en non-operationele accounts (zoals bijvoorbeeld een account waarin alleen gebruikersbeheer wordt gedaan). AWS biedt daarom de mogelijkheid de accounts op een zinvolle manier te integreren zoals bijvoorbeeld de kosten in een billing account te verzamelen. Hiermee kunnen zaken effectief van elkaar gescheiden worden. Door de verschillende operationele accounts van elkaar te isoleren kunnen bijvoorbeeld fijnmazig rechten worden gegeven aan beheerders. Ook kunnen de omgevingen elkaar niet beïnvloeden, praktisch, want dit zorgt voor een hoger security niveau.

Welke non-operationele account zijn er nodig?

Multi Account structuur

Multi account structuur in de Amazon AWS Public Cloud

Billing

Het is praktisch om alle kosten centraal te verzamelen, ook wel consolidated billing genoemd. Dit gebeurd in een “Billing account”. De billing account wordt niet gebruikt voor productietaken, maar alleen voor de financiële afhandeling van de kosten. Zo “Hangen” alle accounts aan dezelfde credit card, of worden alle kosten middels een enkele factuur afgerekend. De voordelen hiervan zijn dat de volumekorting van AWS over het gehele bedrag wordt verkregen en dat gebruikers met een financiële verantwoordelijkheid alleen toegang krijgen tot deze billing account. Zij hebben geen toegang nodig tot een operationele account en houden toch overzicht over de kosten. Deze kosten worden overigens in groot detail inzichtelijk gemaakt, ze zijn per account en per resource type of tag te bekijken. Zo is te zien wat de kosten van storage zijn, of wat de kosten zijn van een ontwikkel account.

IAM

Naast de billing account is er een “Identity and Access Management (IAM) Account”. Dit is het account waar het gebruikersbeheer uitvoert wordt. Het enige dat in deze account gemaakt wordt zijn users, groepen en rollen. De overige accounts (zoals operationele accounts) hebben geen gebruikers. Vanuit de IAM account krijgen users rechten binnen andere accounts. De voordelen hiervan zijn evident, centraal gebruikersbeheer, een centrale account waarop users inloggen en geen users in de andere accounts. Deze manier van werken leidt ook tot een hogere mate van security en een beter controleerbaarheid daarvan. Voor de duidelijkheid, de users waarover we hier spreken zijn users die werken binnen de webconsole van AWS en niet de eindgebruikers van applicaties.

Audit

Vanuit security standpunt bezien is het wenselijk dat een audit trail veiliggesteld wordt voor het geval een applicatie of account gecompromitteerd raakt. In zo’n geval moet het audit trail aantoonbaar onveranderd zijn en op een andere plaats opgeslagen zijn. Speciaal hiervoor is de “Audit Account”. Dit account bestaat uit S3 buckets (object store – opslag van files) waarin de audit informatie wordt weggeschreven. Ieder operationeel account heeft een eigen S3 bucket waarin alleen dat account mag schrijven, ze mag er niet lezen en niet verwijderen. Uiteraard worden de kosten verhaald op de account die de betreffende S3 bucket gebruikt en netjes verzameld in de billing account.

Backup

De bovenstaande constructie wordt ook gebruikt voor backups. Bedrijven willen graag dat backups aantoonbaar veilig worden opgeslagen, liefst met aparte credentials. Dus waarom zou niet dezelfde constructie gebruikt kunnen worden als bij de audit account? En dat is precies waarom er een “Backup Account” gemaakt wordt. Deze account heeft alleen S3 buckets voor de verschillende operationele accounts waarin zij een backup mogen schrijven. Ook hier kunnen zij de backups niet lezen of verwijderen. De kosten van iedere bucket wordt verhaald op de betreffende operationele account en verzameld in de billing account.

Shared

Soms zijn er generieke diensten die beschikbaar gesteld moeten worden aan de operationele accounts, zoals bijvoorbeeld een GIT repository (een versiebeheersysteem voor software en configuratie files), een Puppetmaster (state config software) of centrale opslag van gedeelde informatie. Het gebruik van een zogenaamde “Shared Account” dan erg handig.

My Organization

Inmiddels heeft Amazon een nieuwe dienst gelanceerd die het opzetten en beheren van een multi account structuur vereenvoudigen, “My Organization”. Organizations geeft overzicht over de gekoppelde accounts (de billing account is leidend). Centraal kunnen bijvoorbeeld beperkingen op andere accounts aangelegd worden.

Tot slot

Er is inmiddels een goed beeld geschetst over een enterprise structuur in AWS. De non-operationele accounts zorgen voor overzicht, inzicht en betere isolatie van enterprise functies. Middels uitgebreide autorisatie kunnen users rechten krijgen op de verschillende functionele gebieden die zo gecreëerd zijn. De hier beschreven non-operationele accounts zijn wel de belangrijkste, maar er is geen beletsel er nog meer te maken als dat opportuun mocht zijn.

Met het ondersteunen van een dergelijke enterprise structuur toont Amazon aan dat Public Cloud klaar is for the enterprise, maar dan wel met de juiste inrichting.