AWSElasticBeanstalkRoleCore
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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Certificate Manager | 13 of 42 | 6 List, 7 Read; 0 restricted, 0 conditional | acm:Describe*, acm:List* |
| EC2 Auto Scaling | 43 of 68 | 21 List, 1 Read, 2 Tagging, 19 Write; 20 restricted, 0 conditional | autoscaling:*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 |
| CloudFormation | 29 of 104 | 2 List, 20 Read, 2 Tagging, 5 Write; 9 restricted, 0 conditional | cloudformation:CancelUpdateStack, cloudformation:ContinueUpdateRollback, cloudformation:CreateStack, cloudformation:DeleteStack, cloudformation:Describe*, cloudformation:GetTemplate, cloudformation:ListStackResources, cloudformation:TagResource, cloudformation:UntagResource, cloudformation:UpdateStack |
| CloudWatch | 2 of 160 | 2 Write; 2 restricted, 0 conditional | cloudwatch:DeleteAlarms, cloudwatch:PutMetricAlarm |
| EC2 | 213 of 834 | 195 List, 2 Tagging, 16 Write; 2 restricted, 2 conditional | ec2: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 Service | 34 of 92 | 15 List, 19 Read; 0 restricted, 0 conditional | ecs:Describe*, ecs:List* |
| ELB | 57 of 77 | 2 List, 18 Read, 2 Tagging, 35 Write; 37 restricted, 0 conditional | elasticloadbalancing:*Tags, elasticloadbalancing:ConfigureHealthCheck, elasticloadbalancing:Create*, elasticloadbalancing:DeRegisterTargets, elasticloadbalancing:Delete*, elasticloadbalancing:DeregisterInstancesFromLoadBalancer, elasticloadbalancing:Describe*, elasticloadbalancing:Modify*, elasticloadbalancing:RegisterInstancesWithLoadBalancer, elasticloadbalancing:RegisterTargets, elasticloadbalancing:SetLoadBalancerPoliciesOfListener, elasticloadbalancing:SetRulePriorities |
| IAM | 40 of 190 | 38 List, 2 Write; 2 restricted, 2 conditional | iam:CreateServiceLinkedRole, iam:List*, iam:PassRole |
| CloudWatch Logs | 19 of 133 | 19 List; 0 restricted, 0 conditional | logs:Describe* |
| RDS | 49 of 173 | 47 List, 2 Read; 0 restricted, 0 conditional | rds:Describe* |
| S3 | 107 of 155 | 17 Permissions management, 55 Read, 5 Tagging, 30 Write; 107 restricted, 0 conditional | s3:Delete*, s3:Get*, s3:GetBucket*, s3:Put*, s3:PutBucketPolicy |
| SNS | 9 of 40 | 7 List, 2 Read; 0 restricted, 0 conditional | sns: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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| S3 | 20 of 25 | 1 List, 2 Permissions management, 8 Read, 4 Tagging, 5 Write; 20 restricted, 0 conditional | s3: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.
Related policies
Same service
- AccessAnalyzerServiceRolePolicy
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsReleaseManagementVPCPolicy
- AmazonAppFlowFullAccess
- AmazonAppStreamServiceAccess
- AmazonBedrockStudioPermissionsBoundary
- AmazonBioDiscoveryServiceLinkedRolePolicy
- AmazonBraketJobsExecutionPolicy
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
{
"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/AWSElasticBeanstalkRoleCoreCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkRoleCoreTerraform
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.