A key feature of any solution is security – particularly when you have a software platform that encompasses thousands of clients, teams of developers, constantly evolving features, and wide exposure across the globe – the typical scenario when you have a SaaS application operating at scale.
How then do you secure them? What are some key considerations for a secure, SaaS product?
For starters, let’s accept that there isn’t a one size fits all approach to SaaS application architecture. SaaS is a business strategy after all, not a technical implementation.
However, there are seven design principles that should be followed to make your system as secure, flexible, and cost-optimized as possible.
7 Design Principles for a Secure, Flexible, and Cost-Optimized System
1) Break Down Each of your Services Based on its Multitenant Load and Isolation Needs
Think of architecting your solution with more sand than concrete blocks. We are going for flexibility and granular security. Remember the rule of least privileges – don’t lump more into a service than is needed. This makes it easier to isolate functionally and secure access.
2) Isolate All Tenant Resources
Decomposing services is closely related to this design goal as well. You want to prohibit cross-tenant access and implement isolation strategies throughout your system’s architecture. Keep access attempts limited to the current tenant context.
3) Instrument, Capture, and Analyze Tenant Metrics
Tag resources. Enable logging. Use services like CloudTrail and CloudWatch with lots of alarms, all over the place.
4) Build Operational Dashboards
Track activity, usage, and costs are tracked using these operational dashboards. For starters, it will help you track what features customers really use – but you will be able to see what users are doing, and if there is a problem, track it back to what users and features were involved.
5) Onboard Tenants Through a Single, Automated, Repeatable Process
No one-off stand-ups. Automate everything as code – all the cloud infrastructure, services, users, security, and client environments needed. This ensures customers quickly realize value from using your software through a fast standup time, but also ensures everything is done consistently and securely. Human errors are a huge reason there are security breaches – minimize them!
6) Plan to Support Multiple Tenant Experiences
Particularly if you have regulated customers in health care, finance, or government – it may be mandated by law. Decoupled environments provide more granular security with less access across tenants. Define the boundaries of these environments and what they support.
7) Bind User Identity to Tenant Identity
Your architecture will need to do all the logging and tracking we talked about earlier in its own context. You should be creating a SaaS identity that is passed throughout the layers of your system by binding the tenant identity to your users’ identity in the authentication and authorization experience you set up.
There are many other factors that constitute a world-class SaaS product, but these areas are of particular interest to the security-minded.
When you partner with CleanSlate, we constantly evaluate features and platforms using Well-Architected Reviews. There is a specific one for SaaS applications, too!
Do you already have a product and want an extra set of eyes? We can provide an objective, third-party review of your system for best practices as its own engagement.
LET'S ACCELERATE INNOVATION TOGETHER
It’s time for you to leverage the next-level advantages of the cloud to build and deploy resilient applications at scale. Seperating yourself from the pack starts with competitive differentiation through rapid innovation.