Organization

We use Organization Units (OUs) in AWS to segregate workloads and its guardrails based on environments. OUs help us implement consistent security controls, manage access permissions, and ensure compliance across our AWS infrastructure. In our basic setup, we've established the following OU hierarchy:

Structure

spinner

OU Hierarchy

Our AWS Organization structure follows a logical hierarchy:

Root

  • Root - The default top-level OU in any AWS Organization

Second Level

  • Workloads - Contains the customers software development lifecycle (SDLC) environments

  • Shared Services - Houses infrastructure shared across environments

  • Security - Manages centralized security services

  • Suspended - Holds accounts scheduled for decommissioning

Workloads Branch

  • Production - Production workloads and customer-facing services

  • Staging - Pre-production testing environment

  • Development - Development and integration testing

Shared Services Branch

  • Connectivity - Network resources and connectivity services

  • Management - Infrastructure hosting support services (ArgoCD, Trivy, Falco, etc.)

Security Branch

  • Auth - AWS Identity Center and centralized authentication solutions

  • Logs - Aggregated logging services (VPC logs, etc.)

Account Placement

All accounts are placed at the botton of the tree of the OU hierarchy to ensure proper policy inheritance and access segregation. Multiple accounts can exist within a single OU when they serve similar purposes and require identical guardrails.

Service Control Policies (SCPs)

Service Control Policies (SCPs) are attached to OUs to enforce constraints on resources within that OU hierarchy. They act as guardrails by either:

  • Limiting which actions can be performed

  • Restricting which AWS services can be accessed

Default Policies

We apply these three foundational SCPs to the Root OU by default:

1. Deny Accounts Leaving the Organization

Purpose: Prevents accounts from being removed from the organization.

Benefits:

  • Ensures centralized management of all accounts

  • Maintains consistent policy enforcement

  • Prevents account administrators from removing organizational oversight

Applied at the Root OU to affect all accounts.

chevron-rightImplementationhashtag

2. Deny Usage of Root User Account

Purpose: Restricts usage of the powerful root user account.

Benefits:

  • Prevents unauthorized access to the most privileged user in AWS accounts

  • Enforces usage of IAM roles for administrative tasks

  • Creates audit trail for all administrative actions

Applied at the Root OU to affect all accounts.

chevron-rightImplementationhashtag

3. Deny Regions

Purpose: Restricts resource creation to approved AWS regions only.

Benefits:

  • Ensures compliance with data residency requirements

  • Simplifies resource management by consolidating to specific regions

  • Controls cloud spend by preventing resource sprawl

Applied at the Root OU to affect all accounts.

chevron-rightImplementationhashtag

Last updated

Was this helpful?