AWS SSO is a managed service from AWS that enables granting users access to AWS accounts and third-party business applications using SAML, Security Assertion Markup Language, an open standard for exchanging identity and security information.
AWS SSO is a highly available service that requires no infrastructure provisioning or operation that you can start using at no cost, and has been receiving new features since it was announced in December 2017.
Some of those features include:
- Available now in 9 regions, including Sydney
- Native integration with AWS Organizations, making it easier to set up and manage user access across all accounts within an AWS Organisation.
- Easy access to Command Line credentials through the portal. This makes it simple to get temporary access keys and secret access keys for command line operations.
- Built in directory for user management, at no cost. With this feature I started using AWS SSO for my personal create-play-destroy AWS accounts.
- Email-based verification. Before this feature and with only username and password verification, AWS SSO was a bit behind other services.
- Audit Single Sign-on activity. AWS SSO logs to CloudTrail
These features translate into multiple options that can cater for many requirements.
You have a handful of users and some cloud applications like Office 365, Jira, BlueJeans or 10000ft. You don’t have a Corporate Directory. In this case you can get started with AWS SSO and the default directory. This default directory will cost you nothing and will require no infrastructure management or operation. The current limit sits at 500 users and 100 groups.
You run an AD to manage users, whether that’s AWS Directory Services AD or on-prem, and want to extend it to access AWS accounts. You can use AWS SSO. AWS SSO will still be at no cost, but you may incur charges associated with running AD.
Long waited MFA is here
On October 25th 2019, AWS announced Multifactor Authentication using authenticator apps. This means that we don’t have to rely on Email-based verification to add that extra layer of security and we can now start using apps like Authy and Google Authenticator to generate time-based one-time 6-digit codes.
Not only is this an improvement in terms of security, it also opens the possibility to use AWS SSO to access your cloud-based email services like Gmail for business and Office 365. Imagine you enable email-based verification to log onto your SSO platform and can’t get the code because your email service is behind SSO. This was actually flagged out in the documentation. I guess someone got a lot of angry users locked out at some point…
Setting it all up
Setting up MFA is very straight forward. First log into the AWS SSO console, and go to settings.
In the User portal authentication section, there are 4 properties that can be configured.
- Prompt users for multi-factor authentication (MFA): You can enable or disable MFA, or pick a third option, context aware, which lets you login with user as password if your device and location are known, or asks you for MFA in case you are in an unknown device or location.
- When prompted for an MFA code: Single option to use app-based authenticator.
- If user does not have a registered MFA device: You can block or allow access or require a one-time email-based code.
- Who can manage MFA devices: You can allow users to manage their MFA devices or have the AWS SSO administrators do it.