Application Auto Scaling 的服务相关角色 - Application Auto Scaling

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

Application Auto Scaling 的服务相关角色

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

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

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

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

Application Auto Scaling 需要权限才能在您中的任何用户首次 AWS 账户 调用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:AWSServiceName IAM 条件键将指定角色附加到的服务委托人,在本示例策略中指示为 ec2.application-autoscaling.amazonaws.com。不要尝试猜测服务委托人。要查看服务的服务委托人,请参阅 AWS 可以与 Application Auto Scaling 一起使用的服务

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

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

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

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

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

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

要查找服务名称前缀,请参阅关于 AWS 可以与 Application Auto Scaling 一起使用的服务 部分中每个服务的服务相关角色的服务委托人的信息。服务名称和服务委托人共享相同的前缀。例如,要创建 AWS 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 用于支持的服务,我们建议您删除相应的服务相关角色。

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

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

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

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

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

服务相关角色 ARN 参考

下表列出了每个 AWS 服务 与 Application Auto Scaling 配合使用的服务相关角色的亚马逊资源名称 (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
注意

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