Amazon EC2 Auto Scaling 的服务相关角色
Amazon EC2 Auto Scaling 使用服务相关角色来获取代表您调用其他 AWS 服务 所需的权限。服务相关角色是一种独特类型的 IAM 角色,它与 AWS 服务 直接相关。
服务相关角色提供了一种将权限委托给其他 AWS 服务 的安全方式,因为只有相关服务才能担任服务相关角色。有关更多信息,请参阅《IAM 用户指南》中的创建服务相关角色。服务相关角色还允许通过 AWS CloudTrail 查看所有 API 调用。这样便于满足监控和审核要求,因为您可以跟踪 Amazon EC2 Auto Scaling 代表您执行的所有操作。有关更多信息,请参阅 使用 AWS CloudTrail 记录 Amazon EC2 Auto Scaling API 调用。
下面的部分介绍如何创建和管理 Amazon EC2 Auto Scaling 服务相关角色。首先配置权限以允许 IAM 身份(如用户或角色)创建、编辑或删除服务相关角色。
目录
概览
有两种类型的 Amazon EC2 Auto Scaling 服务相关角色:
-
您账户的默认服务相关角色,名为 AWSServiceRoleForAutoScaling。此角色自动分配给 Auto Scaling 组,除非您指定不同的服务相关角色。
-
带有您在创建角色时指定的自定义后缀的服务相关角色,例如 AWSServiceRoleForAutoScaling_
mysuffix。
自定义后缀服务相关角色的权限与默认的服务相关角色的权限完全相同。在这两种情况下,如果某个 Auto Scaling 组仍在使用这些角色,您不能编辑也不能删除它们。唯一的区别是角色名称后缀。
您可以在编辑 AWS Key Management Service 密钥策略指定任一角色,以允许使用您的客户托管密钥对 Amazon EC2 Auto Scaling 启动的实例进行加密。但是,如果您计划对特定的客户托管密钥提供精细访问,应使用自定义后缀服务相关角色。使用自定义后缀服务相关角色可为您提供:
-
对客户托管密钥的更多控制
-
能够在 CloudTrail 日志中跟踪哪些 Auto Scaling 组进行了 API 调用
如果您创建并非所有用户都有权访问的客户托管密钥,请按照以下步骤操作,以允许使用自定义后缀服务相关角色:
-
创建具有自定义后缀的服务相关角色。有关更多信息,请参阅 创建服务相关角色(手动)。
-
向服务相关角色授予对客户托管密钥的访问权限。有关允许服务相关角色使用密钥的密钥策略的更多信息,请参阅 与加密卷结合使用时必需的 AWS KMS 密钥策略。
-
授予用户对您创建的服务相关角色的访问权限。有关创建 IAM policy 的更多信息,请参阅 控制能够传递哪些服务相关角色(使用 PassRole)。如果用户尝试指定服务相关角色而无权将该角色传递给服务,则会收到错误。
服务相关角色授予的权限
Amazon EC2 Auto Scaling 使用名为 AWSServiceRoleForAutoScaling 的服务相关角色或您的自定义后缀服务相关角色。
服务相关角色仅信任以下服务来担任该角色:
-
autoscaling.amazonaws.com
角色权限策略 AutoScalingServiceRolePolicy 允许 Amazon EC2 Auto Scaling 完成以下操作:
-
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 的别名时,从 Parameter Store 中读取参数。 -
vpc-lattice:向 VPC Lattice 注册和取消注册实例,并检查注册目标的运行状况。 -
resource-groups:获取指定资源组的成员资源的所有资源名称 (ARN)。
Amazon EC2 Auto Scaling 服务相关角色支持的区域
Amazon EC2 Auto Scaling 支持在该服务可用的所有 AWS 区域 中使用服务相关角色。
创建、编辑和删除服务相关角色
创建服务相关角色(自动)
首次创建 Auto Scaling 组时,Amazon EC2 Auto Scaling 会为您创建 AWSServiceRoleForAutoScaling 服务相关角色,除非您手动创建自定义后缀服务相关角色并在创建组时指定该角色。
您必须具备创建服务相关角色的 IAM 权限。否则,自动创建操作将失败。有关更多信息,请参阅 IAM 用户指南和本指南中的 创建服务相关角色 的服务相关角色权限。
创建服务相关角色(手动)
创建服务相关角色(控制台)
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 Roles(角色)和 Create role(创建角色)。
-
对于选择可信实体,选择 AWS 服务。
-
在选择将使用此角色的服务下,选择 EC2 Auto Scaling 和 EC2 Auto Scaling 使用案例。
-
依次选择 Next: Permissions (下一步: 权限)、Next: Tags (下一步: 标签) 和 Next: Review (下一步: 审核)。注意:您无法在创建过程中将标签附加到服务相关角色。
-
在审核页面上,将角色名称留空,以便创建名称为 AWSServiceRoleForAutoScaling 的服务相关角色,或者输入后缀以创建名称为 AWSServiceRoleForAutoScaling_
suffix的服务相关角色。 -
(可选)对于角色描述,编辑服务相关角色的描述。
-
选择创建角色。
创建服务相关角色 (AWS CLI)
使用以下 create-service-linked-rolesuffix 的适用于 Amazon EC2 Auto Scaling 的服务相关角色。
aws iam create-service-linked-role --aws-service-name autoscaling.amazonaws.com --custom-suffixsuffix
此命令的输出包含服务相关角色的 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 服务相关角色,在您创建 Auto Scaling 组但未指定其他服务相关角色时,Amazon EC2 Auto Scaling 将再次创建该角色。