Skip to main content
IAM Policy Map

AWSElasticBeanstalkRoleCore

OperatorService roleActivePermissions reviewedShow on mapCompare

Summary

AWSElasticBeanstalkRoleCore (Elastic Beanstalk operations role) Allows core operation of a web service environment.

Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.

Identity

ARN
arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore
Default version
v3
Created
Last edited
Services
acm, autoscaling, cloudformation, cloudwatch, ec2, ecs, elasticloadbalancing, iam, logs, rds, s3, sns

Control-plane actions (615)

By access level: 352 List, 17 Permissions management, 124 Read, 13 Tagging, 109 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
Certificate Manager13 of 426 List, 7 Read; 0 restricted, 0 conditionalacm:Describe*, acm:List*
EC2 Auto Scaling43 of 6821 List, 1 Read, 2 Tagging, 19 Write; 20 restricted, 0 conditionalautoscaling:*AutoScalingGroup, autoscaling:*LaunchConfiguration, autoscaling:*LoadBalancer*, autoscaling:*Tags, autoscaling:AttachInstances, autoscaling:DeletePolicy, autoscaling:DeleteScheduledAction, autoscaling:Describe*, autoscaling:DetachInstances, autoscaling:PutNotificationConfiguration, autoscaling:PutScalingPolicy, autoscaling:PutScheduledUpdateGroupAction and 2 more
CloudFormation29 of 1042 List, 20 Read, 2 Tagging, 5 Write; 9 restricted, 0 conditionalcloudformation:CancelUpdateStack, cloudformation:ContinueUpdateRollback, cloudformation:CreateStack, cloudformation:DeleteStack, cloudformation:Describe*, cloudformation:GetTemplate, cloudformation:ListStackResources, cloudformation:TagResource, cloudformation:UntagResource, cloudformation:UpdateStack
CloudWatch2 of 1602 Write; 2 restricted, 0 conditionalcloudwatch:DeleteAlarms, cloudwatch:PutMetricAlarm
EC2213 of 834195 List, 2 Tagging, 16 Write; 2 restricted, 2 conditionalec2:AllocateAddress, ec2:AssociateAddress, ec2:AuthorizeSecurityGroup*, ec2:CreateLaunchTemplate*, ec2:CreateSecurityGroup, ec2:CreateTags, ec2:DeleteLaunchTemplate*, ec2:DeleteSecurityGroup, ec2:DeleteTags, ec2:Describe*, ec2:DisassociateAddress, ec2:ReleaseAddress and 3 more
Elastic Container Service34 of 9215 List, 19 Read; 0 restricted, 0 conditionalecs:Describe*, ecs:List*
ELB57 of 772 List, 18 Read, 2 Tagging, 35 Write; 37 restricted, 0 conditionalelasticloadbalancing:*Tags, elasticloadbalancing:ConfigureHealthCheck, elasticloadbalancing:Create*, elasticloadbalancing:DeRegisterTargets, elasticloadbalancing:Delete*, elasticloadbalancing:DeregisterInstancesFromLoadBalancer, elasticloadbalancing:Describe*, elasticloadbalancing:Modify*, elasticloadbalancing:RegisterInstancesWithLoadBalancer, elasticloadbalancing:RegisterTargets, elasticloadbalancing:SetLoadBalancerPoliciesOfListener, elasticloadbalancing:SetRulePriorities
IAM40 of 19038 List, 2 Write; 2 restricted, 2 conditionaliam:CreateServiceLinkedRole, iam:List*, iam:PassRole
CloudWatch Logs19 of 13319 List; 0 restricted, 0 conditionallogs:Describe*
RDS49 of 17347 List, 2 Read; 0 restricted, 0 conditionalrds:Describe*
S3107 of 15517 Permissions management, 55 Read, 5 Tagging, 30 Write; 107 restricted, 0 conditionals3:Delete*, s3:Get*, s3:GetBucket*, s3:Put*, s3:PutBucketPolicy
SNS9 of 407 List, 2 Read; 0 restricted, 0 conditionalsns:List*

The full action list is in actions.json.

Data-plane actions (20)

By access level: 1 List, 2 Permissions management, 8 Read, 4 Tagging, 5 Write.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
S320 of 251 List, 2 Permissions management, 8 Read, 4 Tagging, 5 Write; 20 restricted, 0 conditionals3:Delete*, s3:Get*, s3:ListBucket, s3:Put*

The full action list is in actions.json.

Excluded and conditional actions

No patterns are excluded by NotAction or Deny statements.

Resource scope and attachment

Resource scope across granted actions: mixed.

Can be attached: Yes, to users, groups and roles.

Why this tier

  • Grants 150 write, tagging or permissions-management actions, short of full control of any service.
  • Grants data-plane write actions on a data store, but only for scoped resources or under conditions.
  • Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).

Guidance

Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.

Same service

Same domain

Frequently asked questions

Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "TerminateInstances",
      "Effect": "Allow",
      "Action": [
        "ec2:TerminateInstances"
      ],
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "StringLike": {
          "ec2:ResourceTag/aws:cloudformation:stack-id": "arn:aws:cloudformation:*:*:stack/awseb-e-*"
        }
      }
    },
    {
      "Sid": "EC2",
      "Effect": "Allow",
      "Action": [
        "ec2:ReleaseAddress",
        "ec2:AllocateAddress",
        "ec2:DisassociateAddress",
        "ec2:AssociateAddress",
        "ec2:CreateTags",
        "ec2:DeleteTags",
        "ec2:CreateSecurityGroup",
        "ec2:DeleteSecurityGroup",
        "ec2:AuthorizeSecurityGroup*",
        "ec2:RevokeSecurityGroup*",
        "ec2:CreateLaunchTemplate*",
        "ec2:DeleteLaunchTemplate*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "LTRunInstances",
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "ec2:LaunchTemplate": "arn:aws:ec2:*:*:launch-template/*"
        }
      }
    },
    {
      "Sid": "ASG",
      "Effect": "Allow",
      "Action": [
        "autoscaling:AttachInstances",
        "autoscaling:*LoadBalancer*",
        "autoscaling:*AutoScalingGroup",
        "autoscaling:*LaunchConfiguration",
        "autoscaling:DeleteScheduledAction",
        "autoscaling:DetachInstances",
        "autoscaling:PutNotificationConfiguration",
        "autoscaling:PutScalingPolicy",
        "autoscaling:PutScheduledUpdateGroupAction",
        "autoscaling:ResumeProcesses",
        "autoscaling:SuspendProcesses",
        "autoscaling:*Tags"
      ],
      "Resource": [
        "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/awseb-e-*",
        "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/awseb-e-*"
      ]
    },
    {
      "Sid": "ASGPolicy",
      "Effect": "Allow",
      "Action": [
        "autoscaling:DeletePolicy"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "EBSLR",
      "Effect": "Allow",
      "Action": [
        "iam:CreateServiceLinkedRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk*"
      ],
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "elasticbeanstalk.amazonaws.com"
        }
      }
    },
    {
      "Sid": "S3Obj",
      "Effect": "Allow",
      "Action": [
        "s3:Delete*",
        "s3:Get*",
        "s3:Put*"
      ],
      "Resource": [
        "arn:aws:s3:::elasticbeanstalk-*/*",
        "arn:aws:s3:::elasticbeanstalk-env-resources-*/*"
      ]
    },
    {
      "Sid": "S3Bucket",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucket*",
        "s3:ListBucket",
        "s3:PutBucketPolicy"
      ],
      "Resource": "arn:aws:s3:::elasticbeanstalk-*"
    },
    {
      "Sid": "CFN",
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateStack",
        "cloudformation:DeleteStack",
        "cloudformation:GetTemplate",
        "cloudformation:ListStackResources",
        "cloudformation:UpdateStack",
        "cloudformation:ContinueUpdateRollback",
        "cloudformation:CancelUpdateStack",
        "cloudformation:TagResource",
        "cloudformation:UntagResource"
      ],
      "Resource": "arn:aws:cloudformation:*:*:stack/awseb-e-*"
    },
    {
      "Sid": "CloudWatch",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricAlarm",
        "cloudwatch:DeleteAlarms"
      ],
      "Resource": "arn:aws:cloudwatch:*:*:alarm:awseb-*"
    },
    {
      "Sid": "ELB",
      "Effect": "Allow",
      "Action": [
        "elasticloadbalancing:Create*",
        "elasticloadbalancing:Delete*",
        "elasticloadbalancing:Modify*",
        "elasticloadbalancing:RegisterTargets",
        "elasticloadbalancing:DeRegisterTargets",
        "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
        "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
        "elasticloadbalancing:*Tags",
        "elasticloadbalancing:ConfigureHealthCheck",
        "elasticloadbalancing:SetRulePriorities",
        "elasticloadbalancing:SetLoadBalancerPoliciesOfListener"
      ],
      "Resource": [
        "arn:aws:elasticloadbalancing:*:*:targetgroup/awseb-*",
        "arn:aws:elasticloadbalancing:*:*:loadbalancer/awseb-*",
        "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/awseb-*/*",
        "arn:aws:elasticloadbalancing:*:*:loadbalancer/net/awseb-*/*",
        "arn:aws:elasticloadbalancing:*:*:listener/awseb-*",
        "arn:aws:elasticloadbalancing:*:*:listener/app/awseb-*",
        "arn:aws:elasticloadbalancing:*:*:listener/net/awseb-*",
        "arn:aws:elasticloadbalancing:*:*:listener-rule/app/awseb-*/*/*/*"
      ]
    },
    {
      "Sid": "ListAPIs",
      "Effect": "Allow",
      "Action": [
        "autoscaling:Describe*",
        "cloudformation:Describe*",
        "logs:Describe*",
        "ec2:Describe*",
        "ecs:Describe*",
        "ecs:List*",
        "elasticloadbalancing:Describe*",
        "rds:Describe*",
        "sns:List*",
        "iam:List*",
        "acm:Describe*",
        "acm:List*"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AllowPassRole",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::*:role/aws-elasticbeanstalk-*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": [
            "elasticbeanstalk.amazonaws.com",
            "ec2.amazonaws.com",
            "autoscaling.amazonaws.com",
            "elasticloadbalancing.amazonaws.com",
            "ecs.amazonaws.com",
            "cloudformation.amazonaws.com"
          ]
        }
      }
    }
  ]
}

Version history

Current version v3, edited by AWS on 2024-04-30. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.

Attach snippets

AWS CLI

aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore

CloudFormation

Resources:
  ExampleRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument: {}  # replace with your trust policy
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore

Terraform

resource "aws_iam_role_policy_attachment" "service_role_awselasticbeanstalkrolecore" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCore"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSElasticBeanstalkRoleCore"),
);

Sources

Pending editorial review. No editorial sources are listed yet.