Skip to main content

Tarmac CLI (tarmac-cli)

PyPI version Python License Code style: ruff

Tarmac is a declarative, idempotent Python CLI for bootstrapping and governing enterprise multi-account AWS Organizations.

Define your organizational units, account factory, SCP guardrails, baseline security (CloudTrail, GuardDuty, Security Hub), and IAM Identity Center (SSO) in simple YAML manifests—then reconcile your entire AWS estate with a single command.


Quickstart

1. Installation & Setup

Install from source with uv:

git clone https://github.com/nickdchristian/tarmac-cli.git
cd tarmac-cli
uv sync

You can then run commands with uv run tarmac or install it into your local environment:

uv pip install -e .
tarmac --help

(Once published to PyPI, you can install globally with uv tool install tarmac-cli)

2. Initialize Configuration

Scaffold a production-ready starter project with baseline YAML manifests and CloudFormation templates:

tarmac init --with-templates

This generates:

  • config/organization.yaml: Organization settings, alternate contacts, OU hierarchy, and SCP guardrails.
  • config/accounts.yaml: Account Factory catalog, OU placement, monthly budgets, and security baselines.
  • config/identity.yaml: IAM Identity Center permission sets, users, groups, and multi-account assignments.

3. Validate & Inspect Readiness

Verify your configurations and audit your AWS Management Account before deploying:

# Validate YAML syntax, Pydantic schemas, and cross-references
tarmac validate

# Run 17 automated pre-flight readiness checks (MFA, quotas, contacts, hygiene)
tarmac preflight

4. Deploy Your Landing Zone

Preview proposed actions with a dry run, then execute the automated rollout:

# Preview what will be created and configured
tarmac deploy run --dry-run

# Execute the full 6-phase deployment pipeline
tarmac deploy run

Deployment Pipeline

Tarmac executes an idempotent multi-phase deployment:

[Phase 0: Preflight]   ──► Validate AWS prerequisites, quotas, & credentials
[Phase 1: Org & Root]  ──► Bootstrap AWS Organizations, contacts, & root access
[Phase 2: OUs & SCPs]  ──► Idempotently sync OU tree & attach guardrail SCPs
[Phase 3: Central Log] ──► Deploy Log-Archive bucket & Org-wide CloudTrail
[Phase 4: Accounts]    ──► Provision member accounts, purge default VPCs, set budgets
[Phase 5: Hardening]   ──► Delegate Security Hub / GuardDuty & anomaly monitors
[Phase 6: Identity]    ──► Sync IAM Identity Center permission sets & assignments

You can target a specific phase at any time:

tarmac deploy run --phase 4   # Run only Account Factory provisioning

Command Reference

Command Description
tarmac init Scaffold starter configuration manifests and CloudFormation templates.
tarmac validate Validate configuration manifests against Pydantic schemas and cross-references.
tarmac preflight Run 17 diagnostic checks for management account operational readiness (doctor alias).
tarmac info Display caller identity, AWS account details, and Organization status.
tarmac deploy run Execute the automated multi-phase landing zone rollout (--dry-run to preview).
tarmac status Inspect live landing zone reconciliation and phase completion status.
tarmac drift Audit IAM Identity Center permission sets and member account budget drift.
tarmac deploy destroy Safely destroy deployed governance stacks (protected by production safety locks).
Granular Service Commands

For targeted management outside the end-to-end pipeline:

  • Organizations & OUs:
    • tarmac org bootstrap — Enable AWS Organizations and trusted services.
    • tarmac org contacts — Synchronize alternate contacts (Billing, Security, Ops).
    • tarmac ou sync — Idempotently synchronize OU tree hierarchy.
    • tarmac org scp apply — Reconcile and attach Service Control Policies.
  • Account Factory:
    • tarmac account plan — Preview proposed account actions (Create, Move, No-op).
    • tarmac account apply — Provision missing accounts and assign to OUs.
    • tarmac account sync-tags — Synchronize governance tags with member accounts.
  • Security & Baseline:
    • tarmac baseline cloudtrail — Deploy organization-wide CloudTrail.
    • tarmac baseline backend — Deploy Terraform S3 state and DynamoDB locks.
    • tarmac baseline security — Deploy GuardDuty, Security Hub, and log hardening.
  • IAM Identity Center:
    • tarmac identity status — View Identity Center instance status and region.
    • tarmac identity sync — Synchronize permission sets, users, groups, and assignments.

Safe Teardown

Tarmac includes built-in safeguards to prevent accidental infrastructure or state loss:

  • Production Environment Lock: Refuses to destroy any environment tagged with production or prod unless --force is explicitly provided.
  • Remote State Preservation: Pass --preserve-backend to destroy infrastructure while protecting remote Terraform state buckets and lock tables.
  • Non-Empty Bucket Protection: Halts if unmanaged data exists in S3 buckets unless explicitly confirmed.
# Preview teardown actions
tarmac deploy destroy --dry-run

# Execute teardown preserving Terraform state
tarmac deploy destroy --preserve-backend

Development & Testing

# Sync environment dependencies
uv sync

# Run the 247-test Pytest suite
uv run pytest

# Run static analysis and formatting
uv run ruff check .
uv run ruff format --check .
uv run basedpyright

License

Licensed under the Apache License, Version 2.0.

Metadata

Release files for tarmac-cli 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tarmac-cli 0.1.3
File Size Uploaded Provenance
tarmac_cli-0.1.3.tar.gz 150.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tarmac-cli 0.1.3
File Interpreter ABI Platform
tarmac_cli-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 282.0 kB

Release files / tarmac_cli-0.1.3.tar.gz

Download URL tarmac_cli-0.1.3.tar.gz
Size 150.1 kB
Tags Source
SHA-256 checksum
How to use checksums
90d9b51d954ecb8cbf61eeb17e44343390ab891688d8029f8ac64973471540a4
BLAKE2b-256 checksum
How to use checksums
75923f70396f0c684d5337e9069927a4943bca4bbdc879fba7cbb9d0c396bc55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / tarmac_cli-0.1.3-py3-none-any.whl

Download URL tarmac_cli-0.1.3-py3-none-any.whl
Size 131.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
004bd409400805329b4a3ec78f35e36c65589764122ffce5a67f16098a5b157c
BLAKE2b-256 checksum
How to use checksums
0f880e844ed05f999d49f365d03fea8909e48f7b1c74c15d89e546c7a568b594
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Security for tarmac-cli 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for tarmac_cli-0.1.3.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page