SynfraCore
Synfracore
Start Learning
Navigation

Academies

Platform

RoadmapsLabsCertificationsInterviewPYQsAI AssistantCareer
Start Learning Free🗺️ Learning Roadmaps

Landing ZonesIntermediate

Real-world patterns, best practices, and deeper topics

✍️
Written by senior engineers. Reviewed for technical accuracy.· Updated 2025 · SynfraCore Landing Zones Team
Expert Content

Landing Zones — Intermediate

AWS Control Tower Setup

bash
# AWS Control Tower sets up a multi-account landing zone automatically
# Prerequisites: new AWS account or existing with minimal config

# Control Tower creates:
# - Management account (root of organization)
# - Log Archive account (centralized S3 for CloudTrail/Config logs)
# - Audit account (read-only access for security tools)
# - Core OUs: Security, Sandbox

# Enrolling existing accounts/OUs is primarily an Account Factory / console
# workflow, not a single direct CLI subcommand *(needs verification --
# check the current AWS CLI controltower command reference for what's
# actually scriptable)*

# Account Factory: self-service account creation
# Configured via Service Catalog in Control Tower console
# Outputs a new account with: SSO access, CloudTrail, Config, GuardDuty, Security Hub

# Guardrails (preventive SCPs + detective Config rules)
aws controltower list-enabled-controls \
  --target-identifier arn:aws:organizations::$MGMT_ACCT:ou/$OU_ID

# Add custom Control Tower controls
aws controltower enable-control \
  --control-identifier arn:aws:controltower:us-east-1::control/AWS-GR_AUDIT_BUCKET_ENCRYPTION_ENABLED \
  --target-identifier arn:aws:organizations::$MGMT_ACCT:ou/$OU_ID

Service Control Policies (SCPs) — Core Guardrails

json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PreventLeavingOrg",
      "Effect": "Deny",
      "Action": ["organizations:LeaveOrganization"],
      "Resource": "*"
    },
    {
      "Sid": "RestrictRegions",
      "Effect": "Deny",
      "NotAction": [
        "iam:*", "organizations:*", "support:*", "budgets:*",
        "route53:*", "cloudfront:*", "waf:*", "sts:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": ["ap-south-1", "us-east-1"]
        }
      }
    },
    {
      "Sid": "PreventDisablingSecurityServices",
      "Effect": "Deny",
      "Action": [
        "cloudtrail:StopLogging", "cloudtrail:DeleteTrail",
        "guardduty:DeleteDetector", "config:DeleteConfigRule",
        "securityhub:DisableSecurityHub"
      ],
      "Resource": "*"
    }
  ]
}
Share:
Join our Community
Daily tips, job alerts, interview help — join engineers learning together
Up Next
🚀
Landing ZonesAdvanced
Production patterns, performance, security hardening
Also Worth Exploring
← Back to all Landing Zones modules
FundamentalsAdvanced