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

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

Amazon EC2 Auto Scaling 的服务相关角色

Amazon EC2 Auto Scaling 使用服务相关角色来获取代表您调用其他 Amazon Web Services 所需的权限。服务相关角色是一种独特的 IAM 角色,直接链接到。 Amazon Web Service

服务相关角色提供了一种将权限委托给其他 Amazon Web Services 的安全方式,因为只有相关服务才能担任服务相关角色。有关更多信息,请参阅《 IAM 用户指南》中的使用服务相关角色。服务相关角色还允许通过 Amazon CloudTrail查看所有 API 调用。这样便于满足监控和审核要求,因为您可以跟踪 Amazon EC2 Auto Scaling 代表您执行的所有操作。有关更多信息,请参阅 使用记录 Amazon EC2 Auto Scaling API 调用 Amazon CloudTrail

下面的部分介绍如何创建和管理 Amazon EC2 Auto Scaling 服务相关角色。首先配置权限以允许 IAM 身份(如用户或角色)创建、编辑或删除服务相关角色。有关更多信息,请参阅《 IAM 用户指南》中的使用服务相关角色

概述

有两种类型的 Amazon EC2 Auto Scaling 服务相关角色:

  • 您的账户的默认服务关联角色,名为AWSServiceRoleForAutoScaling。此角色自动分配给 Auto Scaling 组,除非您指定不同的服务相关角色。

  • 具有自定义后缀的服务相关角色,该后缀由您在创建角色时指定,例如 AWSServiceRoleForAutoScaling_ mysuffix。

自定义后缀服务相关角色的权限与默认的服务相关角色的权限完全相同。在这两种情况下,如果某个 Auto Scaling 组仍在使用这些角色,您不能编辑也不能删除它们。唯一的区别是角色名称后缀。

在编辑 Amazon Key Management Service 密钥策略时,您可以指定任一角色,以允许使用您的客户托管密钥对由 Amazon EC2 Auto Scaling 启动的实例进行加密。但是,如果您计划对特定的客户托管密钥提供精细访问,应使用自定义后缀服务相关角色。使用自定义后缀服务相关角色可为您提供:

  • 对客户托管密钥的更多控制

  • 能够在您的 CloudTrail日志中跟踪哪个 Auto Scaling 群组进行了 API 调用

如果您创建并非所有用户都有权访问的客户托管密钥,请按照以下步骤操作,以允许使用自定义后缀服务相关角色:

  1. 创建具有自定义后缀的服务相关角色。有关更多信息,请参阅 创建服务相关角色(手动)

  2. 向服务相关角色授予对客户托管密钥的访问权限。有关允许服务相关角色使用密钥的密钥策略的更多信息,请参阅 使用加密卷所需的 Amazon KMS 密钥策略

  3. 授予用户对您创建的服务相关角色的访问权限。有关创建 IAM policy 的更多信息,请参阅 控制可以传递哪个服务相关角色(使用 PassRole)。如果用户尝试指定服务相关角色而无权将该角色传递给服务,则会收到错误。

服务相关角色授予的权限

Amazon EC2 Auto Scaling 使用名为的服务相关角色AWSServiceRoleForAutoScaling或您的自定义后缀服务相关角色。

服务相关角色仅信任以下服务来担任该角色:

  • autoscaling.amazonaws.com

此角色使用 AutoScalingServiceRolePolicy 策略,其中包含以下权限:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"EC2InstanceManagement", "Effect":"Allow", "Action":[ "ec2:AttachClassicLinkVpc", "ec2:CancelSpotInstanceRequests", "ec2:CreateFleet", "ec2:CreateTags", "ec2:DeleteTags", "ec2:Describe*", "ec2:DetachClassicLinkVpc", "ec2:GetInstanceTypesFromInstanceRequirements", "ec2:GetSecurityGroupsForVpc", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource":"*" }, { "Sid":"EC2InstanceProfileManagement", "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":"*", "Condition":{ "StringLike":{ "iam:PassedToService":"ec2.amazonaws.com*" } } }, { "Sid":"EC2SpotManagement", "Effect":"Allow", "Action":[ "iam:CreateServiceLinkedRole" ], "Resource":"*", "Condition":{ "StringEquals":{ "iam:AWSServiceName":"spot.amazonaws.com" } } }, { "Sid":"ELBManagement", "Effect":"Allow", "Action":[ "elasticloadbalancing:Register*", "elasticloadbalancing:Deregister*", "elasticloadbalancing:Describe*" ], "Resource":"*" }, { "Sid":"CWManagement", "Effect":"Allow", "Action":[ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:PutMetricAlarm" ], "Resource":"*" }, { "Sid":"SNSManagement", "Effect":"Allow", "Action":[ "sns:Publish" ], "Resource":"*" }, { "Sid":"EventBridgeRuleManagement", "Effect":"Allow", "Action":[ "events:PutRule", "events:PutTargets", "events:RemoveTargets", "events:DeleteRule", "events:DescribeRule" ], "Resource":"*", "Condition":{ "StringEquals":{ "events:ManagedBy":"autoscaling.amazonaws.com" } } }, { "Sid":"SystemsManagerParameterManagement", "Effect":"Allow", "Action":[ "ssm:GetParameters" ], "Resource": "*" }, { "Sid":"VpcLatticeManagement", "Effect":"Allow", "Action":[ "vpc-lattice:DeregisterTargets", "vpc-lattice:GetTargetGroup", "vpc-lattice:ListTargets", "vpc-lattice:ListTargetGroups", "vpc-lattice:RegisterTargets" ], "Resource": "*" } ] }

此角色有权执行以下所有操作:

  • ec2— 创建、描述、修改、启动/停止和终止 EC2 实例。

  • iam将 IAM 角色传递给 EC2 实例,以便在实例上运行的应用程序可以访问该角色的临时证书。

  • iam— 创建AWSServiceRoleForEC2Spot服务相关角色以允许 Amazon EC2 Auto Scaling 代表您启动竞价型实例。

  • elasticloadbalancing— 使用 Elastic Load Balancing 注册和取消注册实例,并检查已注册目标的运行状况。

  • cloudwatch— 创建、描述、修改和删除扩展策略的 CloudWatch警报,并检索用于预测性扩展的指标。

  • sns— 当实例启动或终止时,向 Amazon SNS 发布通知。

  • events— 代表您创建、描述、更新和删除 EventBridge规则。

  • ssm— 在启动模板中使用 Systems Manager 参数作为 AMI ID 的别名时,从参数存储中读取参数。

  • vpc-lattice— 使用 VPC Lattice 注册和取消注册实例,并检查已注册目标的运行状况。

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

Amazon EC2 Auto Scaling 会在您首次创建 Auto Scaling 组时为您创建AWSServiceRoleForAutoScaling服务相关角色,除非您手动创建自定义后缀服务相关角色并在创建组时指定该角色。

重要

您必须具备创建服务相关角色的 IAM 权限。否则,自动创建操作将失败。有关更多信息,请参阅 IAM 用户指南和本指南中的 创建服务相关角色服务相关角色权限

2018 年 3 月,Amazon EC2 Auto Scaling 开始支持服务相关角色。如果您在此之前创建了 Auto Scaling 群组,则 Amazon EC2 Auto Scaling 将在您的账户中创建该AWSServiceRoleForAutoScaling角色。有关更多信息,请参阅 IAM 用户指南中的我的 Amazon Web Services 账户中出现新角色

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

创建服务相关角色(控制台)
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色)和 Create role(创建角色)。

  3. 对于选择可信实体,选择 Amazon 服务

  4. 选择将使用此角色的服务下,选择 EC2 Auto ScalingEC2 Auto Scaling 使用案例。

  5. 依次选择 Next: Permissions (下一步: 权限)Next: Tags (下一步: 标签)Next: Review (下一步: 审核)。注意:您无法在创建过程中将标签附加到服务相关角色。

  6. 在 “审阅” 页面上,将角色名称留空以创建名称为服务相关角色 AWSServiceRoleForAutoScaling,或者输入后缀以创建名称AWSServiceRoleForAutoScaling为 _ 后缀的服务相关角色。

  7. (可选)对于角色描述,编辑服务相关角色的描述。

  8. 选择 创建角色

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

使用以下 create-service-linked-roleCLI 命令为 Amazon EC2 Auto Scaling 创建名为 AWSServiceRoleForAutoScaling_ 后缀的服务相关角色。

aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com --custom-suffix suffix

此命令的输出包含服务相关角色的 ARN,您可以用来向服务相关角色提供对客户托管密钥的访问权限。

{ "Role": { "RoleId": "ABCDEF0123456789ABCDEF", "CreateDate": "2018-08-30T21:59:18Z", "RoleName": "AWSServiceRoleForAutoScaling_suffix", "Arn": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_suffix", "Path": "/aws-service-role/autoscaling.amazonaws.com/", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "autoscaling.amazonaws.com" ] }, "Effect": "Allow" } ] } } }

有关更多信息,请参阅 IAM 用户指南中的创建服务相关角色

编辑服务相关角色

您不能编辑为 Amazon EC2 Auto Scaling 创建的服务相关角色。创建服务相关角色后,您将无法更改角色的名称或其权限。但是,您可以编辑角色的说明。有关更多信息,请参阅 IAM 用户指南中的编辑服务相关角色

删除服务相关角色

如果您不使用某个 Auto Scaling 组,我们建议您删除其服务相关角色。删除此角色会防止您拥有不使用或不主动监视和维护的实体。

只有在先删除相关资源后,才能删除服务相关角色。这可以防止您无意中撤销 Amazon EC2 Auto Scaling 对您的资源的权限。如果某个服务相关角色与多个 Auto Scaling 组结合使用,则必须删除使用该服务相关角色的所有 Auto Scaling 组,然后才能删除该服务相关角色。有关更多信息,请参阅 删除 Auto Scaling 基础设施

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

如果您删除AWSServiceRoleForAutoScaling服务相关角色,Amazon EC2 Auto Scaling 会在您创建 Auto Scaling 组时再次创建该角色,并且不会指定其他服务相关角色。

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

Amazon EC2 Auto Scaling 支持在所有提供服务 Amazon Web Services 区域 的地方使用服务相关角色。