面向多云环境的虚拟私有云安全通信研究
2021-08-07曾理胡晓勤龚勋
曾理,胡晓勤,龚勋
(四川大学网络空间安全学院,成都 610065)
0 引言
自云计算概念提出后,云计算的发展主要经历了三个阶段,初级阶段中以虚拟化技术为基石,表现为基础设施与服务资源虚拟化,第二阶段中以软件定义服务为目标,提出了软件定义网络以及软件定义存储等技术,目前正在步入由混合异构的多种公有云形成的全面多云阶段,多云已经成为云计算发展的必经阶段[1]。
同时伴随着云计算发展的是其复杂的安全问题,在传统网络结构中,用户数据放在自己控制的数据中心,攻击者利用软件漏洞或恶意软件对某个用户进行攻击,通常只会对该用户产生影响。然而,在多云计算环境下,面临着虚拟网络边界模糊化与网络攻击集中化的风险,一旦攻击者集中攻击云端服务,将有可能会对云上大量用户造成影响,大量用户的数据面临着窃取、篡改、丢失等威胁[2]。网络攻击仅需要极小的成本就可能造成大范围的破坏与损失。
目前,为了充分发挥公有云的优势,同时又具有私有云的安全性与机密性,各大云平台都推出了虚拟私有云(Virtual Private Cloud,VPC)服务。VPC是基于公有云平台构建的私有网络空间,不同的私有网络间逻辑上完全隔离[3],由于其灵活部署与安全可靠的优势,已经成为用户上云的主要方式。为了避免被单一公有云平台锁定,用户通常会在不同云平台的虚拟私有云中构建数据中心。但由于各个云平台的相互竞争关系,都在寻求提供差异化云产品的手段,云平台底层网络虚拟化技术有所不同,造成了不同虚拟私有云网络异构问题[4]。
如今多云策略已经成为云计算的新常态,绝大多数企业都将选择多个公有云平台来提高安全合规性、容灾备份与业务连续性、跨地域性以及业务多样性等多方面的能力[5]。多云环境意味企业需要将位于不同云平台的资源进行整合,实现虚拟私有云跨云组网是云上基础设施建设的核心诉求。因此,如何保证多云环境下虚拟私有云间的安全通信,实现安全的互联互通成为了企业成功构建多云数据中心的关键问题。
本文将利用现有的虚拟专用网络(Virtual Private Network,VPN)技术,结合公有云平台网络虚拟化技术以及管理策略,研究多云环境下虚拟私有云安全通信。比较了现有的解决方案及其适用场景和优劣性,提出一种跨多个云平台实现VPC安全通信的方案,通过创建安全的网络隧道,使用户可以跨云访问资源,并提出一种多云环境下的网络通信管理架构与方法,可管理数据的跨云通信、同步与安全传输。
1 相关研究与分析
目前,针对云环境下的网络通信服务,许多公有云平台都提出了基本的解决方案,不同云平台的解决方案在服务形式、应用场景、实现方式上有所不同。
国内的云平台中,阿里云与腾讯云占据了主要份额,在其VPC的网络通信方面的解决方案大体相同。访问VPC内部资源的方式主要方式两种,一是将VPC内的云资源分配固定的公网IP或者多台资源配置NAT网关,通过公网IP实现公网间通信。二是利用负载均衡服务,基于端口提供四层和七层负载均衡功能,将访问流量均衡分发到云资源从而提供对外通信服务,支持租户从公网通过负载均衡访问VPC内资源[6]。这两种方式都只能实现公网到VPC内部的访问,破坏了VPC资源的私密性,而且在VPC内部资源数量庞大的情况下并不适用。在连接其他数据中心方面,可以通过VPN连接、专线接入和云联网三种方式。其中VPN连接通过公网加密通道连接,但只能配置连接同一云平台的其他VPC,不满足多云平台业务需求;专线接入需使用物理专线,成本昂贵且灵活性低;云联网仅可通过云平台内网连通同一平台下同一租户的VPC。
国外的云平台中,Amazon AWS为其构建的VPC提供了三种通信连接服务[7],主要方式是在租户创建的VPC中提供VPN连接服务,分别实现租户本地数据中心到VPC的连接、同一租户VPC到VPC的连接以及租户本地终端到VPC的连接。前两种属于站点到站点的VPN 连接,当租户创建这两种VPN连接时,AWS要求租户分别创建连接两端的网关资源,包括虚拟专用网关和客户网关[8]。最后一种属于端到站点的连接,基于SSL协议实现。但其VPN连接都仅限于云内部,无法直接实现跨云平台间的VPC互通,不能与其他云平台VPC建立对等连接。
在学术研究领域,对于云环境下的安全通信方向,主要集中在传统VPN技术方面,旨在提供更安全可靠、效率更高的加密隧道技术。但传统的VPN部署大部分采用集中式网关方案,在大规模网络环境中容易产生网络延迟,引起网络瓶颈,往往难以直接应用到云计算的虚拟网络环境。研究人员为此提出了云环境下的VPN部署方式与产品形态[9],聚焦动态VPN方案,提出了将网络虚拟化、软件定义网络应用到VPN服务的框架[10],但始终没有形成云环境下统一通用的VPN服务标准,在虚拟网络场景下,出现了网络统一控制困难、管理复杂、安全策略配置繁琐等问题[11]。
2 多云环境下的虚拟私有云安全通信
2.1 虚拟私有云跨云通信
在多云网络环境下,实现虚拟私有云跨云组网是云上基础设施建设的核心诉求,它保证了分布在不同地域、不同云平台中的计算资源能够实现在私有网络中的自由互访,使企业具备了部署多云资源集群的能力。在虚拟私有云之间实现网络的安全连接,能够达成信息的跨云传输与跨云资源整合。其面临的主要挑战是对跨云连接网络的安全性、稳定性、配置敏捷性需求。本文将基于VPN技术适用于多云环境来实现该目标。
本文基于VPN技术的VPC网络通信架构如图1所示。租户通常会在云平台上部署多个VPC,满足多业务需求,构建成云上数据中心。通常情况下,VPC间默认内网隔离,通过虚拟网络技术,经由中心虚拟路由与外部通信。本架构在不同的VPC内部部署安全网关节点,可选择特定VPN服务提供商实现该节点的IPSecVPN功能,内部云资源通过此节点与外部通信。采用这种自定义网关节点的方式,可以解决公有云平台未提供统一的跨云通信问题,实现与对端不同的云平台(如华为云、腾讯云、阿里云)网络互通,并不破坏VPC内部资源的私密性。安全网关节点通过使用隧道技术和加密技术建立专用数据通信通道,可以屏蔽底层的虚拟网络细节,通过身份认证及加解密的安全机制保证通信流量的机密性与完整性。跨云平台的通信流量根据匹配安全策略在安全网关节点实现加密,经过公网路由传输到目的节点后再进行解密还原为原始数据流,实现安全网络通信,有助于企业建立多云平台的云上数据中心。
图1 多云环境下VPC的网络通信架构
此架构的优势在于,实现了跨公有云平台的VPC通信,适用于多云环境,且具有统一性,弥补了现有云平台解决方案的不足,且成本可控。面对多云环境,满足了多云业务需求,可在保证VPC私密性的前提下构建多云数据中心。并且完全不影响数据中心原有的网络架构,仅针对目标网络流量进行处理,便捷添加互通网络站点。租户可以按业务需求针对不同的VPC灵活配置、按需部署安全网关节点,具有灵活性与细粒度性。
2.2 多云环境下的网络管理
多云环境随之带来的是复杂的管理问题,企业可能会发现云平台提供的管理工具难以应对各类场景。对于多云网络管理,出现了虚拟网络环境下网络管理复杂,安全策略配置繁琐,人工技术成本要求过高等问题。因此虚拟私有云的通信需要有一个统一的网络管理平台,以避免当租户拥有多个VPC并部署多台安全网关时,人为地登录到不同云平台,手动为每一台安全网关单向配置策略。基于以上情况,本文设计一种多云环境下对虚拟私有云网络通信的统一管理方案,主要提出一种跨云的安全网关管理平台。以腾讯云与阿里云为例,该方案整体架构如图2所示。
图2 多云环境下VPC网络通信管理架构
面对多云部署场景,通过该平台可建立独立自主的安全网关集群,并对这些独立的网关集群进行联合统一管理。且可以针对多个云平台实现跨云管理,避免在单个云平台内部逐一配置网络节点,同时整个过程应对租户透明,隐藏底层异构网络,自动化实现VPC连通。具有统一性、跨云性与便捷性。
从租户操作角度,只需要通过管理平台,授权管理平台对其云资源的操作。并弹性按需选择需要建互联通信的VPC,VPC可分别位于不同云端,即可自动化实现跨云的VPC通信,其实现架构如图3所示。
图3 基于统一管理平台的VPC通信架构
最终整个VPC建立通信过程对租户是无感知的,具备自动性、便利性与统一性等特点。统一管理平台的核心功能为管理VPC的连通性,向安全网关节点统一下发连接配置与安全策略。网关节点核心功能为响应保护策略,实现IPSec VPN功能,通过该架构建立安全连接隧道,实现VPC的连通,并加密跨云数据流量。
2.3 功能模块设计
2.3.1 多云网络管理平台组件
多云网络管理平台可作为一个SaaS服务,如图4所示,主要工作包括用户授权、处理连通需求、配置安全网关与处理状态消息等。为租户提供简易的自动化管理功能,管理VPC间的网络连通性。
图4 管理平台组件的主要工作流程
该组件主要负责获取云连接租户的授权、获取跨云的VPC网络信息、向安全网关下发安全策略、实现统一的跨云的网关联动配置等。结合公有云API,关键实现工作流程如下。
(1)租户通过管理平台,使用安全凭证与云平台进行身份认证。安全凭证包含SecretId及SecretKey两部分。SecretId用于标识租户身份,SecretKey用于加密签名字符串和云平台服务器端验证签名字符串的密钥。通过使用TC3-HMAC-SHA256签名方法,计算派生签名密钥,并生成签名结果,此后每次向云平台的请求都指定该签名结果。关键伪代码如下:
(2)完成身份认证后,通过认证对象调用DescribeVpcs方法发起请求,解析返回数据,通过DomainName与CidrBlock字段获取云平台内的VPC子网信息。根据租户的通信需求,处理网络通信请求,分别调用RunInstances服务支持,使用ImageId字段指定特定的IPSec VPN镜像创建安全网关节点。并与安全网关协商出IPSec隧道rest_tunnel,用于保护安全网关与管理平台交互的协议报文;
(3)根据租户的VPC信息与保护子网信息,配置安全网关节点。自动为安全网关生成能完成VPC通信的安全保护策略SP,包括IKE策略、IPSEC策略以及两端的连接信息。将SP封装成RESTful协议报文通过rest_tunnel加密推送到位于不同的云平台的安全网关。
(4)接收安全网关返回的创建状态消息statusMessage报文,处理异常状态,确保成功通信并保留VPC与子网的连通状态信息。
2.3.2 安全网关节点组件
安全网关节点位于不同云平台的VPC内部。如图5所示主要工作包含本地配置、处理安全策略、保护目标流量。由统一管理平台创建,主要实现跨云隧道建立与数据加密,实现VPC的安全互通。
图5 安全网关组件主要工作流程
该组件主要负责接收管理平台的调度,解析管理平台的安全策略、根据安全策略建立隧道与跨云数据加解密等。结合VPN技术,关键实现工作流程如下。
(1)安全网关节点创建成功时,自启动与管理平台交互的进程和VPN功能进程,等待管理平台发起隧道连接请求,建立rest_tunnel隧道。同时向云平台调用Vpc CreateRoutes接口,更改路由表。将待通信的对端VPC的子网传入DestinationCidrBlock参数,通过虚拟路由,所有跨云的流量将会经过此节点。
(2)解析管理平台发送的RESTful报文,处理安全策略SP。根据SP,自动与对端云平台的安全网关通过IKE协议协商保护子网信息和IPSec隧道,建立安全连接。SP的简要结构体如下:
(3)此后检测跨云数据流量,与SP进行匹配,根据SP确定兴趣流,通过上一阶段协商出的安全联盟SA,对兴趣流IP数据包添加封装安全载荷ESP,使用对称密码算法加密流量后通过IPSec隧道转发至对端VPC。
3 实验与分析
本文采用国内主流公有云平台腾讯云与阿里云进行实验部署,测试多云环境下跨云平台通信方案的可行性。如图6所示,两个虚拟私有云分别位于不同的云平台,且位于上海与深圳处于不同的地域,VPC内部的私有网段分别为10.10.0.0/16与172.16.0.0/16,内部普通计算资源仅存在私有内网地址,都部署在子网2内部,此时无法与外部通信。统一管理平台通过公网对云平台进行调用管理,将具有IPSecVPN功能的安全网关节点部署在了VPC子网1中,不影响原有的网络架构。并为安全网关节点分配了公网地址,通过公有云平台的NAT技术,通过Internet网络与位于另一个云平台的网关节点自动建立加密通信隧道,根据匹配安全策略此时可以实现腾讯云VPC的子网2与阿里云VPC的子网2的安全通信。
图6 腾讯云与阿里云VPC通信
实验结果如图7所示,阿里云与腾讯云成功协商SA,并身份认证成功,完成阿里云到腾讯云的加密隧道建立。最终能实现腾讯云服务器10.10.20.10到阿里云服务器172.160.20.10的相互通信,完成了跨云平台通信。
图7 实验结果
4 结语
本文研究了多云环境下虚拟私有云的安全通信,分析了现有公有云平台的解决方案与相关技术。将VPN技术适用于云环境,提出了跨云平台的VPC安全通信方案,弥补了现有公有云厂商VPC连接方案的不足。并针对多云管理问题,提出了一种多云环境下的VPC网络通信管理方法,具有一定的实际意义,有助于多个云平台之间的资源整合与管理。