Use of Web services in a cloud computing context can benefit from use of a modular approach to security. An example is a key addition to Amazon Web Services known as Identity and Access Management (IAM). It provides for multiple users within a single enterprise account and it comes in response to backlash against Amazon's older hardwired security measures which locked administrators into granting all-or-nothing access rights and made disabling a single user problematic.
More importantly, IAM promises to better enable security experts and cloud services developers to create sophisticated integrations with existing tools.
In the short run, Amazon has publicized the APIs required to programmatically add new users, manage groups, and disable users. Amazon also offers some useful guidance on getting up and running.
IAM has gained attention among technology users, including bloggers who have begun to create their own tools for various programmatic needs. The Web services APIs can be accessed via a variety of programming languages.
Mitch Garnaat, Author of boto, a Python library for AWS, describes how you can use IAM from within boto. He demonstrates a generic response handler for parsing the IAM XML into a Python data structure. He has described how to create an EC2/S3 users group, as well as a group for read-only access to SimpleDB.
Erwan Arzur writes about using the Groovy language to automate username and user group creation with IAM. He includes the code he used to create his script.
Prabhakar Chaganti wrote a nice tutorial about using IAM with the ylastic cloud management interface. The IAM application includes color coded display highlighting the permissions of different users and groups. Chagnati runs through the process of setting up AWS groups and users. The ylastic interface allows you to manage Groups, Group Policies, Users, User Policies, and User Access Keys.
A first step for IAM and AWS
Although IAM is a big step forward, there is still work to be done. Scott Moser describes how to customize IAM to provide finer grain control over a new user’s permissions. He ran into problems programmatically creating new users that could create their own security groups.
He wrote, “It seems to me that Security Groups and key pairs are an essential piece of Using EC2, but it seems like these are stuck at the account level, with no ability to limit them at the user level.”
Moser is also concerned that IAM users can have the ability to terminate program instances run by other users. The production team needs to be protected from an accidental reboot or termination started by the development team.
It appears the release of IAM is a good first step toward the use of modular security management tools for cloud services – it removes one more 'gotcha' that can hold up Web services development on the one of today's major cloud computing architectures.