Identities
Identities represent the user accounts or roles available from provider credentials. Configure identities in the auth.identities section of your atmos.yaml.
AWS Permission Set
For AWS SSO permission sets.
atmos.yaml
kind- Required. Must be
aws/permission-set. default- Optional. If
true, this identity is used when no identity is specified. via.provider- Required. Name of the provider to use for authentication.
principal.name- Required. Name of the permission set.
principal.account.name- Account name/alias (resolved via SSO ListAccounts API).
principal.account.id- Numeric account ID (used directly, no lookup required).
AWS Assume Role
For assuming IAM roles, either directly from a provider or chained from another identity.
atmos.yaml
kind- Required. Must be
aws/assume-role. via.identity- Name of another identity to chain from (mutually exclusive with
via.provider). via.provider- Name of a provider to use directly (mutually exclusive with
via.identity). principal.assume_role- Required. ARN of the IAM role to assume.
principal.session_name- Optional. Session name for CloudTrail auditing.
AWS User (Break-glass)
For static IAM user credentials, typically used for emergency access.
atmos.yaml
kind- Required. Must be
aws/user. credentials.access_key_id- AWS access key ID. Use
!envto reference environment variables. credentials.secret_access_key- AWS secret access key. Use
!envto reference environment variables. credentials.region- AWS region for API calls.
credentials.mfa_arn- Optional. MFA device ARN. When set, Atmos prompts for TOTP code during authentication.
Instead of storing credentials in configuration, use atmos auth user configure to store them securely in the system keyring.
Identity Chaining
Identity chaining allows you to create complex authentication flows where one identity is used to obtain another.
atmos.yaml
Chain Rules:
- Chains can be arbitrarily deep:
provider → identity → identity → ... → identity via.providerandvia.identityare mutually exclusiveaws/useridentities don't require aviafield- Circular dependencies are detected and rejected
Session Configuration
Configure session durations at the identity level to override provider defaults.
atmos.yaml
IAM user limits: 15m-12h (no MFA) or 15m-36h (with MFA)
Component-Level Overrides
Override authentication settings for specific components in your stack configuration.
stacks/catalog/myapp.yaml
Component auth configuration is deep-merged with global auth. Component identities override global identities with the same name.
Default Identity
Mark one identity as the default to use when no identity is explicitly specified:
atmos.yaml
Only one identity should be marked as default. If multiple identities have default: true, the behavior is undefined.
Using Profiles for Role-Based Access
Use Atmos profiles to define different identity configurations for various team roles:
atmos.yaml
Activate a profile based on your role:
# Developers use the developer profile
atmos --profile developer terraform plan myapp -s dev
# Platform engineers use the platform profile
atmos --profile platform terraform apply myapp -s prod --identity prod-deploy
# CI/CD uses the ci profile
ATMOS_PROFILE=ci atmos terraform apply myapp -s prod
Related Commands
📄️ atmos auth login
Authenticate with a configured identity
📄️ atmos auth whoami
Show current authentication status
📄️ atmos auth shell
Start a shell with identity credentials
📄️ atmos auth exec
Execute a command with identity credentials
📄️ atmos auth env
Export credentials as environment variables
📄️ atmos auth list
List available identities
📄️ atmos auth user configure
Store IAM user credentials in the keyring