Elastic Beanstalk 服务角色 - AWS Elastic Beanstalk

Elastic Beanstalk 服务角色

服务角色是 Elastic Beanstalk 在代表您调用其他服务时代入的 IAM 角色。例如,Elastic Beanstalk 在调用 Amazon Elastic Compute Cloud(Amazon EC2)、Elastic Load Balancing 和 Amazon EC2 Auto Scaling API 来收集信息时,将会使用一个服务角色。此信息可能包括其 AWS 资源的运行状况,以用于增强运行状况监控。Elastic Beanstalk 使用的服务角色是您在创建 Elastic Beanstalk 环境时指定的角色。

AWSElasticBeanstalkEnhancedHealth 托管式策略包含 Elastic Beanstalk 监控环境运行状况所需的所有权限:

{ "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": [ "*" ] } ] }

此策略还包括 Amazon SQS 操作,以允许 Elastic Beanstalk 监控工作线程环境的队列活动。

使用 Elastic Beanstalk 控制台创建环境时,Elastic Beanstalk 将提示您创建一个名为 aws-elasticbeanstalk-service-role 的服务角色。使用原定设置权限集和一个允许 Elastic Beanstalk 代入该服务角色的信任策略创建此角色。如果您启用托管平台更新,Elastic Beanstalk 会附加另一策略,其中包含可启用该功能的权限。

同样,假设您使用 Elastic Beanstalk Command Line Interface(EB CLI)的 eb create 命令创建环境,但未通过 --service-role 选项指定服务角色,则 Elastic Beanstalk 将创建原定设置服务角色 aws-elasticbeanstalk-service-role。如果默认服务角色已存在,Elastic Beanstalk 会将其用于新环境。

现在假设您使用 Elastic Beanstalk API 的 CreateEnvironment 操作创建了一个环境,但未指定服务角色,则 Elastic Beanstalk 会创建一个监控服务相关角色。这是独特类型的服务角色,由 Elastic Beanstalk 预定义,它具有服务代表您调用其他 AWS 服务所需的所有权限。服务相关角色与您的账户关联。Elastic Beanstalk 仅会创建此角色一次,然后在创建其他环境时重复使用此角色。您也可以使用 IAM 提前为账户创建此监控服务相关角色。如果您的账户拥有监控服务相关角色,则可以在 Elastic Beanstalk 控制台中或通过 Elastic Beanstalk API 或 EB CLI 使用该角色创建环境。有关如何将服务相关角色与 Elastic Beanstalk 环境结合使用的说明,请参阅将服务相关角色用于 Elastic Beanstalk

有关服务角色的更多信息,请参阅管理 Elastic Beanstalk 服务角色