← Back to Questions
AWS

Explain about Cross-account IAM roles?

Learn Explain about Cross-account IAM roles? with simple explanations, real-time examples, interview tips and practical use cases.

Explain About Cross-Account IAM Roles in AWS

Cross-account IAM Roles are one of the most important security and governance features in AWS.

They allow:

  • Secure access between AWS accounts
  • Temporary credential sharing
  • Centralized cloud management
  • Multi-account architecture implementation
Simple Definition: Cross-account IAM roles allow users, applications, or AWS services in one AWS account to securely access resources in another AWS account using temporary credentials.

Why Cross-Account Roles are Needed

Large organizations usually use:

  • Multiple AWS accounts
  • Separate environments
  • Centralized security management

Example accounts:

  • Production account
  • Development account
  • Security account
  • Logging account

Teams often need secure access between these accounts.

Without Cross-Account Roles

Organizations may:

  • Share IAM user credentials
  • Create duplicate users
  • Use insecure access methods

This creates:

  • Security risks
  • Credential management problems
  • Compliance issues

High-Level Cross-Account Architecture

AWS Account A
(User/Application)
        |
AssumeRole API
        |
Cross-Account IAM Role
        |
Temporary Credentials
        |
AWS Account B Resources
    

Core Components

Component Purpose
Source Account Initiates access
Target Account Owns resources
IAM Role Defines permissions
Trust Policy Defines who can assume role
STS Provides temporary credentials

How Cross-Account Roles Work

1. Source account requests role access
2. AWS STS validates trust policy
3. Temporary credentials generated
4. Access granted to target resources
    

Important AWS Service

AWS STS
(Security Token Service)
    

STS generates:

  • Temporary credentials
  • Session tokens
  • Time-limited access

Real-World Example

Scenario

A DevOps team in Account A needs access to production EC2 instances in Account B.

Architecture

DevOps Account
      |
AssumeRole
      |
Production Role
      |
EC2 Access in Production Account
    

Step-by-Step Flow

Step 1 — Create Role in Target Account

Create IAM role in Account B.

Role Permissions Example

Allow:
ec2:DescribeInstances
ec2:StartInstances
    

Step 2 — Configure Trust Policy

Trust policy defines:

Who can assume the role
    

Example Trust Policy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
    

Meaning

Account 111111111111
can assume this role
    

Step 3 — Source Account Assumes Role

aws sts assume-role
    

AWS generates:

  • Temporary access key
  • Temporary secret key
  • Session token

Step 4 — Access Resources

Temporary credentials are used to access resources in target account.

Cross-Account Role Architecture

Source AWS Account
        |
IAM User/Role
        |
sts:AssumeRole
        |
Target AWS Account
        |
Cross-Account IAM Role
        |
Temporary Credentials
        |
AWS Resources
    

Trust Policy vs Permission Policy

Policy Type Purpose
Trust Policy Who can assume role
Permission Policy What actions role can perform

Important Security Principle

Both policies must allow access
    

Common Use Cases

Use Case Description
Centralized Security Security team accesses all accounts
CI/CD Pipelines Deploy to multiple accounts
Cross-Account Monitoring Centralized logging
Shared Services Shared infrastructure management
Multi-Account Governance Enterprise cloud management

Cross-Account Access for Lambda

Lambda Function
      |
Assume Cross-Account Role
      |
Access DynamoDB/S3 in Another Account
    

Cross-Account Access for CI/CD

Jenkins/GitHub Actions
          |
Assume Deployment Role
          |
Deploy to Production Account
    

Security Benefits

  • No credential sharing
  • Temporary access only
  • Centralized access management
  • Improved auditability
  • Reduced credential leakage risk

How Temporary Credentials Improve Security

Credentials Expire Automatically
    

Even if compromised, damage is limited.

Best Practices

  • Use least privilege policies
  • Use MFA for sensitive role assumption
  • Restrict trust relationships
  • Monitor AssumeRole activity
  • Use short session durations

Enable CloudTrail Monitoring

Monitor:

  • AssumeRole events
  • Cross-account activity
  • Suspicious access attempts

Common Mistakes

  • Using wildcard trust policies
  • Giving AdministratorAccess unnecessarily
  • Ignoring CloudTrail monitoring
  • Using long session durations
  • Overly permissive resource access

Example of Dangerous Trust Policy

"Principal": "*"
    

This allows:

Anyone to assume the role
    

Production Recommendation

Always specify exact AWS accounts
or IAM roles
    

Cross-Account Roles in AWS Organizations

Enterprises using:

AWS Organizations
    

commonly implement:

  • Centralized admin roles
  • Security audit roles
  • Shared deployment roles

Production Enterprise Architecture

Central Security Account
          |
Cross-Account Roles
          |
Production Accounts
          |
Development Accounts
          |
Logging Accounts
    

Advantages of Cross-Account Roles

  • Secure multi-account access
  • No credential duplication
  • Temporary secure access
  • Centralized governance
  • Better enterprise security

Challenges

  • Complex trust relationships
  • Difficult troubleshooting
  • Policy management complexity

Interview Answer

Cross-account IAM roles allow users, applications, or AWS services in one AWS account to securely access resources in another AWS account using temporary credentials.

The process works using:

  • IAM Roles
  • Trust policies
  • AWS STS

The source account assumes a role in the target account, and AWS STS generates temporary credentials for secure access.

Cross-account roles are widely used in enterprise multi-account architectures for:

  • CI/CD deployments
  • Centralized security
  • Cross-account monitoring
  • Shared infrastructure management

Quick Summary Table

Component Purpose
IAM Role Provides permissions
Trust Policy Defines who can assume role
STS Generates temporary credentials
Temporary Credentials Secure short-term access

Useful Internal Links

Final Conclusion

Cross-account IAM roles are essential for secure enterprise AWS architectures.

They provide:

  • Secure multi-account access
  • Temporary credential-based security
  • Centralized governance
  • Reduced credential sharing risks

Modern AWS enterprise environments heavily rely on cross-account roles for:

  • CI/CD automation
  • Security operations
  • Centralized monitoring
  • Shared cloud management

Understanding cross-account IAM roles deeply is critical for AWS architects, DevOps engineers, cloud security engineers, and enterprise cloud administrators.

Why this AWS question is important?

This interview question helps candidates understand real-time backend development concepts, practical problem solving, coding fundamentals, system design basics and production-ready application behavior.

Practice this question carefully for Java backend roles, Spring Boot developer interviews, microservices interviews, company interviews and full-stack developer preparation.

About the Author

Naresh Kumar is a Senior Java Backend Engineer with experience building enterprise applications using Java, Spring Boot, Microservices, Docker, Kubernetes and Cloud technologies.