16/08/2018
10 vragen over beveiliging die u iedere provider zou moeten stellen
Elke provider kan u vertellen hoe zij de beveiliging van systemen en netwerken hebben ingericht. Maar misschien heb je wel extra vragen over de security hiervan.
Blog
Kubernetes en het gebruik van microservices zorgen ervoor dat veel systemen nu worden vervangen door een cloud-gebaseerde omgeving. Voor sommige organisaties is dat de eerste keer dat er cloud native gewerkt wordt en er gebruik gemaakt wordt van bijbehorende technologie. Naast de overgang naar werken volgens de DevOps methode, komen organisaties hierdoor ook voor het eerst in aanraking met het bouwen van een platform volgens DevOps architectuur.
Zo’n DevOps platform ziet er anders uit en bestaat uit andere componenten dan een server-gebaseerd platform. In dit artikel benoemen we negen verschillende onderdelen van zo’n architectuur en geven we tips bij het gebruik ervan.
Er is nog steeds plaats voor servers in veel gevallen, maar probeer vooral ook gebruik te maken van de beschikbare componenten die het cloud platform standaard aanbiedt. Doordat je componenten daardoor niet zelf hoeft te bouwen verminder je zowel de complexiteit als de onderhoudskosten. Wees je wel bewust van hoe cloud-agnostisch die componenten precies zijn om te voorkomen dat je in een vendor lock-in belandt.
Storage betreft zowel bestanden als database informatie. Voor ieder development project of onderdeel zou het team zelf moet kunnen kiezen hoe en waar data optimaal kan worden opgeslagen en welk databasesysteem je gebruikt. Waak ervoor om cloud-vendor-specifieke oplossingen te gebruiken voor bedrijfskritische data, maar gebruik storage gebaseerd op open standaarden. Ook hier bestaat het risico op vendor lock-in, maar dan op wel je belangrijkste bezit: je bedrijfsdata.
Jouw applicatie zal op verschillende plekken gebruik gaan maken van cryptografische sleutels. Voor toegang voor gebruik en componenten onderling, maar ook voor deployment en configuratie. Zorg dat je goed bedenkt hoe je daarmee omgaat, waar je sleutels opslaat en waar je gebruik ervan logt. Je verhoogt daarmee de veiligheid en voldoet aan compliancy vereisten.
Met IAM bepaal je welke gebruikersrollen er nodig zijn binnen jouw landschap en welke taken hierbij horen. Zorg ook dat je processen en procedures definieert voor het provisionen en deprovisionen van gebruikers. Zet logging en auditing op het wijzigen van rollen en rechten, maar ook voor succesvolle en gefaalde toegangspogingen. Denk na over het regelmatig roteren van sleutels.
Monitoring verzorg je bij voorkeur vanaf een andere omgeving dan de applicatie zelf voor hogere betrouwbaarheid en stabiliteit. Niet alleen op je endpoint, maar ook als (automatisch) onderdeel van je deployment pipeline. Als er dan iets misgaat, weet je sneller waar je moet zoeken. En controleer niet alleen de beschikbaarheid, maar ook andere zaken zoals performance, security en of je applicatie ook daadwerkelijk correct functioneert.
Gebruik de CI/CD tools die voorhanden zijn in de omgeving waar je bouwt, maar bewaar je intellectuele eigendommen (je code) en hoe infrastructuur moet worden deployed in een centrale omgeving (een git repository, eventueel extern gehost).
Zorg dat je niet alleen de kwaliteit van je code bewaakt, maar ook de veiligheid ervan. Kijk naar tools die je daarbij kunnen helpen door je code bijvoorbeeld te controleren op kwetsbaarheden uit de OWASP Top 10, zowel je eigen code als die van derden die je gebruikt.
Hackers liggen overal op de loer om misbruik te maken van jouw webapplicatie, dus het is verstandig om zo goed mogelijk voorbereid te zijn. Het gebruik van security groups en firewalls is een vereiste, maar overweeg om ook gebruik te maken van een WAF. Het levert veel aanvullende bescherming op en is zelfs veelal een eis van partijen die gebruik willen maken van jouw dienstverlening. Je kan er beter vroeg dan laat in investeren.
Met een WAF bescherm je jezelf tegen veelgebruikte exploits, zoals SQL injecties, XSS en andere security zwakheden. Je krijgt daarnaast de beschikking over audit logs en kunt verkeer over verschillende onderdelen in de gaten houden en verbanden daartussen leggen.
De intelligentie van je applicatie en deployment zit in je code, maar het gebruik van een intuïtieve management interface kan je helpen om makkelijk inzicht te krijgen voor het beheren van Kubernetes en het optimaliseren van onderhoudsprocessen.
Zoals je ziet, er zijn behoorlijk wat zaken om bij stil te staan qua architectuur. Vooral als je hier voor het eerst mee te maken krijgt, kan dit een behoorlijk complexe puzzel opleveren en is de kans op fouten groot. Cyso’s devops on demand dienst is er voor dit soort vraagstukken. Wij begeleiden jouw DevOps team bij het ontwerpen, implementeren en optimaliseren van de architectuur voor jouw cloud applicatie.