AWSElasticBeanstalkManagedUpdatesServiceRolePolicy

Last Modified

Mar 16, 2026

March 16, 2026 at 01:26 AM UTC

Version

v10

Total Versions

11

Created

Mar 13, 2026

Actions

70

Risk

Medium

The 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 launch resources that run as a more privileged role

    Grants the actions of 2 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, on arn:aws:iam::*:role/*
      • cloudformation:CreateStack: on arn:aws:cloudformation:*:*:stack/awseb-e-*, arn:aws:cloudformation:*:*:stack/eb-*
    • ec2-001iam:PassRole + ec2:RunInstancesscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/*
      • ec2:RunInstances: condition ec2:LaunchTemplate

    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-002cloudformation:UpdateStackscoped
      • cloudformation:UpdateStack: on arn:aws:cloudformation:*:*:stack/awseb-e-*, arn:aws:cloudformation:*:*:stack/eb-*

    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 elasticbeanstalk access on every resource

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

    elasticbeanstalk:*

    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": "AllowPassRoleToElasticBeanstalkAndDownstreamServices",
          "Effect": "Allow",
          "Action": "iam:PassRole",
          "Resource": "arn:aws:iam::*:role/*",
          "Condition": {
            "StringEquals": {
              "iam:PassedToService": [
                "elasticbeanstalk.amazonaws.com",
                "ec2.amazonaws.com",
                "autoscaling.amazonaws.com",
                "elasticloadbalancing.amazonaws.com",
                "ecs.amazonaws.com",
                "cloudformation.amazonaws.com"
              ]
            }
          }
        },
        {
          "Sid": "SingleInstanceAPIs",
          "Effect": "Allow",
          "Action": [
            "ec2:releaseAddress",
            "ec2:allocateAddress",
            "ec2:DisassociateAddress",
            "ec2:AssociateAddress"
          ],
          "Resource": "*"
        },
        {
          "Sid": "ECS",
          "Effect": "Allow",
          "Action": [
            "ecs:RegisterTaskDefinition",
            "ecs:DeRegisterTaskDefinition",
            "ecs:List*",
            "ecs:Describe*"
          ],
          "Resource": "*"
        },
        {
          "Sid": "ElasticBeanstalkAPIs",
          "Effect": "Allow",
          "Action": [
            "elasticbeanstalk:*"
          ],
          "Resource": "*"
        },
        {
          "Sid": "ReadOnlyAPIs",
          "Effect": "Allow",
          "Action": [
            "cloudformation:Describe*",
            "cloudformation:List*",
            "ec2:Describe*",
            "autoscaling:Describe*",
            "elasticloadbalancing:Describe*",
            "logs:DescribeLogGroups",
            "sns:GetTopicAttributes",
            "sns:ListSubscriptionsByTopic",
            "rds:DescribeDBEngineVersions",
            "rds:DescribeDBInstances"
          ],
          "Resource": "*"
        },
        {
          "Sid": "ASG",
          "Effect": "Allow",
          "Action": [
            "autoscaling:AttachInstances",
            "autoscaling:CreateAutoScalingGroup",
            "autoscaling:CreateLaunchConfiguration",
            "autoscaling:CreateOrUpdateTags",
            "autoscaling:DeleteAutoScalingGroup",
            "autoscaling:DeleteLaunchConfiguration",
            "autoscaling:DeleteScheduledAction",
            "autoscaling:DetachInstances",
            "autoscaling:PutNotificationConfiguration",
            "autoscaling:PutScalingPolicy",
            "autoscaling:PutScheduledUpdateGroupAction",
            "autoscaling:ResumeProcesses",
            "autoscaling:SuspendProcesses",
            "autoscaling:TerminateInstanceInAutoScalingGroup",
            "autoscaling:UpdateAutoScalingGroup"
          ],
          "Resource": [
            "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/awseb-e-*",
            "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/awseb-e-*",
            "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/eb-*",
            "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/eb-*"
          ]
        },
        {
          "Sid": "CFN",
          "Effect": "Allow",
          "Action": [
            "cloudformation:CreateStack",
            "cloudformation:CancelUpdateStack",
            "cloudformation:DeleteStack",
            "cloudformation:GetTemplate",
            "cloudformation:UpdateStack",
            "cloudformation:TagResource",
            "cloudformation:UntagResource"
          ],
          "Resource": [
            "arn:aws:cloudformation:*:*:stack/awseb-e-*",
            "arn:aws:cloudformation:*:*:stack/eb-*"
          ]
        },
        {
          "Sid": "EC2",
          "Effect": "Allow",
          "Action": [
            "ec2:TerminateInstances"
          ],
          "Resource": "arn:aws:ec2:*:*:instance/*",
          "Condition": {
            "StringLike": {
              "ec2:ResourceTag/aws:cloudformation:stack-id": [
                "arn:aws:cloudformation:*:*:stack/awseb-e-*",
                "arn:aws:cloudformation:*:*:stack/eb-*"
              ]
            }
          }
        },
        {
          "Sid": "S3Obj",
          "Effect": "Allow",
          "Action": [
            "s3:DeleteObject",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:GetObjectVersion",
            "s3:GetObjectVersionAcl",
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:PutObjectVersionAcl"
          ],
          "Resource": "arn:aws:s3:::elasticbeanstalk-*/*"
        },
        {
          "Sid": "S3Bucket",
          "Effect": "Allow",
          "Action": [
            "s3:GetBucketLocation",
            "s3:GetBucketPolicy",
            "s3:ListBucket",
            "s3:PutBucketPolicy"
          ],
          "Resource": "arn:aws:s3:::elasticbeanstalk-*"
        },
        {
          "Sid": "CWL",
          "Effect": "Allow",
          "Action": [
            "logs:CreateLogGroup",
            "logs:DeleteLogGroup",
            "logs:PutRetentionPolicy"
          ],
          "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*"
        },
        {
          "Sid": "ELB",
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:RegisterTargets",
            "elasticloadbalancing:DeRegisterTargets",
            "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
            "elasticloadbalancing:RegisterInstancesWithLoadBalancer"
          ],
          "Resource": [
            "arn:aws:elasticloadbalancing:*:*:targetgroup/awseb-*",
            "arn:aws:elasticloadbalancing:*:*:loadbalancer/awseb-e-*",
            "arn:aws:elasticloadbalancing:*:*:targetgroup/eb-*",
            "arn:aws:elasticloadbalancing:*:*:loadbalancer/eb-*"
          ]
        },
        {
          "Sid": "SNS",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic"
          ],
          "Resource": "arn:aws:sns:*:*:ElasticBeanstalkNotifications-Environment-*"
        },
        {
          "Sid": "EC2LaunchTemplate",
          "Effect": "Allow",
          "Action": [
            "ec2:CreateLaunchTemplate",
            "ec2:DeleteLaunchTemplate",
            "ec2:CreateLaunchTemplateVersion",
            "ec2:DeleteLaunchTemplateVersions"
          ],
          "Resource": "arn:aws:ec2:*:*:launch-template/*"
        },
        {
          "Sid": "AllowLaunchTemplateRunInstances",
          "Effect": "Allow",
          "Action": "ec2:RunInstances",
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "ec2:LaunchTemplate": "arn:aws:ec2:*:*:launch-template/*"
            }
          }
        },
        {
          "Sid": "AllowECSTagResource",
          "Effect": "Allow",
          "Action": [
            "ecs:TagResource"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "ecs:CreateAction": [
                "RegisterTaskDefinition"
              ]
            }
          }
        },
        {
          "Sid": "LaunchTemplateTagPropagationPermissions",
          "Effect": "Allow",
          "Action": "ec2:createTags",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "ec2:CreateAction": [
                "CreateLaunchTemplate",
                "RunInstances",
                "AllocateAddress"
              ]
            }
          }
        }
      ]
    },
    "VersionId": "v10",
    "IsDefaultVersion": true,
    "CreateDate": "2026-03-13T16:12:13+00:00"
  }
}

Version History (14 recorded)

Raw history
v10updated

1 action added

5cb9e20
v9updated

scope changed, no action added or removed

18cbfe9

AWSElasticBeanstalkManagedUpdatesServiceRolePolicy - Policy Version v9

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

Mar 12, 2026

69d5dfc

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 24, 2023

6838351

Update detected

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

Jan 27, 2023

a27e3d3

Update detected

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

Aug 23, 2022

0131819

Update detected

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

Aug 23, 2022

d7a4470

Update detected

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

Dec 11, 2020

c83830a

Update detected

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

Sep 11, 2020

91a4d51

Update detected

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

May 19, 2020

dd9bd4d

Update detected

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

May 2, 2020

5666669

Update detected

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

Nov 22, 2019

684326f