AWS - Elastic Beanstalk Enum
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
亚马逊 Elastic Beanstalk 提供了一个简化的平台,用于 部署、管理和扩展 Web 应用程序和服务。它支持多种编程语言和框架,如 Java、.NET、PHP、Node.js、Python、Ruby 和 Go,以及 Docker 容器。该服务与广泛使用的服务器兼容,包括 Apache、Nginx、Passenger 和 IIS。
Elastic Beanstalk 提供了一种简单灵活的方式来 将您的应用程序部署到 AWS 云,无需担心底层基础设施。它 自动 处理容量 配置、负载 均衡、扩展 和应用程序健康 监控 的细节,让您专注于编写和部署代码。
Elastic Beanstalk 创建的基础设施由 EC2 中的 自动扩展 组管理(带有负载均衡器)。这意味着,如果您 攻陷主机,您应该了解 EC2:
此外,如果使用 Docker,可以使用 ECS。
在 AWS Elastic Beanstalk 中,“应用程序”和“环境”的概念服务于不同的目的,并在部署过程中具有不同的角色。
Elastic Beanstalk 中的应用程序是一个 逻辑容器,用于存放您的应用程序源代码、环境和配置。它将不同版本的应用程序代码组合在一起,并允许您将其作为一个实体进行管理。
创建应用程序时,您提供一个名称和 描述,但此阶段不会配置任何资源。这只是组织和管理代码及相关资源的一种方式。
您可以在一个应用程序中拥有 多个应用程序版本。每个版本对应于代码的特定发布,可以部署到一个或多个环境中。
环境是一个 在 AWS 基础设施上运行的应用程序实例。它是 您的应用程序代码被部署和执行的地方。Elastic Beanstalk 根据环境配置配置必要的资源(例如,EC2 实例、负载均衡器、自动扩展组、数据库)。
每个环境运行您应用程序的单个版本,您可以为不同的目的(如开发、测试、预发布和生产)拥有多个环境。
创建环境时,您选择一个平台(例如,Java、.NET、Node.js 等)和环境类型(例如,Web 服务器或工作者)。您还可以自定义环境配置,以控制基础设施和应用程序设置的各个方面。
Web 服务器环境:旨在 托管和提供 Web 应用程序和 API。这些应用程序通常处理传入的 HTTP/HTTPS 请求。Web 服务器环境配置资源,如 EC2 实例、负载均衡器和自动扩展 组,以处理传入流量、管理容量并确保应用程序的高可用性。
工作者环境:旨在处理 后台任务,这些任务通常是耗时或资源密集型的操作,不需要立即响应客户端。工作者环境配置资源,如 EC2 实例和自动扩展组,但它 没有负载均衡器,因为它不直接处理 HTTP/HTTPS 请求。相反,它从 Amazon Simple Queue Service (SQS) 队列 中消费任务,该队列充当工作者环境与其处理的任务之间的缓冲区。
在 Beanstalk 中创建应用时,有 3 个非常重要的安全选项可供选择:
EC2 密钥对:这将是能够访问运行应用的 EC2 实例的 SSH 密钥。
IAM 实例配置文件:这是实例将拥有的 实例配置文件(IAM 权限)。
自动生成的角色称为 aws-elasticbeanstalk-ec2-role
,并对所有 ECS、所有 SQS、DynamoDB elasticbeanstalk 和 elasticbeanstalk S3 拥有一些有趣的访问权限,使用 AWS 管理的策略:AWSElasticBeanstalkWebTier、AWSElasticBeanstalkMulticontainerDocker、AWSElasticBeanstalkWorkerTier。
服务角色:这是 AWS 服务 将用于执行所有所需操作的 角色。据我所知,普通 AWS 用户无法访问该角色。
AWS 生成的角色称为 aws-elasticbeanstalk-service-role
,并使用 AWS 管理的策略 AWSElasticBeanstalkEnhancedHealth 和 AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
默认情况下 元数据版本 1 被禁用:
Beanstalk 数据存储在名为 elasticbeanstalk-<region>-<acc-id>
的 S3 存储桶 中(如果是在 AWS 控制台中创建的)。在此存储桶中,您将找到上传的 应用程序源代码。
创建的网页的 URL 是 http://<webapp-name>-env.<random>.<region>.elasticbeanstalk.com/
如果您获得了 读取访问权限,您可以 读取源代码,甚至找到 敏感凭据。
如果您获得了 写入访问权限,您可以 修改源代码 以 攻陷 应用程序下次执行时使用的 IAM 角色。
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)