SCP (Service Control Policies) Blocklist and Allowlist Strategies is one of the
most important parts of advanced AWS Organizations governance design.
Scope:
- Review: SCPs,
- SCP Evaluation Logic,
- SCP Strategies Overview,
- Allowlist Strategy (Deny-by-default),
- Blocklist Strategy (Allow-by-default),
- Hybrid Strategy (Recommended in Enterprises),
- Regional Restrictions (Common Guardrail),
- SCP Management Best Practices,
- Real-world Implementation Flow,
- Visual – SCP Strategy Architecture.
1. Review: SCPs
Service Control Policies (SCPs) are organization-level guardrails that define the maximum permissions
available to IAM entities (users, roles, groups) in
any AWS account within an Organization.
They:
- Don’t grant permissions directly.
- Filter what permissions IAM policies can
grant.
- Are evaluated alongside IAM policies
— both must allow an action.
🧩 SCP = Permission boundary
across accounts (Org, OU, or Account).
2. SCP Evaluation Logic
When a request is made:
|
Policy
Type |
Purpose |
Must
Allow? |
|
AWS
Organizations SCP |
Define max available permissions |
✅ |
|
IAM
Identity Policy |
Define granted permissions |
✅ |
|
Resource
Policy |
Optional, resource-specific control |
✅ (if
applicable) |
|
Session
Policy / Permission Boundary |
Further limit effective permissions |
✅ |
# If any of these denies, the action is blocked.
3. SCP Strategies Overview
Two primary strategies are used to
control access:
|
Strategy |
Description |
Typical
Use Case |
|
Allowlist
(Deny-by-default) |
Explicitly allow only approved
services/actions; everything else is implicitly denied. |
High-security or compliance
environments (e.g., regulated workloads, GovCloud, PCI). |
|
Blocklist
(Allow-by-default) |
Allow all AWS services except
explicitly denied ones. |
General-purpose accounts,
development/test environments, or partial control scenarios. |
4.
Allowlist Strategy (Deny-by-default)
Concept
twtech defines an SCP that explicitly allows a specific subset of AWS services (e.g., EC2, S3, CloudTrail) and implicitly denies everything else.
# twtechExample
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "twtechAllowList",
"Effect": "Allow",
"Action": [
"ec2:*",
"s3:*",
"cloudtrail:*"
],
"Resource": "*"
}
]
}
NB: Everything not listed in the
Action array is denied.
Pros
- Strong security control and
predictability.
- Prevents access to new AWS services until
explicitly approved.
- Ideal for highly regulated workloads.
Cons
- High maintenance — every new service
requires policy updates.
- May block dependencies if not tested
carefully.
- Inhibits developer agility.
5. Blocklist Strategy (Allow-by-default)
Concept
twtech creates an SCP that denies access to specific services or operations
it don’t want used (e.g., aws-portal:*, support:*, or
regions not in scope).
# twtechExample
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "twtechDenyCertainServices",
"Effect": "Deny",
"Action": [
"aws-portal:*",
"support:*",
"cur:*"
],
"Resource": "*"
}
]
}
Pros
- Minimal maintenance effort.
- New AWS services are available by
default.
- Good for innovation and flexibility.
Cons
- Risk of accidental use of new,
unapproved, or costly services.
- Can’t “pre-deny” unknown new services.
6. Hybrid Strategy (Recommended in Enterprises)
Most mature organizations adopt a hybrid
approach:
- Allowlist at the root or sensitive OU level
for foundational workloads.
- Blocklist at developer/test OUs to prevent
misuse.
- Combine with Tag-based IAM controls,
permission boundaries, and AWS Control Tower Guardrails.
# Example
Hierarchy text diagram:
Root
│
├── Security OU (Allowlist
SCP)
│ └── Audit Account (Tight
allowlist)
│
├── Prod OU (Hybrid
SCPs)
│ ├── Deny unsafe regions
│ ├── Allow core services
│
└── Dev/Test OU (Blocklist
SCP)
├── Deny expensive services
(e.g., SageMaker, FSx)
└── Deny production region
7. Regional Restrictions (Common Guardrail)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "twtechDenyUnsupportedRegions",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"us-east-2",
"us-west-2"
]
}
}
}
]
}
NB: This ensures workloads only
run in approved regions.
8. SCP Management Best Practices
|
Category |
Best
Practice |
|
Design |
Start with least privilege (Allowlist for critical OUs). |
|
Testing |
Validate in sandbox OUs before
applying Org-wide. |
|
Versioning |
Use descriptive Sid and version
control (e.g., in Git). |
|
Change Management |
Automate SCP deployment via AWS
CloudFormation StackSets or IaC pipelines. |
|
Auditing |
Regularly review SCPs via AWS Config
and IAM Access Analyzer. |
9. Real-world Implementation Flow:
- Define organizational structure (OUs).
- Attach baseline SCPs (root-level guardrails).
- Apply OU-specific SCPs (restrict per environment).
- Validate via Access Analyzer &
simulation tools.
- Continuously monitor via AWS Config
conformance packs.
10. Visual – SCP Strategy Architecture with:
- OU hierarchy.
- Allowlist vs Blocklist placement.
- SCP evaluation flow.
No comments:
Post a Comment