Updated on 2024-11-15 GMT+08:00

Example SCPs

This section provides some example SCPs for your reference, including:

Preventing Member Accounts from Leaving an Organization

The following SCP prevents member accounts from leaving an organization.
{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "organizations:organizations:leave"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

Blocking Service Access for the Root User

The following SCP blocks access to the specified actions for the root user in a member account. If you want to restrict access in specific ways, you can modify the Action and Resource elements.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ecs:*:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "BoolIfExists": {
          "g:PrincipalIsRootUser": "true"
        }
      }
    }
  ]
}

Prohibiting Creation of Resources with Specified Tags

The following SCP prevents users from creating resource shares with the {"team": "engineering"} tag. If you want to prevent resource creation in specific ways, you can modify the Action, Resource, and Condition elements.

{
     "Version":"5.0",
     "Statement":[
         {
             "Effect":"Deny",
             "Action":["ram:resourceShares:create"],
             "Resource":["*"],
             "Condition":{
                 "StringEquals":{
                     "g:RequestTag/team":"engineering"
                 }
             }
         }
     ]
 }

Prohibiting Access to Specified Regions

The following SCP prevents users from accessing all ECS resources in regionid1 but not in any other regions. If you want to restrict access in specific ways, you can modify the Action, Resource, and Condition elements.

This SCP applies only to region-specific services. regionid1 in the SCP is only an example for you reference. Enter the specific region ID you want when using this SCP.

{
     "Version":"5.0",
     "Statement":[
         {
             "Effect":"Deny",
             "Action":["ecs:*:*"],
             "Resource":["*"],
             "Condition":{
                 "StringEquals":{
                     "g:RequestedRegion":"regionid1"
                 }
             }
         }
     ]
 }

Preventing Sharing with Accounts Outside an Organization

The following SCP prevents accounts within an organization from sharing resources with accounts outside the organization. You are advised to attach this SCP to the root OU of the organization so that the SCP will be applied to the entire organization.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ram:resourceShares:create",
        "ram:resourceShares:associate"
 
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAnyValue:StringNotLike": {
          "ram:TargetOrgPaths": [
            "organization_id/root_id/ou_id" [Note: Enter the path ID of the organization.]
          ]
        }
      }
    }
  ]
}

Preventing Sharing Specified Resource Types

The following SCP prevents accounts from sharing VPC subnets. You can modify the resource type in the Condition element of the SCP statement as required.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ram:resourceShares:create"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "ForAnyValue:StringEquals": {
          "ram:RequestedResourceType": [
            "vpc:subnet" [Note: You can change the resource type as required.]
          ]
        }
      }
    }
  ]
}

Preventing Aggregation Authorization to Accounts Outside the Current Organization

The following SCP prevents accounts within an organization from granting aggregation authorization to accounts outside the organization. You are advised to attach this SCP to the root OU of your organization to prevent accounts outside your organization from collecting information about the resources of accounts in your organization. You can also attach this SCP to source accounts to prevent them from accepting authorization requests from the aggregator account.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "rms:aggregationAuthorizations:create"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringNotMatch": {
          "rms:AuthorizedAccountOrgPath": [
            "organization_id/root_id/ou_id" [Note: Enter the path ID of the organization.]
          ]
        }
      }
    }
  ]
}

Preventing the Root User from Using Cloud Services Other Than IAM

The following SCP prevents the root user from using any cloud services other than IAM.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "NotAction": [
        "iam:*:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "Bool": {
          "g:PrincipalIsRootUser": [
            "true"
          ]
        }
      }
    }
  ]
}

Preventing IAM Users and Agencies from Making Certain Changes

The following SCP prevents IAM users and agencies from making changes to resource shares created in all accounts in your organization.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ram:resourceShares:update",
        "ram:resourceShares:delete",
        "ram:resourceShares:associate",
        "ram:resourceShares:disassociate",
        "ram:resourceShares:associatePermission",
        "ram:resourceShares:disassociatePermission"
      ],
      "Resource": [
        "ram::*:resourceShare:resource-id"
      ]
    }
  ]
}

Preventing IAM Users and Agencies from Making Specified Changes, with an Exception for Specified Accounts

The following SCP prevents IAM users and agencies from making changes to resource shares created in all accounts in your organization except for specified accounts.

{
  "Version": "5.0",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "ram:resourceShares:update",
        "ram:resourceShares:delete",
        "ram:resourceShares:associate",
        "ram:resourceShares:disassociate",
        "ram:resourceShares:associatePermission",
        "ram:resourceShares:disassociatePermission"
      ],
      "Resource": [
        "ram::*:resourceShare:resource-id"
      ],
      "Condition": {
        "StringNotEquals": {
          "g:DomainId": [
            "account-id" [Note: Enter the ID of the account to deny.]
          ]
        }
      }
    }
  ]
}