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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Application Auto Scaling 的服务相关角色

Application Auto Scaling 使用服务相关角色来获得代表您调用其他 Amazon 服务所需的权限。服务相关角色是一种独特的 Amazon Identity and Access Management (IAM) 角色,直接链接到 Amazon 服务。服务相关角色提供了一种向服务委派权限的安全方式, Amazon 因为只有关联的服务才能担任服务相关角色。

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

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

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

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

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

"Action": "iam:CreateServiceLinkedRole"

以下是一个基于身份的策略,该策略授予为竞价型实例集创建服务相关角色的权限。如图所示,您可以将策略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:AWSServiceNameIAM条件键指定角色所关联的服务主体,在本示例策略中将其表示为ec2.application-autoscaling.amazonaws.com。不要尝试猜测服务委托人。要查看服务的服务委托人,请参阅 Amazon Web Services 服务 可以与 Application Auto Scaling 一起使用

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

您无需手动创建服务相关角色。Application Auto Scaling 将在您调用 RegisterScalableTarget 时为您创建相应的服务相关角色。例如,如果您为亚马逊ECS服务设置了自动扩展,Application Auto Scaling 会创建该AWSServiceRoleForApplicationAutoScaling_ECSService角色。

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

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

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

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

要查找服务名称前缀,请参阅关于 Amazon Web Services 服务 可以与 Application Auto Scaling 一起使用 部分中每个服务的服务相关角色的服务委托人的信息。服务名称和服务委托人共享相同的前缀。例如,要创建 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 对您的资源的权限。有关更多信息,请参阅有关可扩展资源的文档。例如,要删除亚马逊ECS服务,请参阅《亚马逊弹性容器服务开发者指南》中的删除服务

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

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

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

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

服务相关角色参考 ARN

下表列出了每个与 Application Auto Scaling 配合使用的服务相关角色 Amazon Web Services 服务 的 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
WorkSpaces arn:aws:iam::012345678910:role/aws-service-role/workspaces.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_WorkSpacesPool
自定义资源 arn:aws:iam::012345678910:role/aws-service-role/custom-resource.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_CustomResource
注意

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