Application Auto Scaling 的服务相关角色 - Application Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Application Auto Scaling 的服务相关角色

Application Auto Scaling 使用服务相关角色获取代表您调用其他 Amazon 服务所需的权限。服务相关角色是一种独特类型的 Amazon Identity and Access Management(IAM)角色,它与Amazon服务直接相关。服务相关角色提供了一种将权限委托给 Amazon 服务的安全方式,因为只有相关服务才能担任服务相关角色。

概览

对于与 Application Auto Scaling 集成的服务,Application Auto Scaling 将为您创建服务相关角色。每个服务都有一个服务相关角色。每个服务相关角色信任指定的服务委托人来代入该角色。有关更多信息,请参阅可以与 Application Auto Scaling 一起使用的 Amazon 服务

Application Auto Scaling 包含每个服务相关角色的所有必要权限。这些托管式权限由 Application Auto Scaling 创建和管理,它们定义每种资源类型允许的操作。有关每个角色授予的权限的详细信息,请参阅 Application Auto Scaling 的 Amazon 托管式策略

下面的部分介绍如何创建和管理 Application Auto Scaling 服务相关角色。首先配置权限以允许 IAM 实体(如用户、组或角色)创建、编辑或删除服务相关角色。

创建服务相关角色所需的权限

您的 Amazon Web Services 账户 中的任何用户初次为指定服务调用 RegisterScalableTarget 时,Application Auto Scaling 需要创建服务相关角色的权限。如果服务相关角色不存在,Application Auto Scaling 会为您账户中的目标服务创建该角色。此服务相关角色向 Application Auto Scaling 授予权限,以便它能代表您调用目标服务。

为使自动角色创建成功,用户必须具有 iam:CreateServiceLinkedRole 操作的权限。

"Action": "iam:CreateServiceLinkedRole"

下面是允许 IAM 用户或角色为 Spot 实例集创建服务相关角色的权限策略。您可以在策略的 Resource 字段中将服务相关角色指定为 ARN,并将服务相关角色的服务委托人指定为条件,如下所示。有关每种服务的 ARN,请参阅 服务相关角色 ARN 参考

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/ec2.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest", "Condition": { "StringLike": { "iam:AWSServiceName":"ec2.application-autoscaling.amazonaws.com" } } } ] }
注意

iam:AWSServiceName IAM 条件键将指定角色附加到的服务委托人,在本示例策略中指示为 ec2.application-autoscaling.amazonaws.com。不要尝试猜测服务委托人。要查看服务的服务委托人,请参阅 可以与 Application Auto Scaling 一起使用的 Amazon 服务

创建服务相关角色(自动)

无需手动创建服务相关角色。Application Auto Scaling 将在您调用 RegisterScalableTarget 时为您创建相应的服务相关角色。例如,如果您已为 Amazon ECS 服务设置弹性伸缩,则 Application Auto Scaling 会创建 AWSServiceRoleForApplicationAutoScaling_ECSService 角色。

创建服务相关角色(手动)

要创建服务相关角色,您可以使用 IAM 控制台、Amazon CLI 或 IAM API。有关更多信息,请参阅 IAM 用户指南中的创建服务相关角色

创建服务相关角色 (Amazon CLI)

使用以下 create-service-linked-role CLI 命令可创建 Application Auto Scaling 服务相关角色。在请求中,指定服务名称“前缀”。

要查找服务名称前缀,请参阅关于 可以与 Application Auto Scaling 一起使用的 Amazon 服务 部分中每个服务的服务相关角色的服务委托人的信息。服务名称和服务委托人共享相同的前缀。例如,要创建 Amazon Lambda 服务相关角色,请使用 lambda.application-autoscaling.amazonaws.com

aws iam create-service-linked-role --aws-service-name prefix.application-autoscaling.amazonaws.com

编辑服务相关角色

对于 Application Auto Scaling 创建的服务相关角色,您只能编辑其描述。有关更多信息,请参阅 IAM 用户指南中的编辑服务相关角色

删除服务相关角色

如果您不再将 Application Auto Scaling 用于支持的服务,我们建议您删除相应的服务相关角色。

只有在先删除相关 Amazon 资源后,才能删除服务相关角色。这可以防止您无意中撤销 Application Auto Scaling 对您的资源的权限。有关更多信息,请参阅有关可扩展资源的文档。例如,要删除 Amazon ECS 服务,请参阅 Amazon Elastic Container Service 开发者指南中的删除服务

您可以使用 IAM 删除服务相关角色。有关更多信息,请参阅 IAM 用户指南中的删除服务相关角色

在删除某个服务相关角色后,当您调用 RegisterScalableTarget 时,Application Auto Scaling 将重新创建该角色。

Application Auto Scaling 服务相关角色支持的区域

Application Auto Scaling 支持在该服务可用的所有 Amazon 区域中使用服务相关角色。

服务相关角色 ARN 参考

服务 ARN
AppStream 2.0 arn:aws:iam::012345678910:role/aws-service-role/appstream.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_AppStreamFleet
Aurora arn:aws:iam::012345678910:role/aws-service-role/rds.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_RDSCluster
Comprehend arn:aws:iam::012345678910:role/aws-service-role/comprehend.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ComprehendEndpoint
DynamoDB arn:aws:iam::012345678910:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable
ECS arn:aws:iam::012345678910:role/aws-service-role/ecs.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ECSService
ElastiCache arn:aws:iam::012345678910:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG
Keyspaces arn:aws:iam::012345678910:role/aws-service-role/cassandra.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_CassandraTable
Lambda arn:aws:iam::012345678910:role/aws-service-role/lambda.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_LambdaConcurrency
MSK arn:aws:iam::012345678910:role/aws-service-role/kafka.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_KafkaCluster
Neptune arn:aws:iam::012345678910:role/aws-service-role/neptune.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_NeptuneCluster
SageMaker arn:aws:iam::012345678910:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint
Spot Fleets arn:aws:iam::012345678910:role/aws-service-role/ec2.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest
自定义资源 arn:aws:iam::012345678910:role/aws-service-role/custom-resource.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_CustomResource
注意

您可以在 Amazon CloudFormation 堆栈模板中为 AWS::ApplicationAutoScaling::ScalableTarget 资源的 RoleARN 属性指定服务相关角色的 ARN,即使指定的服务相关角色尚未存在。Application Auto Scaling 将自动为您创建该角色。