AWSControlTowerServiceRolePolicy
Last Modified
Sep 10, 2026
September 10, 2026 at 08:03 PM UTC
Version
v22
Total Versions
21
Created
Sep 10, 2026
Actions
85
Risk
MediumThe same capabilities in a scoped form, resource policy writes, reads across all data, or full access to a whole service. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed
- Medium
Can take over other users or roles
Grants the actions of 1 documented escalation path, but only on named resources or under a condition. Review that scope before trusting it.
- sts:AssumeRole: on arn:aws:iam::*:role/AWSControlTowerExecution, arn:aws:iam::*:role/AWSControlTowerBlueprintAccess
Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.
- Medium
Can launch resources that run as a more privileged role
Grants the actions of 3 documented escalation paths, but only on named resources or under a condition. Review that scope before trusting it.
- iam:PassRole: on arn:aws:iam::*:role/service-role/AWSControlTowerStackSetRole, arn:aws:iam::*:role/service-role/AWSControlTowerCloudTrailRole, arn:aws:iam::*:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations
- cloudformation:CreateStack: on arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role
- cloudformation-003iam:PassRole + cloudformation:CreateStackSet + cloudformation:CreateStackInstancesscoped
- iam:PassRole: on arn:aws:iam::*:role/service-role/AWSControlTowerStackSetRole, arn:aws:iam::*:role/service-role/AWSControlTowerCloudTrailRole, arn:aws:iam::*:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations
- cloudformation:CreateStackSet: on arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role
- cloudformation:CreateStackInstances: on arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role
- iam:PassRole: on arn:aws:iam::*:role/service-role/AWSControlTowerStackSetRole, arn:aws:iam::*:role/service-role/AWSControlTowerCloudTrailRole, arn:aws:iam::*:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations
- cloudformation:UpdateStackSet: on arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role
Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.
- Medium
Can take over existing resources that run as another role
Grants the actions of 1 documented escalation path, but only on named resources or under a condition. Review that scope before trusting it.
- cloudformation:UpdateStack: on arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role
Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.
Policy Document
View on GitHub{
"PolicyVersion": {
"Document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:CreateStack",
"cloudformation:CreateStackInstances",
"cloudformation:CreateStackSet",
"cloudformation:DeleteStack",
"cloudformation:DeleteStackInstances",
"cloudformation:DeleteStackSet",
"cloudformation:DescribeStackInstance",
"cloudformation:DescribeStacks",
"cloudformation:DescribeStackSet",
"cloudformation:DescribeStackSetOperation",
"cloudformation:ListStackInstances",
"cloudformation:UpdateStack",
"cloudformation:UpdateStackInstances",
"cloudformation:UpdateStackSet"
],
"Resource": [
"arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role"
]
},
{
"Effect": "Allow",
"Action": [
"cloudformation:CreateStack",
"cloudformation:CreateStackInstances",
"cloudformation:CreateStackSet",
"cloudformation:DeleteStack",
"cloudformation:DeleteStackInstances",
"cloudformation:DeleteStackSet",
"cloudformation:DescribeStackInstance",
"cloudformation:DescribeStacks",
"cloudformation:DescribeStackSet",
"cloudformation:DescribeStackSetOperation",
"cloudformation:GetTemplate",
"cloudformation:ListStackInstances",
"cloudformation:UpdateStack",
"cloudformation:UpdateStackInstances",
"cloudformation:UpdateStackSet"
],
"Resource": [
"arn:aws:cloudformation:*:*:stack/AWSControlTower*/*",
"arn:aws:cloudformation:*:*:stack/StackSet-AWSControlTower*/*",
"arn:aws:cloudformation:*:*:stackset/AWSControlTower*:*",
"arn:aws:cloudformation:*:*:stackset-target/AWSControlTower*/*"
]
},
{
"Effect": "Allow",
"Action": [
"cloudtrail:CreateTrail",
"cloudtrail:DeleteTrail",
"cloudtrail:GetTrailStatus",
"cloudtrail:StartLogging",
"cloudtrail:StopLogging",
"cloudtrail:UpdateTrail",
"cloudtrail:PutEventSelectors",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:PutRetentionPolicy"
],
"Resource": [
"arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs*:*",
"arn:aws:cloudtrail:*:*:trail/aws-controltower*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::aws-controltower*/*"
]
},
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::*:role/AWSControlTowerExecution",
"arn:aws:iam::*:role/AWSControlTowerBlueprintAccess"
]
},
{
"Effect": "Allow",
"Action": [
"cloudtrail:DescribeTrails",
"ec2:DescribeAvailabilityZones",
"iam:ListRoles",
"logs:CreateLogGroup",
"logs:DescribeLogGroups",
"organizations:CreateAccount",
"organizations:DescribeAccount",
"organizations:DescribeCreateAccountStatus",
"organizations:DescribeOrganization",
"organizations:DescribeOrganizationalUnit",
"organizations:DescribePolicy",
"organizations:ListAccounts",
"organizations:ListAccountsForParent",
"organizations:ListAWSServiceAccessForOrganization",
"organizations:ListChildren",
"organizations:ListOrganizationalUnitsForParent",
"organizations:ListParents",
"organizations:ListPoliciesForTarget",
"organizations:ListTargetsForPolicy",
"organizations:ListRoots",
"organizations:MoveAccount",
"servicecatalog:AssociatePrincipalWithPortfolio"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:GetUser",
"iam:ListAttachedRolePolicies",
"iam:GetRolePolicy"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::*:role/service-role/AWSControlTowerStackSetRole",
"arn:aws:iam::*:role/service-role/AWSControlTowerCloudTrailRole",
"arn:aws:iam::*:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations"
]
},
{
"Effect": "Allow",
"Action": [
"config:DeleteConfigurationAggregator",
"config:PutConfigurationAggregator",
"config:TagResource"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/aws-control-tower": "managed-by-control-tower"
}
}
},
{
"Effect": "Allow",
"Action": [
"organizations:EnableAWSServiceAccess",
"organizations:DisableAWSServiceAccess"
],
"Resource": "*",
"Condition": {
"StringLike": {
"organizations:ServicePrincipal": [
"config.amazonaws.com",
"cloudtrail.amazonaws.com"
]
}
}
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:AWSServiceName": "cloudtrail.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"account:EnableRegion",
"account:ListRegions",
"account:GetRegionOptStatus"
],
"Resource": "*"
},
{
"Sid": "AllowActionsForCloudFormationHooksIntegration",
"Effect": "Allow",
"Action": [
"cloudformation:SetTypeConfiguration",
"cloudformation:DeactivateType",
"cloudformation:ActivateType"
],
"Resource": "arn:aws:cloudformation:*:*:type/hook/AWS-ControlTower*"
},
{
"Sid": "AllowBatchDescribeTypeConfigurationsForHookConfigFetch",
"Effect": "Allow",
"Action": "cloudformation:BatchDescribeTypeConfigurations",
"Resource": "*"
},
{
"Sid": "AllowActionsForCloudFormationStackSetOrganizationsTrustedAccess",
"Effect": "Allow",
"Action": [
"cloudformation:ActivateOrganizationsAccess",
"cloudformation:DescribeOrganizationsAccess"
],
"Resource": "*"
},
{
"Sid": "CloudFormationTagOnCreate",
"Effect": "Allow",
"Action": [
"cloudformation:TagResource",
"cloudformation:UntagResource"
],
"Resource": [
"arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role",
"arn:aws:cloudformation:*:*:stack/AWSControlTower*/*",
"arn:aws:cloudformation:*:*:stack/StackSet-AWSControlTower*/*",
"arn:aws:cloudformation:*:*:stackset/AWSControlTower*:*",
"arn:aws:cloudformation:*:*:stackset-target/AWSControlTower*/*"
],
"Condition": {
"StringEquals": {
"cloudformation:CreateAction": [
"CreateStack",
"UpdateStack"
]
}
}
}
]
},
"VersionId": "v22",
"IsDefaultVersion": true,
"CreateDate": "2026-09-10T19:47:08+00:00"
}
}Version History (26 recorded)
Raw history2 actions added
scope changed, no action added or removed
1 action added
AWSControlTowerServiceRolePolicy - Policy Version v19
No recorded action delta - this version predates the change index. View the raw diff.
Mar 12, 2026
ffa4ff3AWSControlTowerServiceRolePolicy - Policy Version v19
No recorded action delta - this version predates the change index. View the raw diff.
Feb 12, 2026
d87861fAWSControlTowerServiceRolePolicy - Policy Version v16
No recorded action delta - this version predates the change index. View the raw diff.
Feb 12, 2026
ff9ca6eAWSControlTowerServiceRolePolicy - Policy Version v13
No recorded action delta - this version predates the change index. View the raw diff.
Nov 6, 2025
5e6f81fAWSControlTowerServiceRolePolicy - Policy Version v12
No recorded action delta - this version predates the change index. View the raw diff.
Oct 10, 2025
2cba49bUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Jan 13, 2025
f17ece5Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Sep 18, 2024
aafbae9Update detected
No recorded action delta - this version predates the change index. View the raw diff.
May 13, 2024
1b36617Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Apr 12, 2023
8880ea2Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Oct 31, 2022
7daa91fUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Jun 20, 2022
e25fe31Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Jun 5, 2021
14b7a14Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Nov 10, 2020
48514deUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Aug 10, 2020
e589c1cUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
May 12, 2020
6de7058Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Sep 16, 2019
49aa1d0Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Sep 16, 2019
71619cf