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 服务角色。