适用于 AWS 上 Threat Defense Virtual ASA Virtual 的 Auto Scale 解决方案
以下各节介绍 Auto Scale 解决方案的组件如何对 AWS 上的 ASA virtual 发挥作用。
概述
Cisco 提供 CloudFormation 模板和脚本,用于使用多个 AWS 服务部署 ASA virtual 防火墙的自动扩展组,包括 Lambda、自动扩展组、弹性负载均衡 (ELB)、Amazon S3 存储桶、SNS 和 CloudWatch。
AWS 中的 ASA virtual Auto Scale 是完整的无服务器实现(即此功能的自动化不涉及辅助虚拟机),它可以将水平自动扩展功能加入到 AWS 环境中的 ASA virtual 实例。从版本 6.4 开始,由 管理中心 管理的 支持 Auto Scale 解决方案。
ASA virtual Auto Scale 解决方案是基于 CloudFormation 模板的部署,可提供:
-
完全自动化配置会自动应用于横向扩展 ASA virtual实例。
-
对负载均衡器和多可用性区域的支持。
-
支持启用和禁用 Auto Scale 功能。
使用三明治拓扑的 Auto Scale 使用案例
使用案例图中显示了此 ASA virtual AWS Auto Scale 解决方案的使用案例。由于 AWS 负载均衡器只允许入站发起的连接,因此只允许外部生成的流量通过 ASA virtual防火墙传入内部。
注 |
如前提条件 SSL 服务器证书 中所述,安全端口需要 SSL/TLS 证书。 |
面向互联网的负载均衡器可以是网络负载均衡器或应用程序负载均衡器。在两种情况下,所有 AWS 要求和条件均适用。如使用案例图中所示,虚线右侧是通过 ASA virtual模板部署的。左侧完全由用户定义。
注 |
应用程序发起的出站流量将不会经过 ASA virtual。 |
基于端口的流量分叉是可能的。这可通过 NAT 规则实现。例如,面向互联网的 LB DNS、端口:80 上的流量可以路由到应用程序 1;端口:88 流量可路由到应用程序 2。
使用 AWS 网关负载均衡器的 Auto Scale 使用案例
使用案例图中显示了 ASA virtual AWS 网关负载均衡器 (GWLB) Auto Scale 解决方案的使用案例。 AWS GWLB 允许入站和出站连接,因此允许内部和外部生成的流量通过思科 ASA virtual 防火墙向内部传递。
面向互联网的负载均衡器可以是 AWS 网关负载均衡器终端 (GWLBe)。GWLBe 会将流量发送到 GWLB,然后发送到 ASA virtual 进行检测。在两种情况下,所有 AWS 要求和条件均适用。如使用案例图中所示,虚线右侧是通过 ASA virtual 模板部署的 ASA virtual GWLB Autoscale 解决方案。左侧完全由用户定义。
注 |
应用程序发起的出站流量将不会经过 ASA virtual。 |
Auto Scale 解决方案的工作机制
为了内向扩展和外向扩展 ASA virtual 实例,一个称为 Auto Scale Manager 的外部实体会监控指标、命令自动扩展组添加或删除 ASA virtual 实例、并配置 ASA virtual 实例。
Auto Scale Manager 使用 AWS 无服务器架构进行实施,并且与 AWS 资源 和 ASA virtual通信。我们提供 CloudFormation 模板来自动执行 Auto Scale Manager 组件的部署。此模板还用于部署完整解决方案发挥作用所需的其他资源。
注 |
无服务器 Auto Scale 脚本只由 CloudWatch 事件调用,因此它们仅在启动实例时才会运行。 |
Auto Scale 解决方案组件
以下组件构成了 Auto Scale 解决方案。
CloudFormation 模板
CloudFormation 模板用于部署 AWS 中 Auto Scale 解决方案所需的资源。该模板包括以下各项:
-
Auto Scale 组、负载均衡器、安全组和其他各种组件。
-
模板需要用户输入来自定义部署。
注
模板在验证用户输入方面有限制,因此,用户应负责在部署期间验证输入。
Lambda 函数
Auto Scale 解决方案是在 Python 中开发的一组 Lambda 函数,可以通过生命周期钩子、SNS、CloudWatch 事件/警报事件触发。基本功能包括:
-
向实例添加/删除 Gig0/0 和 Gig 0/1 接口。
-
向负载均衡器的目标组注册 Gig0/1 接口。
-
使用 ASA 配置文件配置和部署新的 ASA virtual。
Lambda 函数以 Python 包的形式交付给客户。
生命周期钩子
-
生命周期钩子用于获取关于实例的生命周期更改通知。
-
在启动实例时,生命周期钩子用于触发 Lambda 函数,可将接口添加到 ASA virtual 实例,并将外部接口 IP 注册到目标组。
-
在终止实例时,生命周期钩子用于触发 Lambda 函数,以便从目标组取消注册 ASA virtual 实例。
Simple Notification Service (SNS)
-
来自 AWS 的 Simple Notification Service (SNS) 用于生成事件。
-
受限于 AWS 中的无服务器 Lambda 函数没有适合的编排器,因此该解决方案使用 SNS 作为一种函数链,以便基于事件来编排 Lambda 函数。