Service Control Policies (SCPs)

Enforcing Guardrails with Service Control Policies (SCPs)

Service Control Policies (SCPs) are organization-wide policies that help enforce governance and security controls across multiple AWS accounts in an AWS Organizations setup.

Key Characteristics of SCPs

  • SCPs do not grant permissions but instead restrict actions that IAM Roles, IAM Users, and AWS Root Users can perform.

  • SCPs apply at the AWS Organizations level, meaning they affect all IAM identities (users, roles, and groups) in an account.

  • SCPs can be applied to AWS Accounts, Organizational Units (OUs), or the Root Organization.

  • SCPs do not override IAM permissions, but they act as guardrails to prevent unauthorized actions.

Think of SCPs as a "deny by default" framework that ensures certain actions are always blocked—even if an IAM policy allows them.

  • SCPs restrict what AWS accounts can do (even if an IAM Role has permissions).

  • Best Practice: SecureCart uses SCPs to block high-risk actions.

Example SCP: Deny Deletion of IAM Roles

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "iam:DeleteRole",
      "Resource": "*"
    }
  ]
}

Now, no one in SecureCart's AWS accounts can delete IAM Roles—even if their IAM Role allows it.

How SCPs Work with AWS Organizations & IAM

  • SCPs are attached to AWS Organizations' Root, OUs, or AWS Accounts.

  • They do NOT grant permissions—only restrict actions.

  • If an SCP explicitly denies an action, IAM Users and Roles in the account cannot perform it, even if an IAM Policy allows it.

SCP vs. IAM Policies

Feature

Service Control Policies (SCPs)

IAM Policies

Applies To

AWS Accounts, Organizational Units (OUs), Root Organization

Individual IAM Users, Groups, and Roles

Grants Permissions?

❌ No

✅ Yes

Restricts Actions?

✅ Yes

✅ Yes

Overrides IAM Permissions?

✅ Yes (Denies take precedence)

❌ No

Used For

Organizational-wide security control

Assigning permissions to users & roles

Best Practice: Use SCPs for high-level security enforcement and IAM Policies for detailed permissions.


SCP Use Cases in SecureCart

SecureCart uses SCPs to enforce security, compliance, and governance controls across multiple AWS accounts.

  • Example 1: Deny Root User Access to All Accounts

    • Why? Prevent security risks by ensuring the Root User cannot perform any action.

    • Result: Even if the Root User tries to create IAM Users or change policies, they are blocked

  • Example 2: Prevent Developers from Modifying IAM Policies

    • Why? Developers should not modify IAM Roles or Policies, even if they have broad permissions.

    • Result: Developers cannot change IAM permissions, even if an IAM Role grants them access.

  • Example 3: Require All AWS Accounts to Enable Security Services

    • Why? Ensure that AWS Security Hub, GuardDuty, and AWS Config remain enabled for compliance.

    • Result: No one can disable security monitoring in SecureCart AWS accounts.


How SecureCart Implements SCPs Across OUs

SecureCart applies SCPs at the Organizational Unit (OU) level to enforce best practices.

📌 SecureCart AWS Organizations SCPs by OU

OU Name

SCP Applied

Security OU

Prevent disabling GuardDuty & Security Hub

Workloads OU

Restrict developers from modifying IAM policies

Infrastructure OU

Deny creation of new VPCs outside the networking account

Sandbox OU

Block access to production resources

Result: SCPs prevent misconfigurations and enforce compliance across all AWS accounts.


SCP Best Practices

  • Apply SCPs at the OU Level, not the account level, for better scalability.

  • Use SCPs to enforce security & compliance, not for day-to-day permission management (use IAM for that).

  • Test SCPs in a non-production OU before applying them org-wide.

  • Combine IAM Identity Center (AWS SSO) with SCPs for a secure and scalable multi-account architecture.

AWS SCPs help SecureCart enforce organization-wide security while IAM Identity Center manages user access.


Summary: How SCPs Improve Security in Multi-Account AWS Environments

Feature

SCP Use Case

SecureCart Example

Prevent Root User Access

Block all root account actions

Root users cannot modify resources

Restrict IAM Permissions

Stop unauthorized IAM policy changes

Developers cannot modify IAM

Enforce Security Services

Require GuardDuty, Security Hub, AWS Config

Security tools remain enabled

Control Network Changes

Prevent accidental VPC creation

Only the networking team manages VPCs

Limit Billing Access

Block non-finance users from AWS Billing

Only finance can manage AWS Budgets

SCPs enforce security guardrails without replacing IAM permissions.


How SecureCart Secures Multi-Account Access

Security Mechanism

Purpose

AWS Services Used

IAM Identity Center (SSO)

Centralized user authentication & access management

IAM Identity Center, AWS Organizations

IAM Identity Center Groups & Permission Sets

Assign permissions to users in multiple AWS accounts

IAM Identity Center, IAM Roles

Cross-Account IAM Roles

Grant services access across accounts securely

IAM Roles, AWS STS

Service Control Policies (SCPs)

Restrict actions across AWS accounts

AWS Organizations, SCPs

Last updated