CLI tool for managing AWS Organization accounts with Control Tower
Project description
augint-org (ai-org) ๐
One-command AWS account provisioning with Control Tower integration and enterprise-grade automation.
Create production-ready AWS accounts in seconds. They auto-configure based on their environment. No manual setup required.
๐ Project Health
| ๐ Documentation | ๐งช Tests | ๐ Coverage | ๐ Security | โ๏ธ Compliance |
|---|
โจ What Does It Do?
The ai-org CLI tool automates AWS multi-account management:
- Creates accounts with one command
- Auto-provisions resources based on environment (prod/staging/sandbox)
- Sets up CI/CD with GitHub Actions OIDC (no AWS keys!)
- Configures monitoring, backups, and compliance automatically
- Sends email notifications with ready-to-use configurations
๐ Quick Start (5 minutes)
1. Install the CLI
# Install with pip (or pipx for isolation)
pip install augint-org
# Or with uv (recommended - 10-100x faster)
uv pip install augint-org
2. Configure Your Environment (Optional)
# Set your AWS profile (required)
export AWS_PROFILE=org
# Optional: Create personal defaults config
ai-org config init
# Or create manually at ~/.ai-org.env
cat > ~/.ai-org.env << EOF
AWS_PROFILE=org
DEFAULT_SSO_EMAIL=you@company.com
DEFAULT_PERMISSION_SET=AWSAdministratorAccess
NOTIFICATIONS_EMAIL=alerts@company.com
BUDGETS_MONTHLY_DEFAULT=1000
BUDGETS_ANOMALY_THRESHOLD=100
EOF
# Note: Environment variables override config file
3. Bootstrap Your Landing Zone
# One-time setup: Create OUs, deploy StackSets, configure policies
ai-org bootstrap
# This runs in minutes and sets up:
# โ
OU structure (Workloads, Sandbox)
# โ
3 core StackSets with auto-deployment
# โ
Service Control Policies for Workloads
# โ
GitHub Actions authentication
# โ
Cost management and budgets
4. Create Your First Project
# Create both staging and production accounts for a project
ai-org account create myapp
# What happens automatically:
# 1. Creates myapp-staging account โ Workloads/Staging OU
# 2. Creates myapp-prod account โ Workloads/Production OU
# 3. Waits for Control Tower provisioning
# 4. StackSets auto-deploy appropriate resources
# 5. Emails you ready-to-use .env configurations
# 6. Sets up AWS CLI profiles automatically
5. Deploy Your Application
# Your accounts are ready! Deploy with SAM or CDK
cd your-app/
sam deploy --profile myapp-staging
# Or use GitHub Actions (already configured!)
git push origin staging
๐ What Gets Deployed Where
| Resource | Production | Staging | Sandbox |
|---|---|---|---|
| S3 Deployment Bucket | โ | โ | โ |
| GitHub OIDC + Roles | โ | โ | โ |
| CloudWatch Monitoring | โ | โ | โ |
| Cost Alerts | โ | โ | โ |
| Automated Backups | โ | โ | โ |
| Centralized Logging | โ | โ | โ |
| Security Policies | โ | โ | โ |
๐ฏ Common Commands
# Account Management
ai-org account create <project> # Create staging + prod accounts
ai-org account create <project> --prod # Create only production
ai-org account list # List all accounts
ai-org account info <project> # Show account details
# Infrastructure Management
ai-org status # Show landing zone health
ai-org stackset list # List deployed StackSets
ai-org stackset update <name> # Update a StackSet
ai-org validate # Validate all configurations
# Configuration
ai-org config show # Display current config
ai-org config set notifications.email x@y # Update config value
ai-org config profiles add <name> # Add AWS CLI profile
# Development
ai-org account sandbox <name> # Create sandbox account
ai-org costs report --days 30 # Cost analysis
ai-org compliance check # Compliance report
๐ง GitHub Actions Setup
The bootstrap process creates a SAMDeployRole in each account. Your workflows just need:
name: Deploy
on:
push:
branches: [main, staging]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: aws-actions/configure-aws-credentials@v4
with:
# These are automatically created by ai-org!
role-to-assume: ${{ vars.AWS_ROLE_ARN }}
aws-region: us-east-1
- run: sam deploy --config-env ${{ vars.ENVIRONMENT }}
๐๏ธ Architecture
Control Tower (AWS Managed)
โโโ Security OU
โ โโโ Audit Account
โ โโโ Log Archive Account
โโโ Sandbox OU (Unrestricted)
โโโ Workloads OU (Your Domain)
โโโ All workload accounts (both staging & production)
Key Design Principles
- Zero-touch provisioning - Accounts self-configure based on OU
- GitOps ready - GitHub Actions OIDC from day one
- Cost conscious - Staging gets essentials, prod gets everything
- Secure by default - SCPs enforce security baseline
- Audit friendly - Centralized logging and compliance reports
๐ Documentation
| Resource | Description |
|---|---|
| API Reference | Complete CLI and module documentation |
| Architecture Guide | System design and decision rationale |
| Configuration Guide | Detailed config options and examples |
| Migration Guide | Migrating existing accounts |
| Development Guide | Contributing and local development |
๐ Prerequisites
Before running ai-org bootstrap:
- โ AWS Control Tower is activated
- โ AWS SSO configured with management account access
- โ AWS CLI v2 with SSO profile configured
- โ Python 3.12+ installed
- โ GitHub organization created (for OIDC)
๐ง Troubleshooting
Account Creation Issues
# Check account status
ai-org account info myapp --verbose
# View CloudFormation events
ai-org debug stackset-instances pipeline-bootstrap
# Verify OU structure
ai-org validate organization
Common Issues
- "Production OU not visible in Account Factory" โ Run
ai-org bootstrap --enable-baselines - "StackSets not deploying" โ Check account is in correct OU with
ai-org account move - "GitHub Actions can't authenticate" โ Verify with
ai-org validate github-oidc
๐ค Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
๐ License
MIT License - see LICENSE for details.
๐ Acknowledgments
Built with:
- AWS Control Tower for landing zone management
- uv for blazing fast Python tooling
- python-semantic-release for automated versioning
- pdoc for documentation generation
Stop clicking through AWS Console. Start shipping.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file augint_org-0.12.0.tar.gz.
File metadata
- Download URL: augint_org-0.12.0.tar.gz
- Upload date:
- Size: 233.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc3fd2f374cd76dd838ccc62ca07edf98bb99bea4c6a4b04981d1fd92b98a6db
|
|
| MD5 |
5d1fc8bddaffff31e81dde8445502b29
|
|
| BLAKE2b-256 |
bfb2ead7ebc41ecbc00402812500f38c8d84d6c4eb3ff82dbfb624a0ea6323ed
|
Provenance
The following attestation bundles were made for augint_org-0.12.0.tar.gz:
Publisher:
publish.yaml on Augmenting-Integrations/aillc-org
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
augint_org-0.12.0.tar.gz -
Subject digest:
fc3fd2f374cd76dd838ccc62ca07edf98bb99bea4c6a4b04981d1fd92b98a6db - Sigstore transparency entry: 1228372777
- Sigstore integration time:
-
Permalink:
Augmenting-Integrations/aillc-org@5b57d177292529e1194cf0b0a6c2759e2014333c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Augmenting-Integrations
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@5b57d177292529e1194cf0b0a6c2759e2014333c -
Trigger Event:
push
-
Statement type:
File details
Details for the file augint_org-0.12.0-py3-none-any.whl.
File metadata
- Download URL: augint_org-0.12.0-py3-none-any.whl
- Upload date:
- Size: 73.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d58072b8d940cf5a39630260816fc39dd769b1b24837ae72414398af4f7ee65a
|
|
| MD5 |
8b0066b578e944e837aa79f89ac68c85
|
|
| BLAKE2b-256 |
f9736050998235b7de55f3ca51658d8305f5b3fa00a2f490d72bfdb171b9790f
|
Provenance
The following attestation bundles were made for augint_org-0.12.0-py3-none-any.whl:
Publisher:
publish.yaml on Augmenting-Integrations/aillc-org
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
augint_org-0.12.0-py3-none-any.whl -
Subject digest:
d58072b8d940cf5a39630260816fc39dd769b1b24837ae72414398af4f7ee65a - Sigstore transparency entry: 1228372788
- Sigstore integration time:
-
Permalink:
Augmenting-Integrations/aillc-org@5b57d177292529e1194cf0b0a6c2759e2014333c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/Augmenting-Integrations
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@5b57d177292529e1194cf0b0a6c2759e2014333c -
Trigger Event:
push
-
Statement type: