Use when authenticating with AWS via Atmos. Covers ATMOS_PROFILE setup, SSO login, and how Atmos automatically assumes the correct identity per stack...
Atmos Auth handles AWS authentication automatically based on your profile and the target stack.
# Set your profile (required for all atmos commands)
# Use your assigned profile: devops, developers, or managers
export ATMOS_PROFILE=<your-profile>
# Authenticate via SSO provider (preferred - triggers browser SSO)
atmos auth login --provider acme-sso
# Alternative: authenticate by specifying any identity (also triggers browser SSO)
atmos auth login --identity core-auto/terraform
# Run commands - Atmos auto-selects the correct identity per stack
atmos terraform plan vpc -s plat-use2-dev
export ATMOS_PROFILE=<profile-name> (or prefix each command)When you run atmos terraform plan <component> -s <stack>, Atmos:
plat-dev/terraform), it's selected automaticallyEach stack defines its default identity in its _defaults.yaml file:
# stacks/orgs/acme/plat/dev/_defaults.yaml
auth:
identities:
plat-dev/terraform:
default: true
The identity name (plat-dev/terraform) is resolved by your profile to determine the actual AWS credentials to use.
Profiles are defined in profiles/<profile-name>/atmos.yaml. Each maps identities to Permission Sets:
| Profile | Core Accounts | Platform Dev/Sandbox | Platform Staging/Prod |
|---|---|---|---|
devops |
TerraformApplyAccess | TerraformApplyAccess | TerraformApplyAccess |
developers |
TerraformStateAccess | TerraformApplyAccess | TerraformPlanAccess |
managers |
TerraformApplyAccess | TerraformApplyAccess | TerraformApplyAccess |
Managers also have a RootAccess Permission Set for centralized root access to member accounts.
Permission Set capabilities:
TerraformApplyAccess - Full plan and applyTerraformPlanAccess - Plan only (no apply)TerraformStateAccess - Read state only (for cross-account references)Identities follow the pattern: <tenant>-<stage>/terraform
Examples:
plat-dev/terraform - Platform dev accountcore-auto/terraform - Core automation accountplat-prod/terraform - Platform production accountsuperadmin profile: IAM user (kind: aws/user) with MFA in the root account. Used for coldstart/bootstrap
before SSO is deployed, or as breakglass access. Assumes OrganizationAccountAccessRole into member accounts
via identity chaining. Switch to your assigned SSO profile once the identity layer is deployed.
github-plan profile: OIDC-based authentication for CI/CD plan operations. Uses planner roles with read-only access.
github-apply profile: OIDC-based authentication for CI/CD apply operations. Uses terraform roles with full access. Only used from main branch after PR merge.
If authentication fails:
ATMOS_PROFILE is set: echo $ATMOS_PROFILEatmos auth login --provider acme-sso (or --identity core-auto/terraform)profiles/$ATMOS_PROFILE/atmos.yamlFor authentication-specific debugging:
# Enable debug logging to see auth flow
ATMOS_LOGS_LEVEL=debug atmos terraform plan <component> -s <stack>
Look for:
<tenant>-<stage>/terraform)For general Atmos debugging (configuration, variables, stack resolution), see the debugging-atmos skill.