Cloud Security

AWS Service Control Policies: Guardrails That Actually Hold

How to design SCPs that prevent real incidents without blocking engineers — with copy-pasteable policy patterns.

RAZR Advisory

6 min read

Why SCPs matter

IAM policies control what a principal can do. Service Control Policies control what an account is allowed to attempt. When designed well, SCPs stop entire categories of incidents — public S3 buckets, disabled CloudTrail, root key creation — before they happen.

The four guardrails every org needs

  1. Prevent CloudTrail tampering — deny cloudtrail:StopLogging, DeleteTrail, UpdateTrail outside the security account.
  2. Block public S3 exposure — deny s3:PutBucketPublicAccessBlock changes that weaken defaults.
  3. Region lockdown — deny actions outside approved regions to shrink blast radius and data-residency risk.
  4. Root user protection — deny all actions when aws:PrincipalArn matches the account root.

Rollout without breaking builds

Deploy SCPs in audit mode first via CloudTrail analysis, then flip to deny. Pair with a break-glass OU that bypasses guardrails for genuine emergencies — logged, alerted, time-boxed.

Common mistakes

  • Attaching everything to the root OU on day one
  • Forgetting that SCPs do not grant permissions
  • Skipping the aws:ViaAWSService condition and breaking service-linked roles
Share this post

Get new posts in your inbox

Field notes on cloud security, compliance, and incident response. One email when we publish. No spam.

Every email includes a one-click unsubscribe link. You can also manage your preferences anytime from the link in the email footer.

Ready to see how your stack scores?

Take the 15-minute diagnostic and get a prioritized 30/60/90-day action plan.

Related posts

More reading based on this post's category and tags.