对于一个多层的应用来说,应用的前端更多的部署在公有云上,数据库部署在私有云的环境中,云上和云下网络的互通采用了 site to site VPN 技术或者 AWS 的 Direct Connect 以及 Azure 的 Express Route。在这种情况下,暴露了巨大的攻击面,云上的安全威胁也会泛洪到云下的环境,所以需要在这种多云的环境下对云上和云下的工作负载进行安全防护。

从上图可以看出,云上的攻击者向云下发起了攻击。为了避免这种攻击的发生,可以在云下对工作负载进行安全策略的部署,同时在云上通过安全组实现云上的安全策略的部署。通过这种方式虽然可以进行安全策略部署,但是运维起来非常的复杂:第一,私有云、公有云的安全策略独立规划,独立的部署,不同的管理界面,而且每朵云都有各自的管理方式,形成了架构孤岛;第二,在多云的应用场景中,由于采用不同的云基础设施,需要花费大量的时间学习这些云基础设施安全策略的特点,非常高的学习成本,同时也增加了管理成本。这是目前安全运维面临两大主要挑战。
众所周知,VMware NSX-T Data Center 提供了在私有云环境下的网络和安全。它在几年前就开始提供在私有云环境下微分段能力,实现了 L4-L7 的安全防护能力,安全策略可以应用到虚拟机的虚拟网卡级别,并且在私有云环境下通过一个管理界面提供了网络安全策略的部署,同时通过虚拟机名称或虚拟机标记等虚拟机属性创建动态的安全组,简化了安全策略的部署以及梳理工作,也不关心应用是跑在虚拟机、容器还是物理机的环境。
然而在多云的时代,NSX-T Data Center 也扩展到了原生的公有云,比如 AWS 和 Azure,在这种多云的环境中,我们称为 NSX Cloud。NSX Cloud 提供了一种新的多云网络安全的管理模式,为在原生公有云中运行的工作负载跨多个公有云提供一致的网络和安全策略。
与 NSX-T Data Center 一起,我们可以获得应用到所有工作负载的网络服务和安全策略的统一视图,无论是像今天私有云中运行的虚拟机,还是运行在 AWS 和 Azure 上的工作负载。

接下来将为大家介绍一下 NSX Cloud 的特点及使用场景,后续也会给大家介绍 NSX Cloud 组件及实现方式。
第一,NSX Cloud 使用与 NSX-T Data Center 一样的管理和控制平台。
因此在多云的环境中,只需要部署一套安全解决方案就可以管理从私有云到公有云的安全策略,安全策略只需要定义一次,就可以应用到任何位置的工作负载,包括云端、Region、AZ等。安全策略将根据应用属性和用户定义的标记以动态方式应用于每个工作负载。如下图所示:

第二,在公有云上可以对现有的计算实例实施微段安全策略,提供 L4-L7 的状态化分布式防火墙。
在云上有多个 VPC 或 VNET 的情况下,只须在一个 VPC 或 VNET 中部署冗余的 Public Cloud Gateway(简称PCG)就可以实现整个云上的微分段安全策略,其它 VPC 或 VNET 可以共享 PCG,同时不改变云上的网络架构,支持代理模式和无代理模式,如下所示:

第三,提供端到端运维的可见性。
可能通过 IPFIX、traceflow 和 syslog 获取流和数据包的信息,同时提供了在多云环境下的网络拓扑,如下图所示:

我们可以通过 NSX Cloud 实现在多云环境下的安全策略的管理,那么它的架构是什么样的,具体在实际的生产环境中如何部署呢?
接下来,我们先来看一下 NSX Cloud 架构,如下图所示:

Cloud Service Manager(CSM)
提供了私有云和公有云 VPC/VNET 以及实例的视图以及安全策略的统一视图,同时通过 CSM 在 VPC或 VNET 中部署 PCG设备(是一个虚拟机),提供 PCG 生命周期的管理,CSM 属于控制平面的组件。
NSX Manager
提供了私有云和公有云网络和安全策略部署的统一视图,所有的策略配置都在 NSX Manager 中提供,并下发的实例运行的地方。
Public Cloud Gateway(PCG)
它是公有云中的 NSX 本地控制平面,它是由 CSM 部署,它在 VPC/VNET 中执行资源清单的发现,也包括云中的标记的发现,以 active-standby 方式部署在云端。
NSX Tools
属于数据平面的组件,通过它执行分布式防火墙的策略,相当于实例中的代理,PCG 做为控制平面,将 NSX Manager 中配置的安全策略下发的 NSX Tools 执行安全策略。另外,也支持无代理的方式,即不需要在计算实例中安装任何代理,PCG 通过 API 调用原生公有云安全组实现安全策略。
接下来让我们再来看一下 NSX Cloud 在生产环境的网络拓扑以及最佳实践。如下图所示:

要通过 NSX Cloud 交付云上云下一致的网络安全策略,需要提前做一些准备工作。
- 客户数据中心与 AWS/Azure 通过 site to site VPN 或DirectConnect/ExpressRoute 实现云上和云下的互通,以路由方式互通即可。
- 部署 PCG 的 VPC/VNET(称为 Transit VPC/Transit VNET)创建三个 subnets,分别用于 PCG 的管理、上联和下联网络,并且要求PCG 的管理 subnet 能够访问 internet,可以通过代理或 NAT 网关实现。
- 云上的 VPC/VNET 之间需要 Peering,或者使用 TGW/VGW 实现hub-spoken 的架构。
- 通过 VMware 提供的脚本创建 AWS/Azure 的帐号权限。
以上四个条件具备了之后,这时我们就可以部署 NSX Cloud 了。
部署步骤如下:
1、如果已经在数据中心部署了 NSX-T Data Center,并实现了在数据中心内部的微分段,这时我们就直接在数据中心内部部署 CSM。部署 CSM使用的 OVA 与 NSX-T Manager Appliance 是一样的,在部署过程中选择部署 CSM 即可。如果没有部署 NSX-T Data Center,先部署 NSX-T Data Center,完成部署 CSM 后,在 CSM 的页面中加入 NSX-T Data Center 的帐号,然后在加入 AWS 和 Azure 的帐号同步云上的资源清单,如下图所示 :

点击 instances 或 VPC/VNET,可以查看到云上的详细信息。

2、在 AWS/Azure 的 Transit VPC/VNET 中部署 PCG,部署 PCG 的时候,选择 PCG 所使用的 subnet。

PCG 部署成功后,如下图所示:

3、如果采用代理方式,需要在实例中安装 NSX tools,如下图所示:

4、在实例中安装 NSX tools 后,这个实例成为了 NSX managed 的实例,这时我们就可以在 NSX 的界面中发现这个实例以及实例上的标记,在 NSX 可以针对标记创建动态安全组来实现微分段的策略。
5、如果其它 VPC/VNET 中的实例也需要一致的安全策略,这时需要将其它的计算 VPC/VNET 链接到 Transit VPC/VNET 来共享 PCG,然后在计算 VPC/VNET 中的实例中安装 NSX tools。如下图所示:

总结
在应用迁移到了公有云的进程中,如果客户数据中心已经使用了 NSX 的微分段来实施安全策略,那么我们就可以通过 NSX Cloud 将私有云、原生公有云上的工作负载统一实施安全策略,不需要对私有云以及公有云的网络架构进行修改,就可以实现私有云和公有云一致的安全策略交付,简化了安全的运维工作,同时提供了安全的可视性。