Skip to content

Back to the catalog

Managing identity source transition for AWS IAM Identity Center
aws.amazon.comwriteup

Managing identity source transition for AWS IAM Identity Center

AWS Security Blog runbook for migrating the identity source behind AWS IAM Identity Center from Active Directory to an external SAML 2.0 IdP such as Okta, which is a destructive cutover that deletes all users, groups, and permission-set/application assignments at the moment of switch. It walks through pre-migration backup, SCIM provisioning setup, SAML metadata/ACS configuration, scripted assignment restoration with drift detection (drift_report.csv), post-migration validation, and a manual rollback procedure, linking to an aws-samples GitHub migration tool for the scripted steps.

TL;DR Step-by-step AWS runbook (with GitHub scripts) for safely cutting over IAM Identity Center from Active Directory to Okta without losing SSO access.
Document

What it is

A seven-phase runbook from AWS for migrating AWS IAM Identity Center's identity source from Active Directory to Okta (as a representative SAML 2.0 IdP), paired with a GitHub migration tool (aws-samples repo) providing precheck, cutover, validation, and cleanup commands.

How it works

The cutover (Phase 3) is a single irreversible action in the IAM Identity Center console: Settings → Actions → Change Identity Source, which requires typing ACCEPT to confirm. The moment this is confirmed, all AD users, groups, account assignments, and application assignments are deleted — there is no staged or gradual transition. Recovery depends entirely on CSV backups (assignments.csv, principals.csv) taken beforehand and a restore script that matches principals by UserName (users) and DisplayName (groups) in the new identity store to recreate assignments. A separate drift-detection command compares the pre-migration CSV against live state and writes a drift_report.csv with MISSING/EXTRA entries.

flowchart TD
    A[Phase 1-2: Backup + validate] --> B[Phase 3: Confirm cutover ACCEPT]
    B --> C[All AD users/groups/assignments deleted]
    C --> D[Phase 4: Restore from CSV backup]
    D --> E{Drift report clean?}
    E -->|Yes| F[Phase 5: Validate access]
    E -->|No| G[Phase 7: Manual rollback to AD]
    G --> H[Re-sync AD, rebuild assignments from same CSV]

Preconditions / Affected

Applies specifically to transitions to/from Active Directory — these are destructive. Transitions between an external IdP and the local Identity Center directory, by contrast, preserve all users, groups, and assignments (stated explicitly as the non-destructive case). Requires Python 3.10+, AWS admin access to IAM Identity Center/Organizations, and Okta Global Admin access. AWS-managed apps with their own identity source reference (e.g., SageMaker Studio) are called out as not fully restorable via CreateApplicationAssignments alone — they depend on the original identity source ID and specific UserId/GroupId values, and may require redeployment (full coverage deferred to "part 2" of the series, not yet published per this post).

What to do

  • Run the precheck script before cutover to export assignments.csv and principals.csv.
  • After cutover, enable automatic provisioning in Identity Center, configure SCIM in Okta (Base URL = SCIM Endpoint, API Token = Access Token), and enable all three "To App" provisioning options (Create Users, Update User Attributes, Deactivate Users) — all three are required.
  • Configure ACS URL and Issuer URL from Identity Center's "Manage Authentication" page into Okta's Advanced Sign On Settings.
  • Test SCIM sync with one test user before syncing the full population.
  • Run the restore script against the backup CSV, wait 5–10 minutes for propagation, then run the drift-check command.
  • Do not decommission AD domain controllers until migration stability is confirmed — keep AD online as rollback fallback.

Caveats

Rollback (Phase 7) is manual only — there is no automated undo. It requires AD still being reachable, re-running guided directory sync, and rebuilding all assignments from the same pre-migration CSV, with no automatic restoration of deleted data. The post itself flags the application-assignment restoration gap for AWS-managed apps as unresolved in this installment.

Technologies named here

Techniques named here

  • Identity source transition
  • Pre-migration backup of principals and assignments
  • SCIM-based automated provisioning
  • SAML 2.0 federation setup
  • Assignment restoration via drift detection
  • Manual rollback procedure