In this blog, we’ll take a closer look into the Identity and Access Management aspect of AWS Control Tower’s managed environment. By default, AWS Control Tower uses AWS IAM Identity Center to set up and control access to AWS accounts that are created through the Account Factory unless you specifically opt for self-management of your identity and access control.
The IAM Identity Center allows for identity federation through the use of SAML (Security Assertion Markup Language) 2.0, an industry-standard protocol for securely exchanging information about a user between an identity provider (IdP) and a service provider (SP). This allows for federated single sign-on access for authorized users of applications within the AWS access portal.
A permission set is like a template you create and manage, defining a set of IAM policies. These permission sets make it easy to assign access to AWS accounts for users and groups in your organization. The IAM Identity Center utilizes permission sets to grant access to users or groups across multiple AWS accounts. By assigning a permission set, the IAM Identity Center will generate IAM roles that are managed by the IAM Identity Center and apply the policies outlined in the permission set to those roles. Authorized users can access these roles through the IAM Identity Center User Portal or AWS CLI.
AWS Control Tower setup comes with few predefined permission sets. In addition, you can create custom permission sets based on the business use case.
AWS Control Tower provides pre-configured User groups designed to organize users based on the specific tasks they perform in your accounts. You can easily add users and assign them to these groups directly in IAM Identity Center. This action aligns permission sets with the users in the respective groups within your accounts. When you set up your landing zone, the following groups are automatically created.
With the AWS Control Tower Account Factory, AWS IAM Identity Center users (formerly known as AWS Single Sign-On) and cloud administrators can easily set up accounts in your landing zone. To provision accounts, users must belong to the AWSAccountFactory or management group. The AWS Control Tower management account has a trusted relationship with the AWSControlTowerExecution role, which enables account setup and some automated account setup.
The presence of the AWSControlTowerExecution role is essential in all enrolled accounts to facilitate AWS Control Tower’s management of individual accounts and reporting of relevant information to your designated Audit and Log Archive accounts.
You can add AWSControlTowerExecution role to an account, in different ways:
When extending governance to an Organizational Unit (OU), AWS Control Tower uses the StackSet-AWSControlTowerExecutionRole to create the role in all accounts within that OU.
The AWSControlTowerExecution role serves the following purposes:
If you have already established the AWS IAM Identity Center (previously known as AWS Single Sign-On), the AWS Control Tower home Region must match the IAM Identity Center Region. Furthermore, the installation of the IAM Identity Center is only possible in the management account of your organization. Lastly, depending on the identity source you select for your IAM Identity Center directory, there are three available options.
After setting up AWS Control Tower with IAM Identity Center, you can access your accounts in two ways: either through the Federated User portal URL or via AWS CLI.
Here is the console representation of Single-Sign-On page.
To get programmatic access to AWS IAM Identity Center managed account , you need to configure your profile with the aws configure sso wizard.
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
Once you have configured the profile successfully, you can login to the console programmatically using aws sso login command.
aws sso login
In conclusion, AWS IAM Identity Center is a secure web-based service designed to streamline access management to various AWS services. It offers centralized control over AWS accounts and business applications, enabling efficient management of users and their security credentials. With IAM Identity Center, you gain the ability to control access and user permissions across all AWS accounts within AWS Control Tower.
One of the key benefits of IAM Identity Center is its support for authentication from external identity providers using SAML 2.0, simplifying the authentication process and enhancing the overall user experience within the AWS environment. This centralized and integrated approach to identity and access management benefit organizations to strengthen security, improve governance, and optimize workflows in their AWS infrastructure.