Skip to main content

Tarmac CLI (tarmac-cli)

PyPI version Python versions 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.4

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.4
File Size Uploaded Provenance
tarmac_cli-0.1.4.tar.gz 150.1 kB With provenance Details

Built distribution (wheel)

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

Total release size: 282.0 kB

Release files / tarmac_cli-0.1.4.tar.gz

Download URL tarmac_cli-0.1.4.tar.gz
Size 150.1 kB
Tags Source
SHA-256 checksum
How to use checksums
45fc63654d887cc4ed9d6b744a7c933b7ddb6e83e53b5cecf3dc42e67562e97e
BLAKE2b-256 checksum
How to use checksums
34082eea20bbcbd94190f5be9b82e8ee6ec15f141b4efa554f14b0e0e9c9a4b3
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.4-py3-none-any.whl

Download URL tarmac_cli-0.1.4-py3-none-any.whl
Size 131.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1397d201100d3c6620e8925e4dc70545bb21a6bb8cb14e442fe5ac67cadc59ae
BLAKE2b-256 checksum
How to use checksums
4ce67c948d36ada7a323bd0b8ec82db63633360a840b03dfdeb9b5f01b77cef9
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.4

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.4.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