

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

# 管理 Elastic Beanstalk 实例配置文件
<a name="iam-instanceprofile"></a>

实例配置文件是 AWS Identity and Access Management (IAM) 角色的容器，您可以使用该容器在实例启动时将角色信息传递给 Amazon EC2 实例。

如果您的 AWS 账户没有 EC2 实例配置文件，则必须使用 IAM 服务创建一个。然后，您可以将此 EC2 实例配置文件分配到您创建的新环境。Elastic Beanstalk 控制台中的**创建环境**步骤为您提供访问 IAM 控制台的权限，以便您可以创建具有必要权限的 EC2 实例配置文件。

**注意**  
以前，Elastic Beanstalk 创建了一个默认 EC2 实例`aws-elasticbeanstalk-ec2-role`配置文件，该配置文件名为账户首次创建环境 AWS 时命名。该实例配置文件包含默认的托管式策略。如果您的账户已经有该实例配置文件，则可继续将其分配到您的环境。  
但是，最近的 AWS 安全准则不允许 AWS 服务自动创建具有对其他 AWS 服务（在本例中为 EC2）的信任策略的角色。根据这些安全准则，Elastic Beanstalk 将不再创建默认的 `aws-elasticbeanstalk-ec2-role` 实例配置文件。



**托管策略**  
Elastic Beanstalk 提供多种托管式策略，以确保您的环境能够满足不同的使用场景需求。要满足环境的默认使用场景需要，必须将这些策略附加到 EC2 实例配置文件对应的角色。
+ **AWSElasticBeanstalkWebTier**— 授予应用程序将日志上传到 Amazon S3 并将调试信息上传到的权限 AWS X-Ray。要查看托管策略的内容，请参阅[AWSElasticBeanstalkWebTier](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSElasticBeanstalkWebTier.html)《*AWS 托管策略参考指南》*。
+ **AWSElasticBeanstalkWorkerTier**— 授予日志上传、调试、指标发布和工作器实例任务（包括队列管理、领导者选举和定期任务）的权限。要查看托管策略的内容，请参阅[AWSElasticBeanstalkWorkerTier](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSElasticBeanstalkWorkerTier.html)《*AWS 托管策略参考指南》*。
+ **AWSElasticBeanstalkMulticontainerDocker**— 向 Amazon 弹性容器服务授予权限，以协调 Docker 环境的集群任务。要查看托管策略的内容，请参阅[AWSElasticBeanstalkMulticontainerDocker](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSElasticBeanstalkMulticontainerDocker.html)《*AWS 托管策略参考指南》*。



**重要**  
Elastic Beanstalk 托管式策略不提供精细权限—它们授予使用 Elastic Beanstalk 应用程序可能需要的所有权限。在某些情况下，您可能希望进一步限制我们的托管式策略的权限。有关一个使用场景的示例，请参阅 [防止跨环境 Amazon S3 存储桶访问](AWSHowTo.iam.cross-env-s3-access.md)。  
我们的托管式策略也不涵盖对您可能添加到解决方案中且不由 Elastic Beanstalk 管理的自定义资源的权限。要实施更精细的权限、所需的最低权限或自定义资源权限，请使用[自定义策略](AWSHowTo.iam.managed-policies.md#AWSHowTo.iam.policies)。

**EC2 的信任关系政策**  
要允许环境中的 EC2 实例代入所需的角色，实例配置文件必须将 Amazon EC2 指定为信任关系策略中的可信实体，如下所示。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

要自定义权限，您可以向附加到默认实例配置文件的角色添加策略，或者创建具有一组受限权限的实例配置文件。

要使用 [AI 支持的环境分析](health-ai-analysis.md)功能，请在您的实例配置文件中添加`bedrock:InvokeModel``bedrock:ListFoundationModels``elasticbeanstalk:DescribeEvents`、、和`elasticbeanstalk:DescribeEnvironmentHealth`权限。这些权限允许 Elastic Beanstalk 使用 Amazon Bedrock 并访问用于分析日志、事件和实例运行状况的环境数据。

**Topics**
+ [创建实例配置文件](#iam-instanceprofile-create)
+ [向默认实例配置文件添加权限](#iam-instanceprofile-addperms)
+ [验证分配给实例配置文件的权限](#iam-instanceprofile-verify)
+ [更新 out-of-date默认实例配置文件](#iam-instanceprofile-update)

## 创建实例配置文件
<a name="iam-instanceprofile-create"></a>

实例配置文件是一个面向标准 IAM 角色的包装程序，它允许 EC2 实例代入该角色。您可以使用默认 Elastic Beanstalk 托管策略创建实例配置文件。您也可以创建其他实例配置文件来为不同的应用程序自定义权限。或者，如果您不使用工作线程层或 ECS 托管式 Docker 环境，则可以创建不包含向这些功能授予权限的两个托管策略的实例配置文件。

**使用默认托管策略创建实例配置文件**

1. 在 IAM 控制台中，打开 [**Roles**（角色）页面](https://console.aws.amazon.com/iam/home#roles)。

1. 请选择 **Create role**（创建角色）。

1. 在**可信实体类型**中选择 **AWS 服务**。

1. 对于**服务或使用案例**，请选择 **Elastic Beanstalk**。

1. 对于**使用案例**，选择 **Elastic Beanstalk – 计算**。

1. 选择**下一步**。

1. 输入**角色名称**。

   您可以输入 Elastic Beanstalk 控制台建议的默认角色的名称：`aws-elasticbeanstalk-ec2-role`。

1. 确认**权限策略**包括以下内容，然后选择**下一步**：
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`

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

**创建具有您所选特定托管策略的实例配置文件**

1. 在 IAM 控制台中，打开 [**Roles**（角色）页面](https://console.aws.amazon.com/iam/home#roles)。

1. 请选择 **Create role**（创建角色）。

1. 在**可信实体类型**下，选择 **AWS 服务**。

1. 在 **Use case**（使用案例）下，选择 **EC2**。

1. 选择**下一步**。

1. 附加由 Elastic Beanstalk 提供的适当托管式策略以及提供应用程序所需的权限的任何其他策略。

1. 选择**下一步**。

1. 输入角色的名称。

1. （可选）将标签添加到角色。

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

## 向默认实例配置文件添加权限
<a name="iam-instanceprofile-addperms"></a>

如果您的应用程序访问了 AWS APIs 默认实例配置文件中未授予权限的资源，请在 IAM 控制台中添加授予权限的策略。

**向附加到默认实例配置文件的角色添加策略**

1. 在 IAM 控制台中，打开 [Roles（角色）页面](https://console.aws.amazon.com/iam/home#roles)。

1. 选择分配为 EC2 实例配置文件的角色。

1. 在 **Permissions**（权限）选项卡上，选择 **Attach policies**（附加策略）。

1. 选择适用于应用程序使用的附加服务的托管策略。例如，`AmazonS3FullAccess` 或 `AmazonDynamoDBFullAccess`。

1. 选择 **Attach policy**（附加策略）。

## 验证分配给实例配置文件的权限
<a name="iam-instanceprofile-verify"></a>

分配给您的默认实例配置文件的权限不是固定的，具体取决于其创建时间、您上次启动环境的时间和您使用的客户端。您可以在 IAM 控制台中验证默认实例配置文件的权限。

**验证默认实例配置文件的权限**

1. 在 IAM 控制台中，打开 [**Roles**（角色）页面](https://console.aws.amazon.com/iam/home#roles)。

1. 选择分配为 EC2 实例配置文件的角色。

1. 在 **Permissions**（权限）选项卡中，审核附加到角色的策略列表。

1. 要查看策略授予的权限，请选择相应的策略。

## 更新 out-of-date默认实例配置文件
<a name="iam-instanceprofile-update"></a>

如果默认实例配置文件缺少所需的权限，您可以手动将托管式策略附加到分配为 EC2 实例配置文件的角色。

**向附加到默认实例配置文件的角色添加托管式策略**

1. 在 IAM 控制台中，打开 [**Roles**（角色）页面](https://console.aws.amazon.com/iam/home#roles)。

1. 选择分配为 EC2 实例配置文件的角色。

1. 在 **Permissions**（权限）选项卡上，选择 **Attach policies**（附加策略）。

1. 键入 **AWSElasticBeanstalk** 以筛选策略。

1. 选择下列策略，然后选择 **Attach policy**（附加策略）：
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`