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

管理 Elastic Beanstalk 实例配置文件

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

如果您的 AWS 账户没有 EC2 实例配置文件,则必须使用 IAM 服务创建一个。然后,您可以将此 EC2 实例配置文件分配到您创建的新环境。Elastic Beanstalk 控制台中的创建环境步骤为您提供访问 IAM 控制台的权限,以便您可以创建具有必要权限的 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 指定为信任关系策略中的可信实体,如下所示。

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

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

创建实例配置文件

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

使用默认托管策略创建实例配置文件
  1. 在 IAM 控制台中,打开 Roles(角色)页面

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

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

  4. 对于服务或使用案例,请选择 Elastic Beanstalk

  5. 对于使用案例,选择 Elastic Beanstalk – 计算

  6. 选择下一步

  7. 输入角色名称

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

  8. 确认权限策略包括以下内容,然后选择下一步

    • AWSElasticBeanstalkWebTier

    • AWSElasticBeanstalkWorkerTier

    • AWSElasticBeanstalkMulticontainerDocker

  9. 选择创建角色

创建具有您所选特定托管策略的实例配置文件
  1. 在 IAM 控制台中,打开 Roles(角色)页面

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

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

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

  5. 选择下一步

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

  7. 选择下一步

  8. 输入角色的名称。

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

  10. 选择创建角色

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

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

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

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

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

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

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

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

分配给您的默认实例配置文件的权限不是固定的,具体取决于其创建时间、您上次启动环境的时间和您使用的客户端。您可以在 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