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

High

An 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.

    • codebuild-002codebuild:StartBuildunrestricted
    • cloudformation-002cloudformation:UpdateStackscoped
      • cloudformation:UpdateStack: on arn:*:cloudformation:*:*:stack/a2c-app-*, arn:*:cloudformation:*:*:stack/a2c-build-*, arn:*:cloudformation:*:*:stack/application-transformation-app-*
    • ecs-006ecs:ExecuteCommand + ecs:DescribeTasksscoped
      • 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-005cloudformation:CreateChangeSet + cloudformation:ExecuteChangeSetscoped
      • 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 history

AWSRefactoringToolkitFullAccess - Policy Version v8

No recorded action delta - this version predates the change index. View the raw diff.

Mar 12, 2026

bf12e3c

AWSRefactoringToolkitFullAccess - Policy Version v8

No recorded action delta - this version predates the change index. View the raw diff.

Feb 12, 2026

efc1f28

AWSRefactoringToolkitFullAccess - Policy Version v7

No recorded action delta - this version predates the change index. View the raw diff.

Feb 12, 2026

eccceed

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Apr 9, 2025

db3e305

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 18, 2024

aafbae9

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 13, 2024

1b36617

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Mar 25, 2024

a54ecab

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Nov 18, 2023

d4565e7

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Mar 24, 2023

a860151

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Dec 17, 2022

84b1b58

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Oct 25, 2022

137db6b