亚马逊AWS官方博客

AWS Network Firewall — VPC 中的新托管防火墙服务

我们的客户希望拥有高可用性、可扩展的防火墙服务来保护其云中的虚拟网络。安全性是 AWS 的首要任务,AWS 在 AWS 上提供各种防火墙功能来满足特定安全需求,例如用于保护 Amazon Elastic Compute Cloud (EC2) 实例的安全组、用于保护 Amazon Virtual Private Cloud (VPC) 子网的网络 ACL、用于保护 Amazon CloudFront 上运行的 Web 应用程序的 AWS Web Application Firewall (WAF)、 Application Load Balancer (ALB) 或 Amazon API Gateway 以及用于防范分布式拒绝服务 (DDoS) 攻击的 AWS Shield

我们听说,无论使用哪种 AWS 服务,客户都希望采用更简单的方法来扩展工作负载中所有资源的网络安全性。他们还希望采用自定义保护措施来确保其独特工作负载的安全性,或遵守政府规定或商业法规。这些客户需要能够对出站流进行 URL 过滤、对 IP/Port/协议之外的数据包数据进行模式匹配以及针对 HTTP/S 以外协议的特定漏洞发出警报。

今天,我很高兴地宣布推出 AWS Network Firewall,一项面向您的虚拟私有云 (VPC) 的高可用性托管网络防火墙服务。它使您能够轻松部署和管理状态检查、入侵防护和检测以及 Web 筛选,以保护 AWS 上的虚拟网络。Network Firewall 可随流量自动扩展,确保高可用性,使客户无需对安全基础设施进行额外投资。

借助 AWS Network Firewall,您可以实施自定义规则,以防止 VPC 访问未经授权的域,拦截数千个已知恶意的 IP 地址,或使用基于签名的检测识别恶意活动。AWS Network Firewall 通过 CloudWatch 指标实时显示防火墙活动,并通过将日志发送到 S3CloudWatchKinesis Firehose 来提高网络流量的可见性。Network Firewall 与 AWS Firewall Manager 集成,使用 AWS Organizations 的客户可以在单一位置启用和监控所有 VPC 和 AWS 账户的防火墙活动。Network Firewall 可与您现有的安全生态系统互操作,包括 CrowdStrike、Palo Alto Networks 和 Splunk 等 AWS 合作伙伴。您还可以从社区维护的 Suricata 规则集中导入现有规则。

Network Firewall 的概念
AWS Network Firewall 运行无状态和有状态的流量检查规则引擎。引擎使用您在防火墙策略中配置的规则和其他设置。

您在 VPC 中基于每个可用区使用防火墙。对于每个可用区,您可以选择一个子网来托管筛选流量的防火墙终端节点。可用区中的防火墙终端节点可以保护区域内的所有子网,但其所在的子网除外。

您可以使用以下中心组件管理 AWS 网络防火墙。

  • 防火墙 — 防火墙将要保护的 VPC 与防火墙策略中定义的保护行为相连。对于要保护的每个可用区,您可以为网络防火墙提供专用于防火墙终端节点的公有子网。要使用防火墙,您需要更新 VPC 路由表,以通过防火墙终端节点发送传入和传出流量。
  • 防火墙策略 — 防火墙策略定义防火墙在一系列无状态和有状态规则组和其他设置中的防火墙行为。您只能将每个防火墙与一个防火墙策略相关联,但可以将防火墙策略用于多个防火墙。
  • 规则组 — 规则组是定义如何检查和处理网络流量的无状态或有状态规则的集合。规则配置包括 5 元组和域名筛选。您还可以使用 Suricata 开源规则规范提供有状态规则。

AWS 网络防火墙 — 入门
您可以在 AWS 管理控制台AWS 命令行界面 (CLI) 和用于创建和管理防火墙的 AWS 软件开发工具包中启动 AWS 网络防火墙。在 VPC console(VPC 控制台)的导航窗格中,展开 AWS Network Firewall,然后选择在 Firewalls(防火墙)菜单中Create firewall(创建防火墙)。

要创建新的防火墙,请输入要用于识别此防火墙的名称,然后从下拉菜单中选择您的 VPC。对于要使用 AWS 网络防火墙的每个可用区 (AZ),为防火墙终端节点创建一个公有子网。此子网必须至少有一个可用 IP 地址和非零容量。保留这些防火墙子网供网络防火墙使用。

对于关联的防火墙策略,选择创建并关联空防火墙策略,然后选择Create firewall(创建防火墙)。

您的新防火墙将在 Firewalls(防火墙)页面中列出。防火墙具有空的防火墙策略。在下一步中,您将在策略中指定防火墙行为。在“防火墙策略”菜单中选择新创建的防火墙策略。

您可以创建或添加新的无状态或有状态规则组 — 零个或多个防火墙规则集合,使用优先级设置定义策略内的处理顺序,而无状态默认操作则定义 Network Firewall 如何处理与任何无状态规则组不匹配的数据包。

对于无状态默认操作,防火墙策略允许您为完整数据包和数据包区段指定不同的默认设置。操作选项与您在防火墙策略的无状态规则组中使用的无状态规则的操作选项相同。

您需要指定以下选项之一:

  • 允许 — 停止对数据包的所有检查,并允许其到达预定目的地。
  • 丢弃 — 停止对数据包的所有检查,并阻止其进入预期目的地。
  • 转发到有状态规则组 — 停止对数据包进行无状态检查,然后将其转发到有状态规则引擎进行检查。

此外,您可以选择指定要应用的命名自定义操作。对于此操作,网络防火墙会发送一个名为 CustomAction 的 CloudWatch 指标维度,其值由您指定。定义命名的自定义操作后,可以在定义该操作的同一上下文中按名称使用该操作。您可以在规则组中的规则中重复使用自定义操作设置,也可以在防火墙策略的两个默认无状态自定义操作设置之间重复使用自定义操作设置。

定义防火墙策略后,您可以通过更新 VPC 路由表包含防火墙,将防火墙插入 VPC 流量流。

如何设置规则组
您可以在 Network Firewall 规则组菜单中创建新的无状态或有状态规则组,然后选择Create rule group(创建规则组)。如果选择有状态规则组,则可以选择以下三个选项之一:1) 5 元组格式,指定源 IP、源端口、目标 IP、目标端口和协议,并指定匹配流量的操作;2) 域列表,指定域名列表和对尝试访问其中一个域的流量采取的操作;3) Suricata 兼容 IPS 规则,使用 Suricata 规则语法提供高级防火墙规则。

Network Firewall 支持用于网络流量检查的标准无状态“5 元组”规则规范,优先级编号表示规则组内无状态规则的处理顺序。

同样,有状态的 5 元组规则具有以下匹配设置。这些指定了网络防火墙状态规则引擎在数据包中查找的内容。数据包必须满足所有匹配设置才能匹配。

有域名的规则组具有以下匹配设置:域名、指定要匹配域名的字符串列表以及流量方向(要检查的流量流向)。以下 JSON 显示了域名规则组的规则定义示例。

{
  "RulesSource": {
    "RulesSourceList": {
      "TargetType": "FQDN_SNI","HTTP_HOST",
      "Targets": [
        "test.example.com",
        "test2.example.com"
      ],
      "GeneratedRulesType": "DENYLIST"
    }
  } 
}

含 Suricata 兼容 IPS 规则的有状态规则组具有 Suricata 兼容规范中定义的所有设置。例如,以下所示旨在检测 SSH 协议异常。有关 Suricata 的信息,请参阅 Suricata 网站

alert tcp any any -> any 22 (msg:"ALERT TCP port 22 but not SSH"; app-layer-protocol:!ssh; sid:2271009; rev:1;)

您可以使用 CloudWatch 监控网络防火墙,后者收集原始数据并将其处理为可读、接近实时的指标,以及 AWS CloudTrail(一项按用户、角色或 AWS 服务提供对 AWS 网络防火墙的 API 调用记录的服务)。CloudTrail 将网络防火墙的所有 API 调用作为事件捕获。要详细了解日志记录和监控,请参阅文档

网络防火墙合作伙伴
此次发布,网络防火墙与 一系列 AWS 合作伙伴集成。他们为我们提供了大量有帮助的反馈。以下是他们为分享其经验而撰写的部分博客文章(我将在有新文章发布时更新本文及链接)

现已推出
AWS Network Firewall 现已在美国东部(弗吉尼亚北部)美国西部(俄勒冈)欧洲(爱尔兰)区域推出。通过产品页面定价文档也可以了解更多信息。请试一试,并通过您的常用 AWS Support 联系人或者 Amazon VPC 的 AWS 论坛向我们发送反馈。

了解有关 AWS Network Firewall 的所有详细信息,并立即开始使用新功能。

Channy