AWSElasticBeanstalkService

Last Modified

Mar 12, 2026

March 12, 2026 at 09:26 PM UTC

Version

v17

Total Versions

8

Created

May 10, 2023

Actions

100

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 change identities and their permissions

    Grants 1 permissions management action on IAM, IAM Identity Center or Organizations, on any resource with no condition.

    iam:passrole

    Use with caution: Grant it only to identity administrators, and protect your admin roles and SCPs with a permissions boundary or an SCP of their own.

  • High

    Can launch resources that run as a more privileged role

    Grants every action of 1 documented escalation path on any resource with no condition, and 5 more in a scoped form.

    • codebuild-001iam:PassRole + codebuild:CreateProject + codebuild:StartBuildunrestricted
    • cloudformation-001iam:PassRole + cloudformation:CreateStackscoped
      • cloudformation:CreateStack (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*
    • cloudformation-003iam:PassRole + cloudformation:CreateStackSet + cloudformation:CreateStackInstancesscoped
      • cloudformation:CreateStackSet (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*
      • cloudformation:CreateStackInstances (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*
    • cloudformation-004iam:PassRole + cloudformation:UpdateStackSetscoped
      • cloudformation:UpdateStackSet (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*
    • cloudformation-005cloudformation:CreateChangeSet + cloudformation:ExecuteChangeSetscoped
      • cloudformation:CreateChangeSet (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*
      • cloudformation:ExecuteChangeSet (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*
    • ec2-001iam:PassRole + ec2:RunInstancesscoped
      • ec2:RunInstances: condition ec2:LaunchTemplate

    Use with caution: Make sure no highly privileged role trusts the service involved, and restrict iam:PassRole in your own policies or boundary to named roles with iam:PassedToService.

  • 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 1 more in a scoped form.

    • codebuild-002codebuild:StartBuildunrestricted
    • cloudformation-002cloudformation:UpdateStackscoped
      • cloudformation:UpdateStack (via cloudformation:*): on arn:aws:cloudformation:*:*:stack/awseb-*, arn:aws:cloudformation:*:*:stack/eb-*

    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 read data in every bucket or table

    Reads any object in any S3 bucket. Read-only is not the same as harmless when the data is the asset.

    s3:GetObject

    Use with caution: Read access to data is still access to data. For people who only need to see configuration, ViewOnlyAccess carries none of these signals.

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

  • Medium

    Flagged by AWS IAM Access Analyzer

    AWS's own policy validation raises 1 security warning: PASS_ROLE_WITH_STAR_IN_RESOURCE.

    • Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement.

    Use with caution: Read AWS's finding and the documentation it links to.

IAM Access Analyzer (2)

  • Suggestion / REDUNDANT_RESOURCE

    The 2 resource ARN(s) are redundant because they reference the same resource. Review the use of wildcards (*), or remove the resource arn:aws:s3:::elasticbeanstalk-*/* to remove the redundancy. AWS docs

  • Security warning / PASS_ROLE_WITH_STAR_IN_RESOURCE

    Using the iam:PassRole action with wildcards (*) in the resource can be overly permissive because it allows iam:PassRole permissions on multiple resources. We recommend that you specify resource ARNs or add the iam:PassedToService condition key to your statement. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowCloudformationOperationsOnElasticBeanstalkStacks",
          "Effect": "Allow",
          "Action": [
            "cloudformation:*"
          ],
          "Resource": [
            "arn:aws:cloudformation:*:*:stack/awseb-*",
            "arn:aws:cloudformation:*:*:stack/eb-*"
          ]
        },
        {
          "Sid": "AllowDeleteCloudwatchLogGroups",
          "Effect": "Allow",
          "Action": [
            "logs:DeleteLogGroup"
          ],
          "Resource": [
            "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk*"
          ]
        },
        {
          "Sid": "AllowECSTagResource",
          "Effect": "Allow",
          "Action": [
            "ecs:TagResource"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "ecs:CreateAction": [
                "CreateCluster",
                "RegisterTaskDefinition"
              ]
            }
          }
        },
        {
          "Sid": "AllowS3OperationsOnElasticBeanstalkBuckets",
          "Effect": "Allow",
          "Action": [
            "s3:*"
          ],
          "Resource": [
            "arn:aws:s3:::elasticbeanstalk-*",
            "arn:aws:s3:::elasticbeanstalk-*/*"
          ]
        },
        {
          "Sid": "AllowLaunchTemplateRunInstances",
          "Effect": "Allow",
          "Action": "ec2:RunInstances",
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "ec2:LaunchTemplate": "arn:aws:ec2:*:*:launch-template/*"
            }
          }
        },
        {
          "Sid": "AllowELBAddTags",
          "Effect": "Allow",
          "Action": [
            "elasticloadbalancing:AddTags"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "elasticloadbalancing:CreateAction": [
                "CreateLoadBalancer"
              ]
            }
          }
        },
        {
          "Sid": "AllowOperations",
          "Effect": "Allow",
          "Action": [
            "autoscaling:AttachInstances",
            "autoscaling:CreateAutoScalingGroup",
            "autoscaling:CreateLaunchConfiguration",
            "autoscaling:CreateOrUpdateTags",
            "autoscaling:DeleteLaunchConfiguration",
            "autoscaling:DeleteAutoScalingGroup",
            "autoscaling:DeleteScheduledAction",
            "autoscaling:DescribeAccountLimits",
            "autoscaling:DescribeAutoScalingGroups",
            "autoscaling:DescribeAutoScalingInstances",
            "autoscaling:DescribeLaunchConfigurations",
            "autoscaling:DescribeLoadBalancers",
            "autoscaling:DescribeNotificationConfigurations",
            "autoscaling:DescribeScalingActivities",
            "autoscaling:DescribeScheduledActions",
            "autoscaling:DetachInstances",
            "autoscaling:DeletePolicy",
            "autoscaling:PutScalingPolicy",
            "autoscaling:PutScheduledUpdateGroupAction",
            "autoscaling:PutNotificationConfiguration",
            "autoscaling:ResumeProcesses",
            "autoscaling:SetDesiredCapacity",
            "autoscaling:SuspendProcesses",
            "autoscaling:TerminateInstanceInAutoScalingGroup",
            "autoscaling:UpdateAutoScalingGroup",
            "cloudwatch:PutMetricAlarm",
            "ec2:AssociateAddress",
            "ec2:AllocateAddress",
            "ec2:AuthorizeSecurityGroupEgress",
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:CreateLaunchTemplate",
            "ec2:CreateLaunchTemplateVersion",
            "ec2:DescribeLaunchTemplates",
            "ec2:DescribeLaunchTemplateVersions",
            "ec2:DeleteLaunchTemplate",
            "ec2:DeleteLaunchTemplateVersions",
            "ec2:CreateSecurityGroup",
            "ec2:DeleteSecurityGroup",
            "ec2:DescribeAccountAttributes",
            "ec2:DescribeAddresses",
            "ec2:DescribeImages",
            "ec2:DescribeInstances",
            "ec2:DescribeKeyPairs",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSnapshots",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs",
            "ec2:DescribeInstanceAttribute",
            "ec2:DescribeSpotInstanceRequests",
            "ec2:DescribeVpcClassicLink",
            "ec2:DisassociateAddress",
            "ec2:ReleaseAddress",
            "ec2:RevokeSecurityGroupEgress",
            "ec2:RevokeSecurityGroupIngress",
            "ec2:TerminateInstances",
            "ecs:CreateCluster",
            "ecs:DeleteCluster",
            "ecs:DescribeClusters",
            "ecs:RegisterTaskDefinition",
            "elasticbeanstalk:*",
            "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer",
            "elasticloadbalancing:ConfigureHealthCheck",
            "elasticloadbalancing:CreateLoadBalancer",
            "elasticloadbalancing:DeleteLoadBalancer",
            "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
            "elasticloadbalancing:DescribeInstanceHealth",
            "elasticloadbalancing:DescribeLoadBalancers",
            "elasticloadbalancing:DescribeTargetHealth",
            "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
            "elasticloadbalancing:DescribeTargetGroups",
            "elasticloadbalancing:RegisterTargets",
            "elasticloadbalancing:DeregisterTargets",
            "iam:ListRoles",
            "iam:PassRole",
            "logs:CreateLogGroup",
            "logs:PutRetentionPolicy",
            "logs:DescribeLogGroups",
            "rds:DescribeDBEngineVersions",
            "rds:DescribeDBInstances",
            "rds:DescribeOrderableDBInstanceOptions",
            "s3:GetObject",
            "s3:GetObjectAcl",
            "s3:ListBucket",
            "sns:CreateTopic",
            "sns:GetTopicAttributes",
            "sns:ListSubscriptionsByTopic",
            "sns:Subscribe",
            "sns:SetTopicAttributes",
            "sqs:GetQueueAttributes",
            "sqs:GetQueueUrl",
            "codebuild:CreateProject",
            "codebuild:DeleteProject",
            "codebuild:BatchGetBuilds",
            "codebuild:StartBuild"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    },
    "VersionId": "v17",
    "IsDefaultVersion": true,
    "CreateDate": "2023-05-10T19:29:34+00:00"
  }
}

Version History (11 recorded)

Raw history

AWSElasticBeanstalkService - Policy Version v17

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

Mar 12, 2026

67f8021

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.

May 10, 2023

e444b28

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 17, 2019

da2a539

First commit

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

Feb 10, 2019

ad4c2e8