A Service Control Policy (SCP) is a policy type in AWS Organizations that sets the maximum permissions for member accounts. SCPs do not grant permissions - they restrict what permissions are available. Even if an IAM policy in a member account says "Allow": "ec2:*", an SCP can prevent that account from launching instances in certain regions.
guardduty:DeleteDetector, config:StopConfigurationRecorders3:PutObject without s3:x-amz-server-side-encryptions3:PutBucketPolicy with public principalThe most common SCP incident is self-inflicted lockout. AWS Organizations attaches a default policy called FullAWSAccess to the root, every OU, and every account when SCPs are enabled. If someone detaches or replaces it without providing an equivalent allow statement, every AWS action from the affected member accounts starts failing at once, because with SCPs enabled an action must be permitted by every level of the SCP chain to be usable at all. AWS documents this explicitly: do not remove FullAWSAccess unless you replace it with a policy that still allows the actions you need.
The second failure mode is a false sense of coverage. SCPs never affect users or roles in the management account, and they do not restrict service-linked roles either. A guardrail that denies cloudtrail:StopLogging across the organization still leaves an administrator in the management account able to stop logging there. This is one of the strongest arguments for keeping workloads, users, and daily operations out of the management account entirely.
Finally, region-restriction SCPs are notorious for breaking global services. When you write a deny for all actions outside approved regions, exempt global services such as IAM, Organizations, STS, CloudFront, Route 53, and Support with a NotAction list, and test the policy on a sandbox OU first. AWS recommends moving accounts into a test OU in small numbers rather than attaching an untested SCP to the root, and suggests using IAM service last accessed data to see which services an account actually uses before you cut access.
List the SCPs that exist in your organization, from the management account or a delegated administrator:
aws organizations list-policies --filter SERVICE_CONTROL_POLICY
Before attaching a new SCP, run it through IAM Access Analyzer policy validation, which has a dedicated policy type for SCPs and will flag syntax errors and unsupported constructs:
aws accessanalyzer validate-policy --policy-document file://scp.json --policy-type SERVICE_CONTROL_POLICY
Do SCPs grant permissions? No. An SCP is a ceiling, not a grant. A principal can perform an action only if an identity-based or resource-based policy allows it and no applicable SCP blocks it. The effective permissions are the logical intersection of the two, so a brand-new user with no IAM policies has no access even under the most permissive SCP.
Why does my SCP not apply to the management account? That is by design. SCPs affect member accounts only, including member accounts designated as delegated administrators. Nothing you attach will constrain the management account, which is exactly why best practice keeps that account free of workloads and day-to-day users.
What is the difference between an SCP and a permission boundary? Both cap maximum permissions, but at different layers. An SCP is an organization-level control that applies to entire accounts; a permission boundary is an IAM feature applied to an individual user or role. When both are present, the SCP, the boundary, and the identity-based policy must all allow the action for it to succeed.
A JSON document that defines permissions - which actions are allowed or denied on which AWS resources, and under what conditions.
An advanced IAM feature that sets the maximum permissions an IAM entity can have, acting as a ceiling on what identity-based policies can grant.
The security principle of granting only the minimum permissions needed to perform a task - no more, no less.
A preventive or detective control that enforces security boundaries across AWS accounts, implemented through SCPs, AWS Config rules, or Security Hub standards.
Using multiple AWS accounts to isolate workloads, environments, and teams, providing the strongest security boundary available in AWS.
Toc Consulting: AWS Security & Cloud Architecture
Our team helps engineering teams secure and architect AWS the right way: assessment in week one, a prioritized action plan in week two.