Elastic Beanstalk-Servicerolle - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Elastic Beanstalk-Servicerolle

Eine Servicerolle ist die IAM Rolle, die Elastic Beanstalk einnimmt, wenn es in Ihrem Namen andere Services aufruft. Elastic Beanstalk verwendet beispielsweise eine Service-Rolle, wenn es Amazon Elastic Compute Cloud (AmazonEC2), Elastic Load Balancing und Amazon EC2 Auto Scaling aufruft, APIs um Informationen zu sammeln. Die Servicerolle, die Elastic Beanstalk verwendet, ist diejenige, die Sie beim Erstellen der Elastic-Beanstalk-Umgebung angegeben haben.

Es gibt zwei verwaltete Richtlinien, die mit der Servicerolle verbunden sind. Diese Richtlinien enthalten die Berechtigungen, die Elastic Beanstalk den Zugriff auf die erforderlichen AWS -Ressourcen zur Erstellung und Verwaltung Ihrer Umgebungen ermöglichen. Eine verwaltete Richtlinie bietet Berechtigungen für eine verbesserte Gesundheitsüberwachung und SQS Amazon-Support auf Mitarbeiterebene, und eine andere bietet zusätzliche Berechtigungen, die für verwaltete Plattformaktualisierungen erforderlich sind.

Diese-Richtlinie verleiht alle Berechtigungen, die Elastic Beanstalk zur Überwachung des Umgebungszustands benötigt. Es umfasst auch SQS Amazon-Aktionen, die es Elastic Beanstalk ermöglichen, die Warteschlangenaktivität für Worker-Umgebungen zu überwachen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetHealth", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:GetConsoleOutput", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeSecurityGroups", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeNotificationConfigurations", "sns:Publish" ], "Resource": [ "*" ] } ] }

Diese Richtlinie erteilt Elastic Beanstalk Berechtigungen, um Umgebungen in Ihrem Namen zu aktualisieren, um verwaltete Plattformaktualisierungen durchzuführen.

Service Level-Berechtigungsgruppierungen

Diese Richtlinie ist in Anweisungen gruppiert, die auf den bereitgestellten Berechtigungen basieren.

  • ElasticBeanstalkPermissions— Diese Gruppe von Berechtigungen dient zum Aufrufen der Elastic Beanstalk-Serviceaktionen (Elastic APIs Beanstalk).

  • AllowPassRoleToElasticBeanstalkAndDownstreamServices – Diese Berechtigungsgruppe ermöglicht es, jede Rolle an Elastic Beanstalk und an andere nachgelagerte Services wie AWS CloudFormation zu übergeben.

  • ReadOnlyPermissions — Diese Berechtigungsgruppe dient zum Sammeln von Informationen über die laufende Umgebung.

  • *OperationPermissions — Gruppen mit diesem Benennungsmuster dienen zum Aufrufen der notwendigen Vorgänge zur Durchführung von Plattformaktualisierungen.

  • *BroadOperationPermissions — Gruppen mit diesem Benennungsmuster dienen zum Aufrufen der notwendigen Vorgänge zur Durchführung von Plattformaktualisierungen. Sie enthalten auch umfassende Berechtigungen zur Unterstützung von Legacy-Umgebungen.

  • *TagResource— Gruppen mit diesem Benennungsmuster sind für Aufrufe vorgesehen, die Tags tag-on-create APIs an Ressourcen anhängen, die in einer Elastic Beanstalk Beanstalk-Umgebung erstellt werden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ElasticBeanstalkPermissions", "Effect": "Allow", "Action": [ "elasticbeanstalk:*" ], "Resource": "*" }, { "Sid": "AllowPassRoleToElasticBeanstalkAndDownstreamServices", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "ec2.amazonaws.com.rproxy.goskope.com.cn", "autoscaling.amazonaws.com", "elasticloadbalancing.amazonaws.com", "ecs.amazonaws.com", "cloudformation.amazonaws.com" ] } } }, { "Sid": "ReadOnlyPermissions", "Effect": "Allow", "Action": [ "autoscaling:DescribeAccountLimits", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeLoadBalancers", "autoscaling:DescribeNotificationConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeScheduledActions", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeImages", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeLaunchTemplates", "ec2:DescribeLaunchTemplateVersions", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSubnets", "ec2:DescribeVpcClassicLink", "ec2:DescribeVpcs", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "logs:DescribeLogGroups", "rds:DescribeDBEngineVersions", "rds:DescribeDBInstances", "rds:DescribeOrderableDBInstanceOptions", "sns:ListSubscriptionsByTopic" ], "Resource": [ "*" ] }, { "Sid": "EC2BroadOperationPermissions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateLaunchTemplate", "ec2:CreateLaunchTemplateVersion", "ec2:CreateSecurityGroup", "ec2:DeleteLaunchTemplate", "ec2:DeleteLaunchTemplateVersions", "ec2:DeleteSecurityGroup", "ec2:DisassociateAddress", "ec2:ReleaseAddress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress" ], "Resource": "*" }, { "Sid": "EC2RunInstancesOperationPermissions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "*", "Condition": { "ArnLike": { "ec2:LaunchTemplate": "arn:aws:ec2:*:*:launch-template/*" } } }, { "Sid": "EC2TerminateInstancesOperationPermissions", "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": "ECSBroadOperationPermissions", "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:DescribeClusters", "ecs:RegisterTaskDefinition" ], "Resource": "*" }, { "Sid": "ECSDeleteClusterOperationPermissions", "Effect": "Allow", "Action": "ecs:DeleteCluster", "Resource": "arn:aws:ecs:*:*:cluster/awseb-*" }, { "Sid": "ASGOperationPermissions", "Effect": "Allow", "Action": [ "autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteScheduledAction", "autoscaling:DetachInstances", "autoscaling:DeletePolicy", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:PutNotificationConfiguration", "autoscaling:ResumeProcesses", "autoscaling:SetDesiredCapacity", "autoscaling:SuspendProcesses", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": [ "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/awseb-e-*", "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/eb-*", "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/awseb-e-*", "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/eb-*" ] }, { "Sid": "CFNOperationPermissions", "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": [ "arn:aws:cloudformation:*:*:stack/awseb-*", "arn:aws:cloudformation:*:*:stack/eb-*" ] }, { "Sid": "ELBOperationPermissions", "Effect": "Allow", "Action": [ "elasticloadbalancing:AddTags", "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer", "elasticloadbalancing:ConfigureHealthCheck", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:RegisterTargets" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:targetgroup/awseb-*", "arn:aws:elasticloadbalancing:*:*:targetgroup/eb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/awseb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/eb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/*/awseb-*/*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/*/eb-*/*" ] }, { "Sid": "CWLogsOperationPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*" }, { "Sid": "S3ObjectOperationPermissions", "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": "S3BucketOperationPermissions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:ListBucket", "s3:PutBucketPolicy" ], "Resource": "arn:aws:s3:::elasticbeanstalk-*" }, { "Sid": "SNSOperationPermissions", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "arn:aws:sns:*:*:ElasticBeanstalkNotifications-*" }, { "Sid": "SQSOperationPermissions", "Effect": "Allow", "Action": [ "sqs:GetQueueAttributes", "sqs:GetQueueUrl" ], "Resource": [ "arn:aws:sqs:*:*:awseb-e-*", "arn:aws:sqs:*:*:eb-*" ] }, { "Sid": "CWPutMetricAlarmOperationPermissions", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm" ], "Resource": [ "arn:aws:cloudwatch:*:*:alarm:awseb-*", "arn:aws:cloudwatch:*:*:alarm:eb-*" ] }, { "Sid": "AllowECSTagResource", "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": [ "CreateCluster", "RegisterTaskDefinition" ] } } } ] }

Sie können eine Elastic-Beanstalk-Umgebung mit einem der folgenden Ansätze erstellen. In jedem Abschnitt wird beschrieben, wie der Ansatz mit der Servicerolle umgeht.

Elastic-Beanstalk-Konsole

Wenn Sie eine Umgebung mit der Elastic-Beanstalk-Konsole erstellen, werden Sie von Elastic Beanstalk aufgefordert, eine Servicerolle namens aws-elasticbeanstalk-service-role zu erstellen. Wenn diese Rolle über Elastic Beanstalk erstellt wird, enthält sie eine Vertrauensrichtlinie, die Elastic Beanstalk erlaubt, die Servicerolle zu übernehmen. Die beiden verwalteten Richtlinien, die weiter oben in diesem Thema beschrieben wurden, sind ebenfalls mit der Rolle verknüpft.

Elastic Beanstalk Befehlszeilenschnittstelle (EB) CLI

Sie können eine Umgebung mit dem eb create Befehl des Elastic Beanstalk Command Line Interface (EBCLI) erstellen. Wenn Sie keine Servicerolle über die Option --service-role angeben. Elastic Beanstalk erstellt dieselbe Standard-Servicerolle aws-elasticbeanstalk-service-role. Wenn die standardmäßige Servicerolle bereits vorhanden ist, verwendet Elastic Beanstalk diese für die neue Umgebung. Wenn diese Rolle über Elastic Beanstalk erstellt wird, enthält sie eine Vertrauensrichtlinie, die Elastic Beanstalk erlaubt, die Servicerolle zu übernehmen. Die beiden verwalteten Richtlinien, die weiter oben in diesem Thema beschrieben wurden, sind ebenfalls mit der Rolle verknüpft.

Elastic Beanstalk API

Sie können mithilfe der CreateEnvironment Aktion von Elastic Beanstalk API eine Umgebung erstellen. Wenn Sie keine Servicerolle angeben, erstellt Elastic Beanstalk eine servicegebundene Überwachungsrolle. Dies ist eine einzigartige Art von Servicerolle, die von Elastic Beanstalk so vordefiniert ist, dass sie alle Berechtigungen enthält, die der Service benötigt, um andere in AWS-Services Ihrem Namen aufzurufen. Die serviceverknüpfte Rolle ist Ihrem Konto zugeordnet. Sie wird von Elastic Beanstalk einmalig erstellt und dann zum Erstellen weiterer Umgebungen wiederverwendet. Sie können sie auch verwendenIAM, um die mit dem Monitoring-Dienst verknüpfte Rolle für Ihr Konto im Voraus zu erstellen. Wenn Ihr Konto über eine mit einem Monitoring-Dienst verknüpfte Rolle verfügt, können Sie damit eine Umgebung erstellen, indem Sie entweder die Elastic Beanstalk-Konsole, die Elastic Beanstalk oder die EB API verwenden. CLI Weitere Informationen zur Verwendung von serviceverknüpften Rollen mit Elastic-Beanstalk-Umgebungen finden Sie unter Servicegebundene Rollen für Elastic Beanstalk verwenden.

Weitere Informationen zu Servicerollen finden Sie unter Rollen von Elastic Beanstalk Service verwalten.