AmazonECS_FullAccess

Last Modified

Sep 2, 2026

September 2, 2026 at 03:04 PM UTC

Version

v22

Total Versions

13

Created

Sep 2, 2026

Actions

129

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 3 documented escalation paths on any resource with no condition.

    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 10 documented escalation paths, but only on named resources or under a condition. Review that scope before trusting it.

    • cloudformation-001iam:PassRole + cloudformation:CreateStackscoped
      • iam:PassRole: condition iam:PassedToService
    • ec2-001iam:PassRole + ec2:RunInstancesscoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-001iam:PassRole + ecs:CreateCluster + ecs:RegisterTaskDefinition + ecs:CreateServicescoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-002iam:PassRole + ecs:CreateCluster + ecs:RegisterTaskDefinition + ecs:RunTaskscoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-003iam:PassRole + ecs:RegisterTaskDefinition + ecs:CreateServicescoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-004iam:PassRole + ecs:RegisterTaskDefinition + ecs:RunTaskscoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-005iam:PassRole + ecs:RegisterTaskDefinition + ecs:StartTaskscoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-007iam:PassRole + ecs:StartTask + ecs:RegisterContainerInstancescoped
      • iam:PassRole: condition iam:PassedToService
    2 more paths
    • ecs-008iam:PassRole + ecs:RunTaskscoped
      • iam:PassRole: condition iam:PassedToService
    • ecs-009iam:PassRole + ecs:StartTaskscoped
      • iam:PassRole: condition iam:PassedToService

    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

    Full ecs access on every resource

    Uses ecs:* with Resource "*" and no condition, so every action AWS adds to that service later is granted too.

    ecs:*

    Use with caution: The grant grows every time the service does. For long-lived access, prefer a policy that lists the actions you actually need.

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "ECSIntegrationsManagementPolicy",
          "Effect": "Allow",
          "Action": [
            "application-autoscaling:DeleteScalingPolicy",
            "application-autoscaling:DeregisterScalableTarget",
            "application-autoscaling:DescribeScalableTargets",
            "application-autoscaling:DescribeScalingActivities",
            "application-autoscaling:DescribeScalingPolicies",
            "application-autoscaling:PutScalingPolicy",
            "application-autoscaling:RegisterScalableTarget",
            "appmesh:DescribeVirtualGateway",
            "appmesh:DescribeVirtualNode",
            "appmesh:ListMeshes",
            "appmesh:ListVirtualGateways",
            "appmesh:ListVirtualNodes",
            "autoscaling:CreateAutoScalingGroup",
            "autoscaling:CreateLaunchConfiguration",
            "autoscaling:DeleteAutoScalingGroup",
            "autoscaling:DeleteLaunchConfiguration",
            "autoscaling:Describe*",
            "autoscaling:UpdateAutoScalingGroup",
            "cloudformation:CreateStack",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStack*",
            "cloudformation:UpdateStack",
            "cloudwatch:DeleteAlarms",
            "cloudwatch:DescribeAlarms",
            "cloudwatch:GetMetricStatistics",
            "cloudwatch:PutMetricAlarm",
            "codedeploy:BatchGetApplicationRevisions",
            "codedeploy:BatchGetApplications",
            "codedeploy:BatchGetDeploymentGroups",
            "codedeploy:BatchGetDeployments",
            "codedeploy:ContinueDeployment",
            "codedeploy:CreateApplication",
            "codedeploy:CreateDeployment",
            "codedeploy:CreateDeploymentGroup",
            "codedeploy:GetApplication",
            "codedeploy:GetApplicationRevision",
            "codedeploy:GetDeployment",
            "codedeploy:GetDeploymentConfig",
            "codedeploy:GetDeploymentGroup",
            "codedeploy:GetDeploymentTarget",
            "codedeploy:ListApplicationRevisions",
            "codedeploy:ListApplications",
            "codedeploy:ListDeploymentConfigs",
            "codedeploy:ListDeploymentGroups",
            "codedeploy:ListDeployments",
            "codedeploy:ListDeploymentTargets",
            "codedeploy:RegisterApplicationRevision",
            "codedeploy:StopDeployment",
            "ec2:AssociateRouteTable",
            "ec2:AttachInternetGateway",
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:CancelSpotFleetRequests",
            "ec2:CreateInternetGateway",
            "ec2:CreateLaunchTemplate",
            "ec2:CreateRoute",
            "ec2:CreateRouteTable",
            "ec2:CreateSecurityGroup",
            "ec2:CreateSubnet",
            "ec2:CreateVpc",
            "ec2:DeleteLaunchTemplate",
            "ec2:DeleteSubnet",
            "ec2:DeleteVpc",
            "ec2:Describe*",
            "ec2:DetachInternetGateway",
            "ec2:DisassociateRouteTable",
            "ec2:ModifySubnetAttribute",
            "ec2:ModifyVpcAttribute",
            "ec2:RequestSpotFleet",
            "ec2:RunInstances",
            "ecs:*",
            "elasticfilesystem:DescribeAccessPoints",
            "elasticfilesystem:DescribeFileSystems",
            "elasticloadbalancing:CreateListener",
            "elasticloadbalancing:CreateLoadBalancer",
            "elasticloadbalancing:CreateRule",
            "elasticloadbalancing:CreateTargetGroup",
            "elasticloadbalancing:DeleteListener",
            "elasticloadbalancing:DeleteLoadBalancer",
            "elasticloadbalancing:DeleteRule",
            "elasticloadbalancing:DeleteTargetGroup",
            "elasticloadbalancing:DescribeListeners",
            "elasticloadbalancing:DescribeLoadBalancers",
            "elasticloadbalancing:DescribeRules",
            "elasticloadbalancing:DescribeTargetGroups",
            "events:DeleteRule",
            "events:DescribeRule",
            "events:ListRuleNamesByTarget",
            "events:ListTargetsByRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "fsx:DescribeFileSystems",
            "iam:ListAttachedRolePolicies",
            "iam:ListInstanceProfiles",
            "iam:ListRoles",
            "lambda:ListFunctions",
            "logs:CreateLogGroup",
            "logs:DescribeLogGroups",
            "logs:FilterLogEvents",
            "route53:CreateHostedZone",
            "route53:DeleteHostedZone",
            "route53:GetHealthCheck",
            "route53:GetHostedZone",
            "route53:ListHostedZonesByName",
            "servicediscovery:CreatePrivateDnsNamespace",
            "servicediscovery:CreateService",
            "servicediscovery:DeleteService",
            "servicediscovery:GetNamespace",
            "servicediscovery:GetOperation",
            "servicediscovery:GetService",
            "servicediscovery:ListNamespaces",
            "servicediscovery:ListServices",
            "servicediscovery:UpdateService",
            "sns:ListTopics"
          ],
          "Resource": [
            "*"
          ]
        },
        {
          "Sid": "SSMPolicy",
          "Effect": "Allow",
          "Action": [
            "ssm:GetParameter",
            "ssm:GetParameters",
            "ssm:GetParametersByPath"
          ],
          "Resource": "arn:aws:ssm:*:*:parameter/aws/service/ecs*"
        },
        {
          "Sid": "ManagedCloudformationResourcesCleanupPolicy",
          "Effect": "Allow",
          "Action": [
            "ec2:DeleteInternetGateway",
            "ec2:DeleteRoute",
            "ec2:DeleteRouteTable",
            "ec2:DeleteSecurityGroup"
          ],
          "Resource": [
            "*"
          ],
          "Condition": {
            "StringLike": {
              "ec2:ResourceTag/aws:cloudformation:stack-name": "EC2ContainerService-*"
            }
          }
        },
        {
          "Sid": "TasksPassRolePolicy",
          "Action": "iam:PassRole",
          "Effect": "Allow",
          "Resource": [
            "*"
          ],
          "Condition": {
            "StringLike": {
              "iam:PassedToService": "ecs-tasks.amazonaws.com"
            }
          }
        },
        {
          "Sid": "InfrastructurePassRolePolicy",
          "Action": "iam:PassRole",
          "Effect": "Allow",
          "Resource": [
            "arn:aws:iam::*:role/ecsInfrastructureRole"
          ],
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": "ecs.amazonaws.com"
            }
          }
        },
        {
          "Sid": "InstancePassRolePolicy",
          "Action": "iam:PassRole",
          "Effect": "Allow",
          "Resource": [
            "arn:aws:iam::*:role/ecsInstanceRole*"
          ],
          "Condition": {
            "StringLike": {
              "iam:PassedToService": [
                "ec2.amazonaws.com",
                "ec2.amazonaws.com.cn"
              ]
            }
          }
        },
        {
          "Sid": "AutoScalingPassRolePolicy",
          "Action": "iam:PassRole",
          "Effect": "Allow",
          "Resource": [
            "arn:aws:iam::*:role/ecsAutoscaleRole*"
          ],
          "Condition": {
            "StringLike": {
              "iam:PassedToService": [
                "application-autoscaling.amazonaws.com",
                "application-autoscaling.amazonaws.com.cn"
              ]
            }
          }
        },
        {
          "Sid": "ServiceLinkedRoleCreationPolicy",
          "Effect": "Allow",
          "Action": "iam:CreateServiceLinkedRole",
          "Resource": "*",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": [
                "ecs.amazonaws.com",
                "autoscaling.amazonaws.com",
                "ecs.application-autoscaling.amazonaws.com",
                "spot.amazonaws.com",
                "spotfleet.amazonaws.com"
              ]
            }
          }
        },
        {
          "Sid": "ELBTaggingPolicy",
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:AddTags"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "elasticloadbalancing:CreateAction": [
                "CreateTargetGroup",
                "CreateRule",
                "CreateListener",
                "CreateLoadBalancer"
              ]
            }
          }
        },
        {
          "Sid": "CloudFormationTagOnCreate",
          "Effect": "Allow",
          "Action": [
            "cloudformation:TagResource",
            "cloudformation:UntagResource"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "cloudformation:CreateAction": [
                "CreateStack",
                "UpdateStack"
              ]
            }
          }
        }
      ]
    },
    "VersionId": "v22",
    "IsDefaultVersion": true,
    "CreateDate": "2026-09-02T14:47:07+00:00"
  }
}

Version History (16 recorded)

Raw history
v22updated

2 actions added

b1cffa8

AmazonECS_FullAccess - Policy Version v21

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

Mar 12, 2026

9843b0f

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.

Aug 13, 2024

8932732

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.

Jan 4, 2023

067b455

Update detected

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

Oct 13, 2020

bb53145

Update detected

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

Jul 1, 2020

cd8592d

Update detected

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

Mar 23, 2020

56cd44a

Update detected

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

Sep 16, 2019

49aa1d0

Update detected

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

Sep 16, 2019

71619cf

Update detected

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

Sep 16, 2019

8279033

`2019-08-29`

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

Aug 29, 2019

5016d52

I updated my CLI and it looks like it reordered everything and changed the white-space, so everything looks changed, but is not

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

Jul 12, 2019

9d2dff1

Update

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

Jun 20, 2019

0b4feee

First commit

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

Feb 10, 2019

ad4c2e8