AWSControlTowerServiceRolePolicy
Summary
Provides access to AWS Resources managed or used by AWS Control Tower
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicy- Default version
- v22
- Created
- Last edited
- Services
- account, cloudformation, cloudtrail, config, ec2, iam, logs, organizations, s3, servicecatalog, sts
Control-plane actions (70)
By access level: 16 List, 17 Read, 3 Tagging, 34 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Account | 3 of 20 | 1 List, 1 Read, 1 Write; 0 restricted, 0 conditional | account:EnableRegion, account:GetRegionOptStatus, account:ListRegions |
| CloudFormation | 23 of 104 | 2 List, 6 Read, 2 Tagging, 13 Write; 20 restricted, 2 conditional | cloudformation:ActivateOrganizationsAccess, cloudformation:ActivateType, cloudformation:BatchDescribeTypeConfigurations, cloudformation:CreateStack, cloudformation:CreateStackInstances, cloudformation:CreateStackSet, cloudformation:DeactivateType, cloudformation:DeleteStack, cloudformation:DeleteStackInstances, cloudformation:DeleteStackSet, cloudformation:DescribeOrganizationsAccess, cloudformation:DescribeStackInstance and 11 more |
| CloudTrail | 8 of 66 | 2 Read, 6 Write; 7 restricted, 0 conditional | cloudtrail:CreateTrail, cloudtrail:DeleteTrail, cloudtrail:DescribeTrails, cloudtrail:GetTrailStatus, cloudtrail:PutEventSelectors, cloudtrail:StartLogging, cloudtrail:StopLogging, cloudtrail:UpdateTrail |
| Config | 3 of 102 | 1 Tagging, 2 Write; 3 restricted, 3 conditional | config:DeleteConfigurationAggregator, config:PutConfigurationAggregator, config:TagResource |
| EC2 | 1 of 834 | 1 List; 0 restricted, 0 conditional | ec2:DescribeAvailabilityZones |
| IAM | 7 of 190 | 2 List, 3 Read, 2 Write; 2 restricted, 1 conditional | iam:CreateServiceLinkedRole, iam:GetRole, iam:GetRolePolicy, iam:GetUser, iam:ListAttachedRolePolicies, iam:ListRoles, iam:PassRole |
| CloudWatch Logs | 5 of 133 | 1 List, 4 Write; 3 restricted, 0 conditional | logs:CreateLogGroup, logs:CreateLogStream, logs:DescribeLogGroups, logs:PutLogEvents, logs:PutRetentionPolicy |
| Organizations | 18 of 63 | 9 List, 5 Read, 4 Write; 2 restricted, 2 conditional | organizations:CreateAccount, organizations:DescribeAccount, organizations:DescribeCreateAccountStatus, organizations:DescribeOrganization, organizations:DescribeOrganizationalUnit, organizations:DescribePolicy, organizations:DisableAWSServiceAccess, organizations:EnableAWSServiceAccess, organizations:ListAWSServiceAccessForOrganization, organizations:ListAccounts, organizations:ListAccountsForParent, organizations:ListChildren and 6 more |
| Service Catalog | 1 of 117 | 1 Write; 0 restricted, 0 conditional | servicecatalog:AssociatePrincipalWithPortfolio |
| STS | 1 of 16 | 1 Write; 1 restricted, 0 conditional | sts:AssumeRole |
Account: 3 actions
- account:EnableRegion (Write)
- account:GetRegionOptStatus (Read)
- account:ListRegions (List)
CloudFormation: 23 actions
- cloudformation:ActivateOrganizationsAccess (Write)
- cloudformation:ActivateType (Write)
- cloudformation:BatchDescribeTypeConfigurations (Read)
- cloudformation:CreateStack (Write)
- cloudformation:CreateStackInstances (Write)
- cloudformation:CreateStackSet (Write)
- cloudformation:DeactivateType (Write)
- cloudformation:DeleteStack (Write)
- cloudformation:DeleteStackInstances (Write)
- cloudformation:DeleteStackSet (Write)
- cloudformation:DescribeOrganizationsAccess (Read)
- cloudformation:DescribeStackInstance (Read)
- cloudformation:DescribeStackSet (Read)
- cloudformation:DescribeStackSetOperation (Read)
- cloudformation:DescribeStacks (List)
- cloudformation:GetTemplate (Read)
- cloudformation:ListStackInstances (List)
- cloudformation:SetTypeConfiguration (Write)
- cloudformation:TagResource (Tagging)
- cloudformation:UntagResource (Tagging)
- cloudformation:UpdateStack (Write)
- cloudformation:UpdateStackInstances (Write)
- cloudformation:UpdateStackSet (Write)
CloudTrail: 8 actions
- cloudtrail:CreateTrail (Write)
- cloudtrail:DeleteTrail (Write)
- cloudtrail:DescribeTrails (Read)
- cloudtrail:GetTrailStatus (Read)
- cloudtrail:PutEventSelectors (Write)
- cloudtrail:StartLogging (Write)
- cloudtrail:StopLogging (Write)
- cloudtrail:UpdateTrail (Write)
Config: 3 actions
- config:DeleteConfigurationAggregator (Write)
- config:PutConfigurationAggregator (Write)
- config:TagResource (Tagging)
EC2: 1 actions
- ec2:DescribeAvailabilityZones (List)
IAM: 7 actions
- iam:CreateServiceLinkedRole (Write)
- iam:GetRole (Read)
- iam:GetRolePolicy (Read)
- iam:GetUser (Read)
- iam:ListAttachedRolePolicies (List)
- iam:ListRoles (List)
- iam:PassRole (Write)
CloudWatch Logs: 5 actions
- logs:CreateLogGroup (Write)
- logs:CreateLogStream (Write)
- logs:DescribeLogGroups (List)
- logs:PutLogEvents (Write)
- logs:PutRetentionPolicy (Write)
Organizations: 18 actions
- organizations:CreateAccount (Write)
- organizations:DescribeAccount (Read)
- organizations:DescribeCreateAccountStatus (Read)
- organizations:DescribeOrganization (Read)
- organizations:DescribeOrganizationalUnit (Read)
- organizations:DescribePolicy (Read)
- organizations:DisableAWSServiceAccess (Write)
- organizations:EnableAWSServiceAccess (Write)
- organizations:ListAWSServiceAccessForOrganization (List)
- organizations:ListAccounts (List)
- organizations:ListAccountsForParent (List)
- organizations:ListChildren (List)
- organizations:ListOrganizationalUnitsForParent (List)
- organizations:ListParents (List)
- organizations:ListPoliciesForTarget (List)
- organizations:ListRoots (List)
- organizations:ListTargetsForPolicy (List)
- organizations:MoveAccount (Write)
Service Catalog: 1 actions
- servicecatalog:AssociatePrincipalWithPortfolio (Write)
STS: 1 actions
- sts:AssumeRole (Write)
Data-plane actions (1)
By access level: 1 Read.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| S3 | 1 of 25 | 1 Read; 1 restricted, 0 conditional | s3:GetObject |
S3: 1 actions
- s3:GetObject (Read)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 37 write, tagging or permissions-management actions, short of full control of any service.
- Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
Guidance
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Related policies
Same service
- AccessAnalyzerServiceRolePolicy
- AccountAccessManagerServiceRolePolicy
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsOrganizationsAccessPolicy
- AmazonDataZoneRedshiftGlueProvisioningPolicy
- AmazonDetectiveOrganizationsAccess
- AmazonDetectiveServiceLinkedRolePolicy
- AmazonDevOpsGuruOrganizationsAccess
Same domain
Frequently asked questions
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Policy JSON
{
"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"
]
}
}
}
]
}
Version history
Current version v22, edited by AWS on 2026-09-10. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicy
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicy
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicyCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicyTerraform
resource "aws_iam_role_policy_attachment" "service_role_awscontroltowerservicerolepolicy" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSControlTowerServiceRolePolicy"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSControlTowerServiceRolePolicy"),
);Sources
Pending editorial review. No editorial sources are listed yet.