I would like to focus on one of the big challenges in cloud information security—identity and access management. Or in other words, authentication and authorization.
How do you cleanly control who has access to what within your enterprise?
The authentication piece has been getting easier (though there are still a lot of hurdles) as more operating systems and applications support technologies such as ActiveDirectory (AD), LDAP and Single Sign On. Authorization is a much bigger problem as most applications still aren’t leveraging directory services as well as they could, but rather have their own built-in authorization systems. If you are lucky, however, they can map roles to AD or LDAP groups.
This problem is magnified when you start moving to the cloud and especially so when you move to public cloud. And while some cloud providers, most notably AWS, have started adding some authorization functionality most have little to nothing to offer on this front. As an example, on most (all?) providers anyone who has access to terminate instances can terminate any instance in that account!
One company I’m familiar with had a developer with legitimate access to their cloud provider accidentally terminate several key development databases when trying to terminate some test instances they had launched. Fortunately, those databases were backed up so recovery was relatively simple, though it did stop work for several hours while the recovery happened. Other companies I’ve talked with have dealt with this issue by creating a separate cloud account for each project. This isn’t too painful when you have a few accounts, but this quickly scales beyond the point of manageability with some companies having as many as 60, 80 or even 150 (or more!) different cloud accounts. This quickly becomes a nightmare to track and manage. Some developers or IT folks end up with dozens of different keys and other credentials to manage. This just increases the chances of errors happening. And what do you do when those folks leave? Talk about a mess to clean up!
This is where we come into play. enStratus has built a much more granular access control system. Users are assigned to groups and roles which are then granted permissions to the appropriate servers or deployments, even across multiple clouds. This access can be further restricted to particular actions such as, starting, stopping, pausing or terminating servers. This can, of course, all be managed via our API. As an added bonus, for on-site deployments we also support synchronization with Active Directory or LDAP, but that’s really the subject of another post.
To read on, you can read the new white paper on Identity and Access Management for the Cloud (PDF). I would love to continue the conversation or get your feedback.
David Mortman is the enStratus Chief Security Architect and has been doing Information Security for well over 15 years. Most recently, he was the Director of Security and Operations at C3. Previously, David was the CISO at Siebel Systems and the Manager of Global Security at Network Associates. David speaks regularly at Blackhat, Defcon and RSA amongst other conferences. Additionally, he blogs at emergentchaos.com, newschoolsecurity.com and securosis.com. David sits on a variety of advisory boards such as Qualys and Igie. He holds a B.S. in Chemistry from the University of Chicago and bakes, cooks and juggles in his spare time.