

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

# Amazon EC2 Auto Scaling 的服务相关角色
<a name="autoscaling-service-linked-role"></a>

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

服务相关角色提供了一种将权限委托给其他 Amazon Web Services 服务 的安全方式，因为只有相关服务才能担任服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。服务相关角色还允许通过 Amazon CloudTrail查看所有 API 调用。这样便于满足监控和审核要求，因为您可以跟踪 Amazon EC2 Auto Scaling 代表您执行的所有操作。有关更多信息，请参阅 [使用记录亚马逊 EC2 Auto Scaling API 调用 Amazon CloudTrail](logging-using-cloudtrail.md)。

下面的部分介绍如何创建和管理 Amazon EC2 Auto Scaling 服务相关角色。首先配置权限以允许 IAM 身份（如用户或角色）创建、编辑或删除服务相关角色。

**Contents**
+ [概述](#autoscaling-service-linked-role-overview)
+ [服务相关角色授予的权限](#service-linked-role-permissions)
+ [Amazon EC2 Auto Scaling 服务相关角色支持的区域](#slr-regions)
+ [创建、编辑和删除服务相关角色](#create-edit-delete-service-linked-role)
  + [创建服务相关角色（自动）](#create-service-linked-role)
  + [创建服务相关角色（手动）](#create-service-linked-role-manual)
  + [编辑服务相关角色](#edit-service-linked-role)
  + [删除服务相关角色](#delete-service-linked-role)

## 概述
<a name="autoscaling-service-linked-role-overview"></a>

有两种类型的 Amazon EC2 Auto Scaling 服务相关角色：
+ 您账户的默认服务相关角色，名为 AWSServiceRoleForAutoScaling。此角色自动分配给 Auto Scaling 组，除非您指定不同的服务相关角色。
+ 带有您在创建角色时指定的自定义后缀的服务相关角色，例如 AWSServiceRoleForAutoScaling\_{{mysuffix}}。

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

在编辑 Amazon Key Management Service 密钥策略时，您可以指定任一角色，以允许使用您的客户托管密钥对由 Amazon EC2 Auto Scaling 启动的实例进行加密。但是，如果您计划对特定的客户托管密钥提供精细访问，应使用自定义后缀服务相关角色。使用自定义后缀服务相关角色可为您提供：
+ 对客户托管密钥的更多控制
+ 能够在您的 CloudTrail日志中跟踪哪个 Auto Scaling 群组进行了 API 调用

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

1. 创建具有自定义后缀的服务相关角色。有关更多信息，请参阅 [创建服务相关角色（手动）](#create-service-linked-role-manual)。

1. 向服务相关角色授予对客户托管密钥的访问权限。有关允许服务相关角色使用密钥的密钥策略的更多信息，请参阅 [使用加密卷所需的 Amazon KMS 密钥策略](key-policy-requirements-EBS-encryption.md)。

1. 授予用户对您创建的服务相关角色的访问权限。有关创建 IAM policy 的更多信息，请参阅 [控制可以传递哪个服务相关角色（使用 PassRole）](security_iam_id-based-policy-examples.md#policy-example-pass-role)。如果用户尝试指定服务相关角色而无权将该角色传递给服务，则会收到错误。

## 服务相关角色授予的权限
<a name="service-linked-role-permissions"></a>

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

服务相关角色仅信任以下服务来担任该角色：
+ `autoscaling.amazonaws.com`

角色权限策略 [https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AutoScalingServiceRolePolicy.html](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AutoScalingServiceRolePolicy.html) 允许 Amazon EC2 Auto Scaling 完成以下操作：
+ `ec2`：创建、描述、修改、启动/停止和终止 EC2 实例。
+ `iam`：[将 IAM 角色传递给](us-iam-role.md) EC2 实例，以便在实例上运行的应用程序可以访问该角色的临时凭证。
+ `iam`— 创建**AWSServiceRoleForEC2竞价**服务相关角色以允许 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`— 获取属于指定资源组的资源的所有资源名称 (ARNs)。

## Amazon EC2 Auto Scaling 服务相关角色支持的区域
<a name="slr-regions"></a>

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

## 创建、编辑和删除服务相关角色
<a name="create-edit-delete-service-linked-role"></a>

### 创建服务相关角色（自动）
<a name="create-service-linked-role"></a>

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

您必须具备创建服务相关角色的 IAM 权限。否则，自动创建操作将失败。有关更多信息，请参阅 *IAM 用户指南*和本指南中的 [创建服务相关角色](security_iam_id-based-policy-examples.md#ec2-auto-scaling-slr-permissions) 的[服务相关角色权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create-service-linked-role.html#service-linked-role-permissions)。

### 创建服务相关角色（手动）
<a name="create-service-linked-role-manual"></a>

**创建服务相关角色（控制台）**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择 **Roles**（角色）和 **Create role**（创建角色）。

1. 对于**选择可信实体**，选择 **Amazon 服务**。

1. 在**选择将使用此角色的服务**下，选择 **EC2 Auto Scaling** 和 **EC2 Auto Scaling** 使用案例。

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

1. **在 “**审阅**” 页面上，将**角色名称**留空以创建名称为的服务相关角色 **AWSServiceRoleForAutoScaling**，或者输入后缀以创建名为 \_ 的服务相关角色。AWSServiceRoleForAutoScaling {{suffix}}**

1. （可选）对于**角色描述**，编辑服务相关角色的描述。

1. 选择**创建角色**。

**创建服务相关角色 (Amazon CLI)**  
使用以下 [create-service-linked-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-service-linked-role.html)CLI 命令为 Amazon EC2 Auto Scaling 创建名为 **AWSServiceRoleForAutoScaling\_ {{suffix}}** 的服务相关角色。

```
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 用户指南》**中的[创建服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。

### 编辑服务相关角色
<a name="edit-service-linked-role"></a>

您不能编辑为 Amazon EC2 Auto Scaling 创建的服务相关角色。创建服务相关角色后，您将无法更改角色的名称或其权限。但是，您可以编辑角色的说明。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务相关角色描述](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_update-service-linked-role.html#edit-service-linked-role-iam-console)。

### 删除服务相关角色
<a name="delete-service-linked-role"></a>

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

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

您可以使用 IAM 删除服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr)。

如果删除 AWSServiceRoleForAutoScaling 服务相关角色，在您创建 Auto Scaling 组但未指定其他服务相关角色时，Amazon EC2 Auto Scaling 将再次创建该角色。