Skip to main content

Service Control Policies

Last Updated: 2026-03-06 Source: AWS Organizations API via .state/discovered-scps.json and .state/scps/*.json, ndx-try-aws-scp Captured SHA: 3443cac (ndx-try-aws-scp), 6d70ae3 (ndx-try-aws-lza)

Executive Summary

The NDX:Try AWS organization enforces 19 Service Control Policies from four management sources: AWS Control Tower (4 guardrails), Landing Zone Accelerator (8 guardrails), Terraform via ndx-try-aws-scp (4 cost/security policies), and ISB Core (2 lifecycle policies), plus the default FullAWSAccess baseline. The SCPs implement a layered defence strategy where pool accounts in the Active OU receive cost avoidance restrictions, while Available and Quarantine accounts are fully write-protected.


SCP Inventory

Summary by Management Source

SourceCountManagement ToolScope
AWS (FullAWSAccess)1AWS ManagedRoot
AWS Control Tower4Control Tower ConsoleVarious OUs
Landing Zone Accelerator8LZA YAML config (ndx-try-aws-lza)Core/Security/Infrastructure OUs
Terraform4Terraform (ndx-try-aws-scp)Innovation Sandbox Pool OUs
ISB Core2ISB AccountPool StackInnovation Sandbox Pool OUs
Total19

Complete SCP List

Policy IDNameSourceDescription
p-FullAWSAccessFullAWSAccessAWSAllows all actions (default baseline)
p-8wd7ba5zaws-guardrails-NllhqIControl TowerManaged guardrail
p-nxzjmfvtaws-guardrails-LfCVzNControl TowerManaged guardrail
p-trgexdi8aws-guardrails-ZkxPzjControl TowerManaged guardrail
p-u1nq4ha1aws-guardrails-mQGCETControl TowerManaged guardrail
p-wr0deafeAWSAccelerator-Core-Guardrails-1LZAProtect CloudTrail, Config, LZA resources
p-eybze26qAWSAccelerator-Core-Guardrails-2LZAProtect security services, block root account
p-eolruvn3AWSAccelerator-Core-Sandbox-Guardrails-1LZANetwork restrictions, storage encryption
p-k3kvpq9aAWSAccelerator-Core-Workloads-Guardrails-1LZANetwork restrictions, storage encryption
p-vtn1xi9mAWSAccelerator-Security-Guardrails-1LZASecurity account network/encryption
p-w2ssyciyAWSAccelerator-Infrastructure-Guardrails-1LZAInfrastructure network/firewall protection
p-txuho3u8AWSAccelerator-Quarantine-New-ObjectLZABlock all non-LZA actions on new accounts
p-s37b6cezAWSAccelerator-Suspended-GuardrailsLZABlock LZA from suspended accounts
p-6tw8eixpInnovationSandboxRestrictionsScpTerraformRegion, security, isolation restrictions
p-7pd0szg9InnovationSandboxAwsNukeSupportedServicesScpTerraformAllowlist for aws-nuke supported services
p-1rzl0ufvInnovationSandboxCostAvoidanceComputeScpTerraformEC2/RDS/EKS instance type restrictions
p-64setrznInnovationSandboxCostAvoidanceServicesScpTerraformBlock expensive services
p-gn4fu3coInnovationSandboxProtectISBResourcesScpISB CoreProtect ISB control plane resources
p-tyb1wjxvInnovationSandboxWriteProtectionScpISB CoreDeny all actions (read-only mode)

OU-to-SCP Attachment Map

Effective SCP Stack by Account State

Account State (OU)Inherited SCPsDirect SCPsEffective Behaviour
AvailableFullAWSAccess, RestrictionsScp, NukeSupportedScp, ProtectISBScpWriteProt ectionScpComplete write lockdown (read-only)
ActiveFullAWSAccess, RestrictionsScp, NukeSupportedScp, ProtectISBScpCostComputeScp, CostServicesScpPermitted services with cost guards
CleanUpFullAWSAccess, RestrictionsScp, NukeSupportedScp, ProtectISBScp(none direct)ISB/LZA roles can nuke resources
FrozenFullAWSAccess, RestrictionsScp, NukeSupportedScp, ProtectISBScp(none direct)Inherits parent restrictions only
QuarantineFullAWSAccess, RestrictionsScp, NukeSupportedScp, ProtectISBScpWriteProtectionScpComplete write lockdown

Terraform-Managed Policies (ndx-try-aws-scp)

InnovationSandboxRestrictionsScp (p-6tw8eixp)

Attached To: ndx_InnovationSandboxAccountPool OU (all pool accounts inherit)

Statement IDEffectControls
DenyRegionAccessDenyRestricts actions to us-east-1 and us-west-2 only. Bedrock API calls are exempt from region restrictions.
DenyExpensiveBedrockModelsDenyBlocks Anthropic Claude Opus and Sonnet models (cost control). Cheaper models (Haiku, Nova) remain available.
SecurityAndIsolationRestrictionsDenyBlocks CloudTrail modifications, RAM sharing, SSM document sharing, WAF firewall manager changes.
CostImplicationRestrictionsDenyBlocks billing modifications, reserved instance purchases, savings plans, Shield subscriptions.
OperationalRestrictionsDenyBlocks region enablement, CloudHSM, Direct Connect, Route53 Domains, Storage Gateway, and 30+ other restricted services.

Exempt Roles: InnovationSandbox-ndx*, AWSReservedSSO_ndx_IsbAdmins*, stacksets-exec-*, AWSControlTowerExecution.

InnovationSandboxAwsNukeSupportedServicesScp (p-7pd0szg9)

Attached To: ndx_InnovationSandboxAccountPool OU

Type: Allowlist policy (denies everything NOT in the list)

This SCP ensures sandbox users can only create resources in services that aws-nuke can clean up. It allows approximately 140 services including: EC2, Lambda, DynamoDB, S3, RDS, ECS, EKS, API Gateway, CloudFormation, Bedrock, SageMaker, Redshift, ElastiCache, Kinesis, Glue, and many more. Textract is partially allowed (specific API actions only).

InnovationSandboxCostAvoidanceComputeScp (p-1rzl0ufv)

Attached To: Active OU only

Statement IDEffectControls
DenyUnallowedEC2DenyEC2 instance types restricted to: t2.micro/small/medium, t3.micro/small/medium/large, t3a.micro/small/medium/large, m5.large/xlarge, m6i.large/xlarge
DenyExpensiveEC2DenyBlocks GPU (p*, g*), inference (inf*, trn*), deep learning (dl*), high-memory (u-), bare metal (.metal*), and instances larger than *.12xlarge
DenyExpensiveEBSDenyBlocks io1/io2 (provisioned IOPS) EBS volume types
DenyLargeEBSDenyBlocks EBS volumes larger than 500 GB
DenyUnallowedRDSDenyRDS restricted to: db.t3., db.t4g., db.m5.large/xlarge, db.m6g.large/xlarge, db.m6i.large/xlarge
DenyUnallowedCacheDenyElastiCache restricted to: cache.t3., cache.t4g., cache.m5.large, cache.m6g.large
LimitEKSSizeDenyEKS node groups limited to maxSize of 5
LimitASGSizeDenyAuto Scaling groups limited to MaxSize of 10
DenyLambdaPCDenyBlocks Lambda provisioned concurrency

InnovationSandboxCostAvoidanceServicesScp (p-64setrzn)

Attached To: Active OU only

Statement IDEffectBlocked Services
DenyExpensiveMLDenySageMaker endpoints, training jobs, hyperparameter tuning
DenyExpensiveDataDenyEMR job flows, Redshift clusters, GameLift fleets
DenyExpensiveServicesDenyKafka (MSK), FSx, Kinesis streams, dedicated hosts, reserved instances, Neptune, DocumentDB, MemoryDB, OpenSearch, Batch compute, Glue jobs/dev endpoints, Timestream, QLDB

ISB Core Policies

InnovationSandboxProtectISBResourcesScp (p-gn4fu3co)

Attached To: ndx_InnovationSandboxAccountPool OU

Statement IDEffectProtected Resources
ProtectIsbControlPlaneResourcesDenyISB roles (InnovationSandbox-ndx*), SSO roles (AWSReservedSSO*), ISB-tagged resources (*Isb-ndx*), StackSets exec roles, SAML providers
ProtectControlTowerResourcesDenyControl Tower trails, EventBridge rules, Lambda functions, log groups, SNS topics, IAM roles
DenyConfigActionsDenyAWS Config recorder/delivery channel modifications
ProtectControlTowerTaggedConfigResourcesDenyConfig resources tagged aws-control-tower: managed-by-control-tower
DenyControlTowerConfigTagActionsDenyAdding/removing aws-control-tower tags from Config resources

InnovationSandboxWriteProtectionScp (p-tyb1wjxv)

Attached To: Available OU, Quarantine OU

This is the most restrictive SCP -- a single statement that denies all actions on all resources unless the principal is an ISB control plane role, ISB admin SSO role, StackSets exec role, or AWSControlTowerExecution role.

{
"Statement": [{
"Sid": "DenyAllExceptIsbRoles",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"ArnNotLike": {
"aws:PrincipalARN": [
"arn:aws:iam::*:role/InnovationSandbox-ndx*",
"arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/*AWSReservedSSO_ndx_IsbAdmins*",
"arn:aws:iam::*:role/stacksets-exec-*",
"arn:aws:iam::*:role/AWSControlTowerExecution"
]
}
}
}]
}

LZA-Managed Policies

AWSAccelerator-Core-Guardrails-1 (p-wr0deafe)

Protects LZA-managed infrastructure from unauthorized modification:

Statement IDProtects
GRCFGRAWS Config rules tagged Accelerator: AWSAccelerator
GRLMBLambda functions named AWSAccelerator*
GRSNSSNS topics named aws-accelerator-*
GRCWLGCloudWatch log groups aws-accelerator-* and /aws/lambda/AWSAccelerator*
GRKINKinesis/Firehose streams named AWSAccelerator*
GREBEventBridge rules named AWSAccelerator*

Exempt Roles: AWSAccelerator*, AWSControlTowerExecution, cdk-accel*.

AWSAccelerator-Core-Guardrails-2 (p-eybze26q)

Security service and root account protections:

Statement IDProtects
GRIAMRLZA IAM roles from modification
GRIAMRTIAM roles tagged Accelerator: AWSAccelerator
GRCFMLZA CloudFormation stacks from deletion
GRSSMSSM parameters under /accelerator*
GRS3S3 buckets aws-accelerator* and cdk-accel*
GRRURoot account usage (Deny all for root principal)
GRSECGuardDuty, SecurityHub, Macie, IAM account settings, Organizations leave

AWSAccelerator-Core-Sandbox-Guardrails-1 (p-eolruvn3)

Network and encryption for sandbox-tier accounts:

Statement IDControls
GRNETSEC1Prevent deletion of Accelerator-tagged EC2 resources
GRNETSEC2Block VPC/subnet/route/TGW creation and modification on Accelerator-tagged resources
GREFSEnforce EFS encryption at rest
GRRDS1Enforce RDS instance encryption
GRRDS2Enforce Aurora cluster encryption

AWSAccelerator-Quarantine-New-Object (p-txuho3u8)

Blocks all actions except from LZA/Control Tower execution roles. Applied to newly created accounts until LZA pipeline completes.

AWSAccelerator-Suspended-Guardrails (p-s37b6cez)

Blocks all LZA/Control Tower provisioning in suspended accounts. Opposite of the quarantine SCP -- it prevents infrastructure roles from operating rather than preventing user roles.


SCP Inheritance Model


Dual SCP Management Analysis

SCPs in this organization are managed by two separate IaC tools:

AspectLZA (YAML)Terraform
ToolLanding Zone Acceleratorndx-try-aws-scp Terraform modules
DeploymentLZA pipeline in org managementGitHub Actions with OIDC
ScopeCore/Security/Infrastructure OUsInnovation Sandbox Pool OUs
Region ControlsVia security-config.yamlVia InnovationSandboxRestrictionsScp
Network ControlsCore-Guardrails seriesInnovationSandboxRestrictionsScp
Cost ControlsNoneCostAvoidance Compute + Services SCPs

Potential Overlap Areas

  1. Region restrictions: Both LZA security config and Terraform RestrictionsScp may enforce region limits. The Terraform SCP explicitly restricts to us-east-1 and us-west-2.

  2. Network controls: LZA Core-Sandbox-Guardrails-1 restricts VPC/networking on Accelerator-tagged resources; Terraform RestrictionsScp blocks RAM sharing and VPC peering.

  3. Encryption enforcement: LZA guardrails enforce EFS/RDS encryption; Terraform does not duplicate this.

Recommendations

  1. Document ownership boundaries: Clearly delineate which team/pipeline owns which SCPs.
  2. Test effective permissions: Use IAM Policy Simulator to validate combined SCP effects.
  3. Consider consolidation: Evaluate whether all ISB SCPs could move to LZA for a single source of truth, or vice versa.


Generated from AWS Organizations SCP data and Terraform source analysis on 2026-03-02. See 00-repo-inventory.md for full inventory.