管理 Elastic Beanstalk 实例配置文件 - AWS Elastic Beanstalk

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

管理 Elastic Beanstalk 实例配置文件

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

如果您的 AWS 账户没有 EC2 实例配置文件,则必须使用 IAM 服务创建一个。然后,您可以将此 EC2 实例配置文件分配到您创建的新环境。创建环境向导提供了相关的信息,以在您使用 IAM 服务过程提供指导,确保您可以创建具有所需权限的 EC2 实例配置文件。创建该实例配置文件后,您可以返回控制台以将其选中并作为 EC2 实例配置文件,然后继续执行创建环境的相关步骤。

注意

以前,Elastic Beanstalk 会在 AWS 账户首次创建环境时创建一个名为 aws-elasticbeanstalk-ec2-role 的默认 EC2 实例配置文件。该实例配置文件包含默认的托管式策略。如果您的账户已经有该实例配置文件,则可继续将其分配到您的环境。

但根据最新的 AWS 安全准则,不允许 AWS 服务自动创建具有其他 AWS 服务(在本例中为 EC2)的信任策略的角色。根据这些安全准则,Elastic Beanstalk 将不再创建默认的 aws-elasticbeanstalk-ec2-role 实例配置文件。

托管策略

Elastic Beanstalk 提供多种托管式策略,以确保您的环境能够满足不同的使用场景需求。要满足环境的默认使用场景需要,必须将这些策略附加到 EC2 实例配置文件对应的角色。

  • AWSElasticBeanstalkWebTier – 授予应用程序将日志上载到 Amazon S3 以及将调试信息上传到 AWS X-Ray 的权限。要查看托管式策略的内容,请参阅《AWS 托管式策略参考指南》中的 AWSElasticBeanstalkWebTier

  • AWSElasticBeanstalkWorkerTier – 授予日志上传、调试、指标发布和工作程序实例任务(包括队列管理、领导选择和定期任务)的权限。要查看托管式策略的内容,请参阅《AWS 托管式策略参考指南》中的 AWSElasticBeanstalkWorkerTier

  • AWSElasticBeanstalkMulticontainerDocker – 向 Amazon Elastic Container Service 授予为 Docker 环境协调集群任务的权限。要查看托管式策略的内容,请参阅《AWS 托管式策略参考指南》中的 AWSElasticBeanstalkMulticontainerDocker

重要

Elastic Beanstalk 托管式策略不提供精细权限—它们授予使用 Elastic Beanstalk 应用程序可能需要的所有权限。在某些情况下,您可能希望进一步限制我们的托管式策略的权限。有关一个使用场景的示例,请参阅 防止跨环境 Amazon S3 存储桶访问

我们的托管式策略也不涵盖对您可能添加到解决方案中且不由 Elastic Beanstalk 管理的自定义资源的权限。要实施更精细的权限、所需的最低权限或自定义资源权限,请使用自定义策略

EC2 的信任关系政策

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

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

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

创建实例配置文件

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

要创建实例配置文件
  1. 在 IAM 控制台中,打开 Roles(角色)页面

  2. 选择 Create role(创建角色)。

  3. 可信实体类型下,选择 AWS 服务

  4. Use case(使用案例)下,选择 EC2

  5. 选择下一步

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

  7. 选择下一步

  8. 输入角色的名称。

  9. (可选)将标签添加到角色。

  10. 选择 Create role(创建角色)。

验证分配给实例配置文件的权限

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

验证默认实例配置文件的权限
  1. 在 IAM 控制台中,打开 Roles(角色)页面

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

  3. Permissions(权限)选项卡中,审核附加到角色的策略列表。

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

更新过期的默认实例配置文件

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

向附加到默认实例配置文件的角色添加托管式策略
  1. 在 IAM 控制台中,打开 Roles(角色)页面

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

  3. Permissions(权限)选项卡上,选择 Attach policies(附加策略)。

  4. 键入 AWSElasticBeanstalk 以筛选策略。

  5. 选择下列策略,然后选择 Attach policy(附加策略):

    • AWSElasticBeanstalkWebTier

    • AWSElasticBeanstalkWorkerTier

    • AWSElasticBeanstalkMulticontainerDocker

向默认实例配置文件添加权限

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

向附加到默认实例配置文件的角色添加策略
  1. 在 IAM 控制台中,打开 Roles(角色)页面

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

  3. Permissions(权限)选项卡上,选择 Attach policies(附加策略)。

  4. 选择适用于应用程序使用的附加服务的托管策略。例如,AmazonS3FullAccessAmazonDynamoDBFullAccess

  5. 选择 Attach policy(附加策略)。