CloudFront Virtual Private Cloud (VPC) Origins:隐藏 Web 应用源站,防止公网访问带来的风险

Olawale Olaleye
难度
100 - 初级
时间
10 分钟
前提条件

海外区域: 注册 / 登录 亚马逊云科技

上次更新时间
2024 年 11 月 20 日
相关产品

借助 CloudFront Virtual Private Cloud (VPC) Origins,用户可以使用 CloudFront 分发托管在 VPC 私有子网中的应用程序内容。使用 VPC Origins,用户可以仅通过 CloudFront Distribution 就能限制应用访问,让应用程序无需暴露在公共网络中。此项功能旨在防止终端用户直接发现或绕过 CloudFront 访问 Web 应用程序源站。使用 VPC Origins,就能从互联网上隐藏应用的源服务器,进而减少攻击面并增强整体安全态势。并且,CloudFront 的全球规模部署和高性能也会让用户持续受益。

使用 CloudFront 的 AWS 用户可以通过 AWS WAF 和 AWS Shield Advanced 等服务保护自己的应用程序免遭 DoS 攻击和其他威胁的侵扰。如果应用程序的源文件存储在 Amazon S3 存储桶,可依靠 Origin Access Control (OAC),即源访问控制,在私有子网内保障应用程序源站的安全。但是,对于基于 VPC 的应用程序源站,通常需要将源站暴露在公共子网中,并通过访问控制列表 (ACL) 等控制措施来有效限制访问。你需要持续投入精力来实施和维护这些解决方案,这会导致大量重复的繁重工作。

现在,AWS 用户可以在任何 AWS 商用区域构建和管理应用程序,通过配置 CloudFront VPC Origins 组并将 CloudFront 配置为应用程序的唯一入口点,确保定向到应用程序的请求必须经过 CloudFront。借助 CloudFront VPC Origins,你可以将应用程序托管在私有 VPC 中而无需直接路由至互联网,并确保 CloudFront 是应用程序的唯一入口点。使用 CloudFront 的 AWS 用户还可以借助覆盖全球的 AWS Backbone 网络实现流量加速。将应用程序源站设置为 CloudFront VPC Origin 之后,CloudFront 流量会全程通过高吞吐量的 AWS Backbone 网络抵达你部署在 AWS 上的应用程序源站,从而提高应用程序性能和降低延迟。

快速入门

用户可以在 CloudFront 控制台中创建 VPC Origin,也可通过调用 CloudFront API 创建。VPC Origin 创建成功后,可以与新建的或已有的 CloudFront Distribution 无缝集成。这样,应用用户就会通过 VPC Origin 获取请求的内容。与基于公共网络的传统源站访问相比,这种方式可以提升性能和可用性。

迁移到 CloudFront VPC Origins 组

为了测试是否按预期从 VPC Origin 分发应用内容,并迁移已有的部署在公共子网的应用程序,我使用 AWS Fargate for Amazon ECS 和面向互联网的公网应用负载均衡器 (ALB) 启动了一个 nginx Web 服务。

图 1:设置公网应用负载均衡器

启动 ALB 之后,我创建了一个 CloudFront Distribution(分发),以确认是否能访问到 nginx Web 服务的索引页,如下图所示。

图 2:部署集成 nginx 服务器的 CloudFront 应用程序

现在,我已经有了一个 CloudFront Distribution,接下来就该创建 VPC Origin,然后更新已有的 CloudFront Distribution 配置,切换为使用新建的 VPC Origin,从而让公网 ALB 变为私网 ALB。

1. 为部署在公共子网中的已有的应用程序创建 VPC Origin。
A. 打开 CloudFront 控制台,从左侧导航栏中选择 VPC Origins,如下图所示。

图 3:在 CloudFront 控制台中选择 VPC Origins

2. 使用 CloudFront 的持续部署管道来创建一个 Staging Distribution(测试分发)。
A. 选择之前创建的 ALB 来创建 VPC Origin,如下图所示。

图 4:在 CloudFront 控制台中创建 VPC Origin

图 5:VPC Origins

B. 现在,我们已经创建并部署了 VPC Origin,接下来可以使用该 VPC Origin 在 CloudFront Distribution 中创建一个应用源。
C. 先使用测试 Distribution 完成这一操作。测试顺利完成后,才能安全地切换为新创建的 VPC Origin。
D. 创建测试 Distribution,并选择步骤 1 中创建的 VPC Origin 创建新应用源。

图 6:使用 VPC Origin 创建测试 Distribution

E. 更新 Behavior 配置,将原指向已有应用源的 Behavior 更改为指向新的 VPC Origin,如下图所示。

图 7:将应用源更新为新的 VPC Origin

3. 使用测试 Distribution 测试新建的 VPC Origin。
A. 确认 VPC Origin 按预期运行。
B. 这有助于确保 VPC 配置准确无误。

4. 将测试 Distribution 的配置应用到主 Distribution 上。
A. 确认 VPC Origin 能够在预发测试环境中正常运行后,可以将 Distribution 配置应用到生产 Distribution 上。
B. 禁止通过公网访问你的应用程序源站

这样一来,用户就无法从公共互联网直接访问到你的应用程序源站,但 CloudFront 仍可通过 VPC Origin 实现私网访问。

在前面部分中,我们演示了如何将已有的 CloudFront Distribution 配置切换到 VPC Origin,以增强应用程序的安全态势。这种方法不仅可以增强当前应用程序的安全性,还能使用 VPC Origins 创建的私有源,从而实现安全的内容分发。

请注意,使用的 CloudFront Distribution 和 CloudFront VPC Origin 必须隶属于同一个 AWS 账户。

总结

CloudFront VPC Origins 提供了一种便捷而可靠的方式来有效限制应用程序的公网访问并减少应用程序的攻击面。CloudFront VPC Origins 基于 CloudFront 的安全基础构建,确保 CloudFront 是应用程序的唯一入口点,可防止应用用户绕过 CloudFront 直接访问你的应用源站。这样可以大大减少应用程序的攻击面。在运维方面,与其他方法相比,VPC Origins 所需的维护工作量微乎其微。对于希望改善应用程序安全性、提供高性能全球体验并简化运维的企业来说,CloudFront VPC Origins 解决方案应该颇具吸引力。该功能可以提升你的数字资产安全保护能力,同时还能助力企业实现业务增长。有关更多信息,请参阅 Amazon CloudFront VPC Origins 文档

更多教程

快速搭建容量高达 35GB 的免费个人网盘

本教程将介绍如何搭建一个没有使用限制的免费私人网盘。

构建企业专属智能客服机器人

本文将演示如何结合多种服务,打造企业专属的智能客服。

使用生成式 AI 构建多语言问答知识库

使用多种服务,构建可汇总搜索结果的多语言知识库。

查看全部教程 >>

免费套餐

AWS 海外区域

拓展海外业务或个人体验
免费使用 100 余种云产品或服务, 长达 12 个月

AWS 中国区域

发展中国业务
免费使用 40 余种核心云服务产品,长达 12 个月