Prerequisites
Everything you need before deploying CloudAtlas. Most items take under 5 minutes to verify.
AWS Account Requirements
You need IAM credentials or an instance role in the account that owns the AWS Organization, or in a standalone account for single-account mode.
Required for multi-account scanning. Go to AWS Console → Organizations to check. Single-account deployments can skip this.
STS must be enabled in your chosen primary region (us-east-1 by default). Verify under IAM → Account settings.
CloudAtlas calls ec2:DescribeRegions to discover opted-in regions. This is enabled by default.
IAM Permissions
Needs ReadOnlyAccess + organizations:ListAccounts + sts:AssumeRole on child account roles. See IAM Setup Guide for the full policy JSON.
Needs ReadOnlyAccess + trust relationship allowing the management account to assume it. Can be created manually, with CloudFormation StackSets, or automatically via the Settings → Setup Roles wizard.
AWS creates this automatically for accounts created within an Organization. Required only if using the automated role setup wizard. For manually-joined accounts you may need to create it.
Infrastructure Requirements
Check with: docker --version && docker compose version. Install via https://docs.docker.com/engine/install/
2 vCPU / 2 GB RAM recommended for organisations with 20+ accounts. Tested on Ubuntu 22.04 and Debian 12.
The backend connects to AWS service endpoints. Most VPS providers allow this by default.
Required for Traefik HTTPS. Add an A record pointing your domain to the VPS public IP.
Traefik uses port 80 for ACME HTTP-01 challenge and port 443 for HTTPS. Not needed for local / HTTP-only deployments.
Network Connectivity
https://sts.amazonaws.com — used for assume-role calls.
https://organizations.us-east-1.amazonaws.com — used to list accounts.
CloudAtlas calls EC2, RDS, Lambda, etc. endpoints in every enabled region. VPC-deployed instances may need NAT Gateway or VPC Endpoints.
Credential Options
CloudAtlas supports three ways to authenticate. Choose the one that fits your deployment:
EC2 / ECS instance role (recommended)
Deploy CloudAtlas on an EC2 instance or ECS task with an IAM role attached. No credentials in env vars. Leave AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY blank in .env.
Static IAM access keys
Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY in .env. Create a dedicated IAM user (not root) with CloudAtlasRootPolicy attached.
Root Role ARN assumption
Configure ROOT_ROLE_ARN in .env or Settings page. CloudAtlas first assumes this role using the base credentials (either instance role or access keys), then uses the resulting session for all operations.
Ready? Continue with: