AWS Organizations SCPs

Understand how Service Control Policies create account guardrails in AWS Organizations and restrict what IAM can ever allow.

AWS Organizations SCPs are policy guardrails in AWS Organizations that limit the maximum permissions available inside member accounts. For DevOps teams, it matters because they help security teams block risky actions across many accounts without editing every IAM policy individually. Instead of relying on one fragile manual configuration, you can design a repeatable service boundary that stays stable while the workload behind it changes.

Core ideas

The main ideas to understand are SCPs do not grant permissions and instead define what IAM policies in the account are allowed to grant; deny-list strategies are common for targeted restrictions, while allow-list strategies are stricter and require more careful planning; a practical example is denying resource creation outside approved regions; and because SCPs apply at the organisation level, testing in a sandbox OU before broad rollout is especially important. These details shape architecture decisions, but they also shape day-to-day operations. When a team chooses defaults without understanding how the service behaves under failure, scale, or security review, the platform often becomes harder to debug than the application itself.

SCP approachStrengthCaution
Deny listEasy targeted restrictionMay miss new risky actions
Allow listVery strict controlHigher maintenance burden
OU rolloutScoped policy testingRequires clear account placement

From an operations perspective, the goal is to build simple guardrails first and verify the blast radius so central policy does not accidentally block legitimate operational recovery steps. The comparison below highlights the choices that usually matter first. It is often better to start with a simpler design and add sophistication only after metrics, incidents, or delivery requirements prove the change is necessary.

Practical commands

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": ["us-east-1", "us-west-2"]
        }
      }
    }
  ]
}

Practical CLI checks make the service easier to support in real environments. Use the commands below to inspect the current state and confirm that automation matches intent. Before you promote a change, verify break-glass scenarios, exempt accounts, and sandbox testing before attaching a restrictive SCP to production OUs. A safe default is policies that are short and explicit enough for operators to understand during incidents. That discipline makes later troubleshooting, scaling, and security reviews far less painful.

Exercise

SCP behaviour

What do Service Control Policies do?

Exercise

Permission model

Which statement about SCPs is correct?

Continue Learning

Explore Related Topics

Related Resources