更新时间:2023-06-21 GMT+08:00
迁移原理
CDM迁移原理
用户使用CDM服务时,CDM管理系统在用户VPC中发放全托管的CDM实例。此实例仅提供控制台和Rest API访问权限,用户无法通过其他接口(如SSH)访问实例。这种方式保证了CDM用户间的隔离,避免数据泄漏,同时保证VPC内不同云服务间数据迁移时的传输安全。用户还可以使用VPN网络将本地数据中心的数据迁移到云服务,具有高度的安全性。
CDM数据迁移以抽取-写入模式进行。CDM首先从源端抽取数据然后将数据写入到目的端,数据访问操作均由CDM主动发起,对于数据源(如RDS数据源)支持SSL时,会使用SSL加密传输。迁移过程要求用户提供源端和目的端数据源的用户名和密码,这些信息将存储在CDM实例的数据库中。保护这些信息对于CDM安全至关重要。
图1 CDM迁移原理
安全边界和风险规避
如图2所示,CDM可能存在以下威胁:
- 互联网威胁:恶意用户可能通过CDM控制台攻击CDM。
- 数据中心威胁:恶意CDM管理员获取用户的数据源访问信息(用户名和密码)。
- 恶意用户威胁:恶意用户窃取其他用户的数据。
- 数据暴露公网:从公网迁移数据时暴露数据的威胁。
对于这些潜在的威胁,CDM提供以下机制来规避终端用户的风险:
- 针对互联网威胁:用户不能直接通过公网登录CDM控制台。CDM提供双层安全保障机制。
- 云控制台框架要求用户访问任何控制台页面都要进行用户认证。
- Web应用防火墙(Web Application Firewall,简称WAF)过滤所有控制台的请求内容并停止请求攻击代码/内容。
- 针对数据中心威胁:用户必须向CDM系统提供迁移源端和目的端的访问用户名和密码信息,才能完成数据迁移。避免CDM管理员获取此类信息并攻击用户的重要数据源对于CDM非常重要,CDM为此类信息提供三级保护机制。
- CDM在本地数据库中存储经过AES-256加密的密码,确保用户隔离。本地数据库使用用户Ruby运行,数据库仅侦听127.0.0.1,用户没有远程访问数据库的权限。
- 用户实例发放完毕后,CDM将虚拟机的root和Ruby用户密码更改为随机密码且不会保存在任何地方,以阻止CDM管理员访问用户实例和含有密码信息的数据库。
- CDM实例迁移以推拉模式进行,因此CDM实例在VPC上没有侦听端口,用户无法从VPC访问本地数据库或操作系统。
- 针对恶意用户的威胁:CDM对每个用户,使用单独的虚拟机来运行各自的CDM实例,用户之间的实例是完全隔离和安全的。恶意用户无法访问其他用户的实例。
- 针对数据暴露公网的威胁:CDM的抽取-写入模型下,即使CDM绑定了弹性IP,也不会开放端口到弹性IP,攻击者无法通过弹性IP来访问和攻击CDM。不过从公网迁移数据的方式下,由于用户数据源也会暴露在公网,存在被第三方攻击的威胁,推荐用户在数据源服务器上通过ACL或防火墙对源端进行防护,例如仅放通来自CDM绑定的弹性IP的访问请求。