

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

# 监控服务相关角色
监控角色

Amazon Elastic Beanstalk 使用 Amazon Identity and Access Management (IAM) [服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种与 Elastic Beanstalk 直接关联的独特类型的 IAM 角色。服务相关角色由 Elastic Beanstalk 预定义，包括该服务代表您调用其他服务所需的所有权限。 Amazon 

您可以使用服务相关角色轻松设置 Elastic Beanstalk，因为您不必手动添加所需的权限。Elastic Beanstalk 定义了其服务相关角色的权限，除非另外定义，否则只有 Elastic Beanstalk 可以代入该角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这将保护您的 Elastic Beanstalk 资源，因为您无法无意中删除对资源的访问权限。

有关支持服务相关角色的其他服务的信息，请参阅[使用 IAM 的Amazon 服务](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并查找 **Service-Linked Role**（服务相关角色）列中显示为 **Yes**（是）的服务。选择 **Yes**（是）和链接，查看该服务的服务相关角色文档。

## Elastic Beanstalk 的服务相关角色权限


Elastic Beanstalk 使用名为的服务相关角色 **AWSServiceRoleForElasticBeanstalk**——允许 Elastic Beanstalk 监控运行环境的运行状况并发布运行状况事件通知。

 AWSServiceRoleForElasticBeanstalk 服务相关角色信任以下服务来代入该角色：
+ `elasticbeanstalk.amazonaws.com`

 AWSServiceRoleForElasticBeanstalk 服务相关角色的权限策略包含 Elastic Beanstalk 代表您完成操作所需的所有权限：

### AllowCloudformationReadOperationsOnElasticBeanstalkStacks


------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudformationReadOperationsOnElasticBeanstalkStacks",
            "Effect": "Allow",
            "Action": [
                "cloudformation:DescribeStackResource",
                "cloudformation:DescribeStackResources",
                "cloudformation:DescribeStacks"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stack/awseb-*",
                "arn:aws:cloudformation:*:*:stack/eb-*"
            ]
        },
        {
            "Sid": "AllowOperations",
            "Effect": "Allow",
            "Action": [
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribeAutoScalingInstances",
                "autoscaling:DescribeNotificationConfigurations",
                "autoscaling:DescribeScalingActivities",
                "autoscaling:PutNotificationConfiguration",
                "ec2:DescribeInstanceStatus",
                "ec2:AssociateAddress",
                "ec2:DescribeAddresses",
                "ec2:DescribeInstances",
                "ec2:DescribeSecurityGroups",
                "elasticloadbalancing:DescribeInstanceHealth",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:DescribeTargetHealth",
                "elasticloadbalancing:DescribeTargetGroups",
                "sqs:GetQueueAttributes",
                "sqs:GetQueueUrl",
                "sns:Publish"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅《IAM 用户指南》**中的[服务关联角色权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

或者，您可以使用 Amazon 托管策略[提供对 Elastic Beanstalk 的完全访问权限](AWSHowTo.iam.managed-policies.md)。

## 为 Elastic Beanstalk 创建服务相关角色


您无需手动创建服务关联角色。当您使用 Elastic Beanstalk API 创建 Elastic Beanstalk 环境但未指定服务角色时，Elastic Beanstalk 会为您创建服务相关角色。

**重要**  
 如果您在 2017 年 9 月 27 日开始 AWSServiceRoleForElasticBeanstalk 支持服务相关角色之前使用过 Elastic Beanstalk 服务，而您的账户需要该服务，那么 Elastic Beanstalk 会在您的账户中创建该角色。 AWSService RoleForElasticBeanstalk 要了解更多信息，请参阅[我的 IAM 帐户中出现新角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

当 Elastic Beanstalk 在 AWSServiceRoleForElasticBeanstalk 创建环境时尝试为您的账户创建服务相关角色时，您必须拥有该权限。`iam:CreateServiceLinkedRole`如果您没有此权限，环境创建将失败，您会看到说明问题的消息。

作为替代方案，也可以让具有创建服务相关角色权限的另一用户使用 IAM 预先创建服务相关角色。这样，即使您没有 `iam:CreateServiceLinkedRole` 权限，也可以创建环境。

您（或其他用户）可以使用 IAM 控制台，通过 **Elastic Beanstalk** 使用案例创建服务相关角色。在 IAM CLI 或 IAM API 中，用 `elasticbeanstalk.amazonaws.com` 服务名称创建一个服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您删除了此服务相关角色，可以使用同样的过程再次创建角色。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您使用 Elastic Beanstalk API 创建 Elastic Beanstalk 环境但未指定服务角色时，Elastic Beanstalk 会再次为您创建服务相关角色。

## 为 Elastic Beanstalk 编辑服务相关角色


Elastic Beanstalk 不允许你编辑服务相关角色。 AWSService RoleForElasticBeanstalk 创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参见《IAM 用户指南》**中的[编辑服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 Elastic Beanstalk 的服务相关角色


如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，必须先清除服务相关角色的资源，然后才能手动删除它。

### 清除服务相关角色


您必须首先确保所有 Elastic Beanstalk 环境使用的是不同服务角色或已终止，然后才能使用 IAM 删除服务相关角色。

**注意**  
在您尝试终止环境时，如果 Elastic Beanstalk 服务在使用服务相关角色，终止操作可能会失败。如果发生这种情况，请等待几分钟后重试。

**终止使用（控制台）的 Elastic Beanstalk 环境 AWSService RoleForElasticBeanstalk**

1. 打开 [Elastic Beanstalk](https://console.amazonaws.cn/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 Amazon Web Services 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 选择 **Actions**（操作），然后选择 **Terminate environment**（终止环境）。

1. 使用屏幕上的对话框确认环境终止。

有关使用 EB CLI 终止 Elastic Beanstalk 环境的详细信息，请参阅[**eb terminate**](eb3-terminate.md)。

有关[TerminateEnvironment](https://docs.amazonaws.cn/elasticbeanstalk/latest/api/API_TerminateEnvironment.html)使用 API 终止 Elastic Beanstalk 环境的详细信息，请参阅。

### 手动删除服务相关角色


使用 IAM 控制台、IAM CLI 或 IAM API 删除 AWSServiceRoleForElasticBeanstalk 服务相关角色。有关更多信息，请参阅《IAM 用户指南》**的[删除服务相关角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## Elastic Beanstalk 服务相关角色支持的区域


Elastic Beanstalk 支持在服务可用的所有区域中使用服务相关角色。有关更多信息，请参阅 [Amazon Elastic Beanstalk 终端节点和配额](https://docs.amazonaws.cn/general/latest/gr/elasticbeanstalk.html)。