5.1 AWS Organizations Hierarchy, OUs & Account Provisioning

Key Takeaways

  • AWS Organizations establishes a hierarchical tree of Organizational Units (OUs) rooted under a single Management account, enforcing structural blast radius isolation across security, infrastructure, and workload domains.
  • Production-grade AWS landing zones decouple critical operational capabilities into dedicated accounts: Log Archive (immutable centralized storage) and Security Tooling (delegated administrator for GuardDuty, Security Hub, and Macie).
  • Automated account creation leverages the asynchronous CreateAccount API, tracking execution state via EventBridge events or Step Functions to orchestrate immediate OU assignment and baseline resource deployment.
  • When an account is created natively via Organizations, AWS automatically provisions the OrganizationAccountAccessRole with AdministratorAccess; invited existing accounts do not automatically inherit this role.
  • Beyond authorization guardrails, AWS Organizations centrally governs environments using Tag Policies for resource taxonomy, Backup Policies for centralized AWS Backup orchestration, and AI Service Opt-Out Policies for enterprise data privacy.
Last updated: September 2026

Enterprise Multi-Account Architecture Principles

In modern cloud engineering, managing an enterprise footprint within a single AWS account is considered an anti-pattern. As organizations scale, a single account inevitably encounters hard AWS service quotas (such as API rate limits, VPC limits, and IAM policy size constraints), monolithic blast radiuses where a security compromise affects all environments, and complex, error-prone IAM permission boundaries.

AWS Organizations solves these structural challenges by consolidating multiple AWS accounts into an administratively unified tree structure governed by programmatic policies and centralized billing.

The Need for Multi-Account Isolation

  1. Blast Radius Containment: A security compromise, credential leak, or catastrophic operational misconfiguration (such as a destructive deployment script) in a development account remains physically isolated from production workloads and sensitive corporate data.
  2. Granular Security and Compliance Boundaries: Highly regulated environments (such as PCI-DSS cardholder data environments or HIPAA health records) can be segregated into dedicated accounts subject to strict audit trails, dedicated encryption keys, and immutable logging.
  3. Independent Service Quotas: AWS API rate limits (such as CloudFormation deploy calls, EC2 instance launch limits, and Route 53 queries) apply per account per region. Multi-account partitioning prevents noisy neighbor workloads in development or testing from starving production pipelines.
  4. Precise Cost Allocation: While bills are aggregated centrally for volume discounts, individual member accounts provide definitive attribution of infrastructure expenditure to distinct cost centers, business units, or engineering squads without complex tagging heuristics.

Recommended AWS Organizations Hierarchy

AWS Well-Architected multi-account guidance recommends organizing accounts into functional Organizational Units (OUs) rather than mirroring corporate reporting structures. The hierarchy branches beneath a single Root container.

                                  [ Organizations Root ]
                                             │
        ┌───────────────────┬────────────────┴────────────────┬───────────────────┐
        ▼                   ▼                                 ▼                   ▼
  [ Security OU ]   [ Infrastructure OU ]              [ Workloads OU ]     [ Sandbox OU ]
   ├─ Log Archive    ├─ Network Account                 ├─ Dev Accounts      └─ Isolated R&D
   └─ Security Tool  └─ Shared Services / Tools         ├─ Test Accounts
                                                        └─ Prod Accounts

Core Organizational Units and Account Roles

Organizational Unit (OU)Dedicated AccountCore Responsibilities & Delegated Administration
Management Account (Root)Organization RootAccount creation, billing consolidation, payment methods, organization-wide policy attachment (SCPs, Tag Policies). Exam Rule: Never run application workloads or development tasks in the Management account.
Security OULog Archive AccountIngests and stores centralized, immutable copies of all AWS CloudTrail organization trails, Amazon VPC Flow Logs, AWS Config logs, and Route 53 resolver query logs. Protected by S3 Object Lock and strict bucket policies prohibiting deletion even by administrators.
Security OUSecurity Tooling (Audit)Acts as the Delegated Administrator for centralized security services: AWS Security Hub, Amazon GuardDuty, AWS IAM Identity Center, AWS CloudTrail, Amazon Macie, and Amazon Inspector. Dedicated incident responders conduct forensic investigations here without accessing workload accounts directly.
Infrastructure OUNetwork AccountManages external and cross-account connectivity: AWS Transit Gateway, AWS Network Firewall, Route 53 private hosted zones and inbound/outbound resolvers, AWS Direct Connect gateways, and centralized NAT Gateways.
Infrastructure OUShared Services / ToolsHosts centralized CI/CD pipelines (AWS CodePipeline, Jenkins), shared container image registries (Amazon ECR), internal artifact repositories (AWS CodeArtifact), and central identity directory connectors.
Workloads OUDev / Test / Prod AccountsDedicated accounts hosting operational microservices, applications, and databases. Nested child OUs (or separated peer OUs) isolate lifecycle environments to prevent pre-production changes from impacting live traffic.
Sandbox OUR&D / ExperimentationEphemeral, detached accounts granted to developers for prototyping. Detached from corporate VPCs and internal networks, governed by rigid spend limits, and subjected to automated nightly resource teardown routines.

Automated Account Provisioning and Onboarding

Manually clicking through the AWS Management Console to provision accounts does not scale and introduces human configuration errors. Enterprise DevOps requires continuous, programmatic account provisioning.

The CreateAccount API Mechanics

The AWS Organizations CreateAccount API creates a new member account that automatically joins the organization:

  • Asynchronous Execution: Calling aws organizations create-account --email dev-team@corp.internal --account-name "Mobile-App-Dev" initiates an asynchronous workflow and immediately returns a CreateAccountStatus object containing a unique Id (e.g., car-1234567890abcdef0).
  • Status Tracking: The status transitions through IN_PROGRESS to either SUCCEEDED or FAILED. The provisioning orchestration must poll DescribeCreateAccountStatus using the request Id, or reactively listen for state changes.
  • Default IAM Role: By default, AWS Organizations automatically creates an IAM role named OrganizationAccountAccessRole inside the new member account. This role grants AdministratorAccess and establishes an IAM trust relationship allowing principals in the Management account to assume it via AWS STS.

[!IMPORTANT] DOP-C02 Exam Trap — Created vs. Invited Accounts: When an account is created using CreateAccount, AWS automatically deploys the OrganizationAccountAccessRole. However, when an existing standalone AWS account is brought into the organization via InviteAccountToOrganization, AWS does not create this role! Administrators must manually create an IAM cross-account role with trust back to the Management account, or deploy it using an onboarding script before centralized automation can manage the invited account.

Event-Driven Account Provisioning Pipeline

To enforce security baselines on newly created accounts before releasing them to engineering teams, DevOps teams construct event-driven onboarding pipelines combining Amazon EventBridge, AWS Step Functions, and AWS CloudFormation StackSets:

[ Organizations: CreateAccount API ]
                │
                ▼
  [ Account Provisioned (SUCCEEDED) ]
                │
                ▼ (Emits AWS API Call via CloudTrail)
       [ Amazon EventBridge ]
                │
                ▼ (Triggers)
     [ AWS Step Functions ]
        │
        ├─ 1. MoveAccount: Relocate from Root to target Workload OU
        ├─ 2. TagResource: Apply mandatory CostCenter, Owner, and Env tags
        ├─ 3. CloudFormation StackSets: Deploy baseline VPC, IAM roles, and KMS keys
        ├─ 4. AWS Config & GuardDuty: Verify member enablement
        └─ 5. Notify Team: Send provisioning success notification via Amazon SNS
  1. Event Capture: CloudTrail captures the completion of CreateAccount and forwards the CreateAccountResult event to Amazon EventBridge in the Management account.
  2. State Machine Execution: An EventBridge rule detects the successful account creation and invokes an AWS Step Functions state machine.
  3. OU Relocation: Step Functions executes an AWS Lambda task that invokes organizations:MoveAccount, specifying the AccountId, the SourceParentId (initially the Organization Root), and the DestinationParentId (e.g., the Dev-Workloads-OU). Moving the account causes it to immediately inherit all Service Control Policies (SCPs) attached to the target OU.
  4. Baseline StackSet Deployment: CloudFormation StackSets with automatic deployment enabled (AutoDeployment: Enabled: true, RetainStacksOnAccountRemoval: false) automatically detect the new account in the target OU. StackSets immediately provisions baseline infrastructure: local security groups, VPCs, IAM roles for CI/CD runners, and default Amazon EBS volume encryption (ec2:EnableEbsEncryptionByDefault).
  5. Identity & Access Integration: The state machine registers the new account with AWS IAM Identity Center (AWS SSO) and assigns preconfigured permission sets to designated Active Directory / Okta groups.

Governance Beyond SCPs: Organizations Management Policies

While Service Control Policies (SCPs) restrict authorization (detailed in Section 5.2), AWS Organizations supports specialized declarative management policies to maintain corporate compliance across all member accounts.

1. Tag Policies

Tag Policies define standardized tagging rules across an organization. They enforce key-value pair conventions for metadata such as CostCenter, Environment, and ProjectOwner:

  • Schema Enforcement: Specifies the exact case-sensitive key name (e.g., Environment rather than environment or env) and an allowed list of valid values (e.g., ['development', 'staging', 'production']).
  • Non-Compliance Auditing: Automatically evaluates resources across member accounts and generates non-compliance reports in the AWS Organizations console.
  • Preventive Enforcement: When tag enforcement is enabled for supported resource types, AWS denies any API call that attempts to create a resource or modify tags with non-compliant keys or values.
{
  "tags": {
    "CostCenter": {
      "tag_key": {
        "@@assign": "CostCenter"
      },
      "tag_value": {
        "@@assign": [
          "Finance-101",
          "Engineering-202",
          "Security-303"
        ]
      },
      "enforced_for": {
        "@@assign": [
          "ec2:instance",
          "s3:bucket"
        ]
      }
    }
  }
}

2. Backup Policies

Backup Policies define organization-wide AWS Backup plans deployed automatically to member accounts. Instead of each engineering team writing independent backup scripts, a centralized backup policy configures:

  • Resource assignment rules based on resource tags (e.g., resources tagged BackupPlan: Gold).
  • Backup frequency (e.g., daily snapshots retained for 35 days).
  • Cross-Region and cross-account backup copies (e.g., copying snapshots to a dedicated, locked backup vault in the Log Archive or Security Tooling account for ransomware protection).

3. AI Service Opt-Out Policies

Enterprise compliance frameworks frequently prohibit cloud vendors from utilizing proprietary customer data to train artificial intelligence models. AI Service Opt-Out Policies allow organizations to opt out of having content stored or processed by AWS AI services (such as Amazon Rekognition, Amazon Transcribe, Amazon Comprehend, and Amazon Bedrock) utilized for AWS model training and quality improvement.


Consolidated Billing and Cost Governance

AWS Organizations consolidates the payment method for all member accounts into the single Management account:

  • Volume Tiering: Usage across all member accounts is aggregated for pricing tiers. For instance, data transferred out of Amazon S3 or EC2 across 50 member accounts is pooled, qualifying the company for higher-volume, lower-per-gigabyte pricing tiers much faster.
  • Savings Plans and Reserved Instance (RI) Sharing: By default, unused Reserved Instance hours and Savings Plans commitments purchased in one account apply across all eligible usage within the organization. If a business unit requires strict budget boundaries without cross-subsidization, RI discount sharing can be selectively disabled for specific member accounts.
  • Cost Allocation Tags: User-defined cost allocation tags activated in the Management account propagate to billing reports (AWS Cost and Usage Report - CUR) across all member accounts, providing unified spend visibility in AWS Cost Explorer.
Loading diagram...
AWS Organizations Enterprise Hierarchy & Automated Account Onboarding Flow
Test Your Knowledge

A DevOps engineer needs to automate the onboarding of new AWS accounts created via the AWS Organizations CreateAccount API. Security policy dictates that each newly provisioned account must immediately be moved from the organization root to the Workloads-Dev Organizational Unit (OU), have baseline security IAM roles and VPC configurations deployed, and enforce Amazon EBS encryption by default across all regions before application developers receive access. Which automated architecture meets these requirements with the least operational overhead?

A
B
C
D
Test Your Knowledge

A large financial enterprise uses AWS Organizations to manage over 150 member accounts. Developers use inconsistent casing and values for the mandatory CostCenter tag, and resources are also created without the tag. Which centrally managed design standardizes tag values while addressing missing tags with the correct enforcement mechanisms?

A
B
C
D
Test Your Knowledge

An enterprise acquires a subsidiary company that already operates an independent AWS account with production workloads. The DevOps team invites the subsidiary account to join the parent company's AWS Organization using the InviteAccountToOrganization API. After the subsidiary accepts the invitation and the account is moved into the Workloads OU, central DevOps automation scripts fail when attempting to assume the OrganizationAccountAccessRole in the newly joined account. What is the cause of this failure and how should it be resolved?

A
B
C
D