Voor een advies ben ik op zoek naar best practices voor het ontwikkelen van een SAAS waarbij schaalbaarheid, performance en beveiliging conform de ISO 27001 normering belangrijk zijn.
Er zijn een aantal ideeën op tafel gelegd waarbij ik mij afvraag hoe (grote) andere partijen dat doen. Zo is de wens om voor iedere klant een aparte database aan te maken zodat klantgegevens gescheiden blijven. Met het idee is dat dit veiliger is en beter schaalbaar. Wat applicatie ontwikkeling zal het mogelijk lastiger zijn omdat je in theorie met verschillende versies van de database kan komen te zitten per klant.
Daarnaast is het plan om een algemene database voor toegangsrechten (lees inloggen, rechten tot de applicatie), een database logging, en een database voor policies waarbij ik aanneem dat deze wensen vanuit de ISO normering komen en daarnaast met het idee dat dit de applicatie schaalbarer maakt. Vanuit die uitgangspunten zullen er meerdere connecties opgebouwd moeten worden naar al deze verschillende databases. Maar uit ervaring heb ik geleerd dat het opbouwen van een databaseconnectie relatief gezien veel performance kost, laat staan naar 5 of meer verschillende databases. Vanuit schaalbaarheid zou ik zeggen dat meer CPU cores / geheugen of andere hardware matige oplossingen voldoende zouden moeten zijn i.p.v. losse databases op verschillende servers. Dit o.a. met netwerk latancy in het achterhoofd. Maar waar de limiet ligt weet ik niet.
Daarnaast is het de bedoeling om de data in de de databases te encrypten, zodat wanneer er toch oneigenlijk toegang is verkregen tot de database de data waardeloos is zonder key. De key voor de encryptie moet in de applicatie komen om bij iedere insert de data te encrypten. De wens voor encryptie van de data kan ik goed begrijpen, maar kom dit nu nog zelden tegen bij andere projecten of applicaties. Daarnaast lijkt het mij veiliger om data door het OS of door de database software zelf te laten doen, dan zelf wat te ontwikkelen. Sowieso heeft encryptie best wat praktische uitdagingen, zoals lastiger kunnen zoeken in de database en een performance cost voor en-decrypten. Wat is een goede oplossing voor encryptie?
Daarmee komt de vraag naar voren hoe grote partijen als bijvoorbeeld Exact de software per klant opzetten om de software schaalbaar te maken en welke veiligheidsmaatregelen zou zo'n partij nemen om al dan niet aan deze ISO normering te voldoen? De ISO normering geeft volgens mij geen concrete requirements alleen richtlijnen dus dat geeft in ieder geval wel flexibiliteit.
Er zijn een aantal ideeën op tafel gelegd waarbij ik mij afvraag hoe (grote) andere partijen dat doen. Zo is de wens om voor iedere klant een aparte database aan te maken zodat klantgegevens gescheiden blijven. Met het idee is dat dit veiliger is en beter schaalbaar. Wat applicatie ontwikkeling zal het mogelijk lastiger zijn omdat je in theorie met verschillende versies van de database kan komen te zitten per klant.
Daarnaast is het plan om een algemene database voor toegangsrechten (lees inloggen, rechten tot de applicatie), een database logging, en een database voor policies waarbij ik aanneem dat deze wensen vanuit de ISO normering komen en daarnaast met het idee dat dit de applicatie schaalbarer maakt. Vanuit die uitgangspunten zullen er meerdere connecties opgebouwd moeten worden naar al deze verschillende databases. Maar uit ervaring heb ik geleerd dat het opbouwen van een databaseconnectie relatief gezien veel performance kost, laat staan naar 5 of meer verschillende databases. Vanuit schaalbaarheid zou ik zeggen dat meer CPU cores / geheugen of andere hardware matige oplossingen voldoende zouden moeten zijn i.p.v. losse databases op verschillende servers. Dit o.a. met netwerk latancy in het achterhoofd. Maar waar de limiet ligt weet ik niet.
Daarnaast is het de bedoeling om de data in de de databases te encrypten, zodat wanneer er toch oneigenlijk toegang is verkregen tot de database de data waardeloos is zonder key. De key voor de encryptie moet in de applicatie komen om bij iedere insert de data te encrypten. De wens voor encryptie van de data kan ik goed begrijpen, maar kom dit nu nog zelden tegen bij andere projecten of applicaties. Daarnaast lijkt het mij veiliger om data door het OS of door de database software zelf te laten doen, dan zelf wat te ontwikkelen. Sowieso heeft encryptie best wat praktische uitdagingen, zoals lastiger kunnen zoeken in de database en een performance cost voor en-decrypten. Wat is een goede oplossing voor encryptie?
Daarmee komt de vraag naar voren hoe grote partijen als bijvoorbeeld Exact de software per klant opzetten om de software schaalbaar te maken en welke veiligheidsmaatregelen zou zo'n partij nemen om al dan niet aan deze ISO normering te voldoen? De ISO normering geeft volgens mij geen concrete requirements alleen richtlijnen dus dat geeft in ieder geval wel flexibiliteit.