SSO and Identity Management - Centralized Authentication with AWS IAM Identity Center

Learn how to implement single sign-on and multi-account access management with AWS IAM Identity Center (formerly AWS SSO). Covers external IdP integration, permission set design, and how it differs from Cognito.

Authentication Challenges in Multi-Account Environments and IAM Identity Center

AWS best practices recommend a multi-account strategy that isolates workloads into separate AWS accounts. However, as the number of accounts grows, the approach of creating and managing IAM users in each account becomes unsustainable. Password management, MFA configuration, and account deletion for departing employees all scale linearly with the number of accounts. AWS IAM Identity Center (renamed from AWS SSO in 2022) is a managed SSO service that solves this challenge. From a single user portal, users can access all assigned AWS accounts via single sign-on. There is no need to create IAM users in each account, and temporary credentials are automatically issued, eliminating the risk of long-term access key leaks. IAM Identity Center integrates natively with AWS Organizations, so new accounts are automatically included in access management.

External IdP Integration and Identity Source Selection

IAM Identity Center supports three identity sources. The first is the Identity Center directory (built-in), suitable for small organizations or test environments. The second is Active Directory (via AWS Managed Microsoft AD or AD Connector), allowing you to use your on-premises AD as-is. The SCIM (System for Cross-domain Identity Management) protocol automatically synchronizes user and group information from external IdPs to IAM Identity Center. Disabling a user on the IdP side immediately revokes their AWS access. ```bash # SSO login configuration for AWS CLI v2 # Add the following to ~/.aws/config [profile dev-admin] sso_session = my-sso sso_account_id = 123456789012 sso_role_name = AdministratorAccess region = ap-northeast-1 [sso-session my-sso] sso_start_url = https://my-org.awsapps.com/start sso_region = ap-northeast-1 sso_registration_scopes = sso:account:access # Execute login aws sso login --profile dev-admin ``` The CLI v2 sso login command launches a browser-based authentication flow, and after authentication, temporary credentials are automatically cached.

Permission Sets and Access Assignments

A permission set is a template of IAM policies that are granted when accessing an AWS account. You can use AWS managed policies (AdministratorAccess, ReadOnlyAccess, PowerUserAccess, etc.) directly or define custom policies. Inline policies and permissions boundaries are also configurable, enabling fine-grained control aligned with the principle of least privilege. Session duration can be set from 1 to 12 hours, with a default of 1 hour. Access assignments are defined as a combination of three elements: permission set, AWS account, and user or group. For example, you can assign the development team group PowerUserAccess to the dev account and ReadOnlyAccess to the prod account. Group-based assignments mean that adding or removing members from a group automatically reflects the appropriate permissions. To learn the fundamentals and advanced topics of single sign-on, books on Amazon offer a systematic approach.

Choosing Between Cognito and Application Integration

IAM Identity Center and Cognito are both authentication services, but they target different user populations. IAM Identity Center is an authentication platform for employees and developers accessing the AWS Management Console and CLI. Cognito is an authentication and authorization service for end users (customers) of web and mobile applications, providing sign-up, sign-in, social login, and token management. In addition to AWS account access management, IAM Identity Center provides SSO to SAML 2.0-compatible third-party applications (Salesforce, Slack, GitHub, etc.). The user portal displays a list of assigned AWS accounts and applications, accessible with a single click. CloudTrail integration automatically records audit logs of who accessed which account and when. IAM Identity Center itself is free to use and is provided as a feature of AWS Organizations.

IAM Identity Center Pricing

IAM Identity Center is completely free. There are no limits on the number of users, permission sets, or AWS accounts (within service quotas), and no additional charges for SSO setup and operation. SAML/SCIM integration with external IdPs (Okta, Azure AD) is also free. There is no reason to hesitate adopting it as an access management platform for multi-account environments due to cost concerns.

Summary - Guidelines for Using IAM Identity Center

AWS IAM Identity Center is a service that centralizes authentication and access management in multi-account environments. SAML/SCIM integration with external IdPs leverages your existing identity infrastructure, and permission set templates streamline access management. Automatic issuance of temporary credentials eliminates the risk of long-term access keys, and CLI v2 integration preserves the developer experience. For organizations adopting a multi-account strategy, deploying IAM Identity Center early is recommended. It is free to use and integrates seamlessly with Organizations, keeping the barrier to adoption low.