AWSRefactoringToolkitFullAccess
Last Modified
Mar 12, 2026
March 12, 2026 at 09:26 PM UTC
Version
v8
Total Versions
6
Created
Feb 12, 2026
Actions
158
Risk
HighAn unrestricted escalation path, identity administration, secret reads or the power to switch off security monitoring. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed
- High
Can take over existing resources that run as another role
Grants every action of 1 documented escalation path on any resource with no condition, and 2 more in a scoped form.
- cloudformation:UpdateStack: on arn:*:cloudformation:*:*:stack/a2c-app-*, arn:*:cloudformation:*:*:stack/a2c-build-*, arn:*:cloudformation:*:*:stack/application-transformation-app-*
- ecs:ExecuteCommand: condition ecs:container-name
Use with caution: List the roles attached to the functions, instances, pipelines or notebooks it can modify: the holder effectively has them too.
- Medium
Can launch resources that run as a more privileged 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:CreateChangeSet: on arn:*:cloudformation:*:*:stack/a2c-app-*, arn:*:cloudformation:*:*:stack/a2c-build-*, arn:*:cloudformation:*:*:stack/application-transformation-app-*
- cloudformation:ExecuteChangeSet: on arn:*:cloudformation:*:*:stack/a2c-app-*, arn:*:cloudformation:*:*:stack/a2c-build-*, arn:*:cloudformation:*:*:stack/application-transformation-app-*
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": [
"a2c:GetContainerizationJobDetails",
"a2c:GetDeploymentJobDetails",
"a2c:StartContainerizationJob",
"a2c:StartDeploymentJob"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudformation:CreateChangeSet",
"cloudformation:CreateStack",
"cloudformation:DescribeChangeSet",
"cloudformation:DescribeStackEvents",
"cloudformation:ExecuteChangeSet",
"cloudformation:UpdateStack",
"cloudformation:TagResource",
"cloudformation:UntagResource"
],
"Resource": [
"arn:*:cloudformation:*:*:stack/a2c-app-*",
"arn:*:cloudformation:*:*:stack/a2c-build-*",
"arn:*:cloudformation:*:*:stack/application-transformation-app-*"
]
},
{
"Effect": "Allow",
"Action": [
"codebuild:CreateProject",
"codebuild:UpdateProject"
],
"Resource": "arn:aws:codebuild:*:*:project/*",
"Condition": {
"Null": {
"aws:RequestTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"codebuild:StartBuild"
],
"Resource": "arn:aws:codebuild:*:*:project/*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateSecurityGroup"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateInternetGateway",
"ec2:CreateKeyPair",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateSubnet",
"ec2:CreateVpc",
"ec2:AuthorizeSecurityGroupIngress"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:RequestTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateInternetGateway",
"ec2:CreateKeyPair",
"ec2:CreateRoute",
"ec2:CreateRouteTable",
"ec2:CreateSubnet",
"ec2:CreateVpc",
"ec2:AuthorizeSecurityGroupIngress"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:RequestTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:*:*:security-group/*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"application-transformation.amazonaws.com"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:CreateAction": [
"AuthorizeSecurityGroupIngress",
"CreateInternetGateway",
"CreateKeyPair",
"CreateRoute",
"CreateRouteTable",
"CreateSubnet",
"CreateVpc"
]
},
"Null": {
"aws:RequestTag/application-transformation": "false"
},
"ForAnyValue:StringEquals": {
"aws:CalledVia": [
"application-transformation.amazonaws.com"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:DeleteTags",
"ec2:ModifySubnetAttribute",
"ec2:ModifyVpcAttribute",
"ec2:RevokeSecurityGroupIngress",
"ec2:CreateSubnet",
"ec2:CreateRoute",
"ec2:CreateRouteTable"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:ResourceTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:AssociateRouteTable",
"ec2:AttachInternetGateway",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:DeleteTags",
"ec2:ModifySubnetAttribute",
"ec2:ModifyVpcAttribute",
"ec2:RevokeSecurityGroupIngress",
"ec2:CreateSubnet",
"ec2:CreateRoute",
"ec2:CreateRouteTable"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:ResourceTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:CreateRepository",
"ecr:TagResource"
],
"Resource": "arn:*:ecr:*:*:repository/*",
"Condition": {
"Null": {
"aws:RequestTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:CreateRepository",
"ecr:TagResource"
],
"Resource": "arn:*:ecr:*:*:repository/*",
"Condition": {
"Null": {
"aws:RequestTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:GetLifecyclePolicy",
"ecr:GetRepositoryPolicy",
"ecr:ListImages",
"ecr:ListTagsForResource",
"ecr:TagResource",
"ecr:UntagResource"
],
"Resource": "arn:*:ecr:*:*:repository/*",
"Condition": {
"Null": {
"aws:ResourceTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:GetLifecyclePolicy",
"ecr:GetRepositoryPolicy",
"ecr:ListImages",
"ecr:ListTagsForResource",
"ecr:TagResource",
"ecr:UntagResource"
],
"Resource": "arn:*:ecr:*:*:repository/*",
"Condition": {
"Null": {
"aws:ResourceTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:CreateCluster",
"ecs:CreateService",
"ecs:RegisterTaskDefinition",
"ecs:TagResource"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:RequestTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:CreateCluster",
"ecs:CreateService",
"ecs:RegisterTaskDefinition",
"ecs:TagResource"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:RequestTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:UpdateService",
"ecs:TagResource",
"ecs:UntagResource"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:ResourceTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:UpdateService",
"ecs:TagResource",
"ecs:UntagResource"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:ResourceTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:DescribeTaskDefinition"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:CalledVia": "cloudformation.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:ExecuteCommand"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:container-name": "a2c-sidecar"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecs:ExecuteCommand"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ecs:container-name": "application-transformation-sidecar"
}
}
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "ecs.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:TagResource"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/codebuild/*:*",
"arn:aws:logs:*:*:log-group:/aws/ecs/containerinsights/*:*",
"arn:aws:logs:*:*:log-group:/aws/ecs/container-logs/*:*"
],
"Condition": {
"Null": {
"aws:RequestTag/a2c-generated": "false"
},
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"a2c-generated"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:TagResource"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/ecs/containerinsights/*:*",
"arn:aws:logs:*:*:log-group:/aws/ecs/container-logs/*:*"
],
"Condition": {
"Null": {
"aws:RequestTag/application-transformation": "false"
},
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"application-transformation"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"logs:GetLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/codebuild/*:*",
"arn:aws:logs:*:*:log-group:/aws/ecs/containerinsights/*:*",
"arn:aws:logs:*:*:log-group:/aws/ecs/container-logs/*:*"
],
"Condition": {
"Null": {
"aws:ResourceTag/a2c-generated": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"logs:GetLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:log-group:/aws/ecs/containerinsights/*:*",
"arn:aws:logs:*:*:log-group:/aws/ecs/container-logs/*:*"
],
"Condition": {
"Null": {
"aws:ResourceTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ssm:AddTagsToResource",
"ssm:GetParameters",
"ssm:PutParameter",
"ssm:RemoveTagsFromResource"
],
"Resource": "arn:aws:ssm:*:*:parameter/a2c-generated-check-ecs-slr-*"
},
{
"Effect": "Allow",
"Action": [
"ssm:DescribeSessions",
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::*/refactoringtoolkit*",
"arn:aws:s3:::*/a2c-generated*",
"arn:aws:s3:::*/application-transformation*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::*",
"Condition": {
"StringLike": {
"s3:prefix": [
"application-transformation",
"refactoringtoolkit"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"cloudformation:DescribeStacks",
"cloudformation:ListStacks",
"clouddirectory:ListDirectories",
"codebuild:BatchGetProjects",
"codebuild:BatchGetBuilds",
"ds:DescribeDirectories",
"ec2:DescribeAccountAttributes",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeImages",
"ec2:DescribeInternetGateways",
"ec2:DescribeKeyPairs",
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeRegions",
"ecr:DescribeImages",
"ecr:DescribeRepositories",
"ecs:DescribeClusters",
"ecs:DescribeServices",
"ecs:DescribeTasks",
"ecs:ListTagsForResource",
"ecs:ListTasks",
"iam:ListRoles",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:ListAllMyBuckets",
"secretsmanager:ListSecrets"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:GetRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::aws.portingassistant.dotnet.datastore",
"arn:aws:s3:::aws.portingassistant.dotnet.datastore/*"
]
},
{
"Effect": "Allow",
"Action": [
"application-transformation:StartPortingCompatibilityAssessment",
"application-transformation:GetPortingCompatibilityAssessment",
"application-transformation:StartPortingRecommendationAssessment",
"application-transformation:GetPortingRecommendationAssessment",
"application-transformation:PutLogData",
"application-transformation:PutMetricData",
"application-transformation:StartContainerization",
"application-transformation:GetContainerization",
"application-transformation:StartDeployment",
"application-transformation:GetDeployment"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:DescribeKey",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:*::*",
"Condition": {
"ForAnyValue:StringLike": {
"kms:ResourceAliases": "alias/application-transformation*"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:InitiateLayerUpload",
"ecr:PutImage",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer"
],
"Resource": "arn:*:ecr:*:*:repository/*",
"Condition": {
"Null": {
"ecr:ResourceTag/application-transformation": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant"
],
"Resource": "arn:aws:kms:*::*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": true
},
"ForAnyValue:StringLike": {
"kms:ResourceAliases": "alias/application-transformation*"
}
}
}
]
},
"VersionId": "v8",
"IsDefaultVersion": true,
"CreateDate": "2026-02-12T17:57:59+00:00"
}
}Version History (11 recorded)
Raw historyAWSRefactoringToolkitFullAccess - Policy Version v8
No recorded action delta - this version predates the change index. View the raw diff.
Mar 12, 2026
bf12e3cAWSRefactoringToolkitFullAccess - Policy Version v8
No recorded action delta - this version predates the change index. View the raw diff.
Feb 12, 2026
efc1f28AWSRefactoringToolkitFullAccess - Policy Version v7
No recorded action delta - this version predates the change index. View the raw diff.
Feb 12, 2026
eccceedUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Apr 9, 2025
db3e305Update 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.
Mar 25, 2024
a54ecabUpdate detected
No recorded action delta - this version predates the change index. View the raw diff.
Nov 18, 2023
d4565e7Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Mar 24, 2023
a860151Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Dec 17, 2022
84b1b58Update detected
No recorded action delta - this version predates the change index. View the raw diff.
Oct 25, 2022
137db6b