亚马逊AWS官方博客

基于rclone构建Cross Border Data Transfer服务

什么是Cross Border Data Transfer

Cross Border Data Transfer即跨境数据传输,通常指把数据从一个国家或地区传输到另外一个国家或者地区,例如从欧盟到中国;在目前这种复杂的多云环境下,跨境数据传输也涉及把数据从一个云平台传输到另外一个云平台,例如从Microsoft Azure到Amazon Web Service。例如把数据跨境从欧盟传输到中国,被传输的数据要满足欧盟的GDPR即《一般数据保护条例》,或者《通用数据保护条例》;如果把数据从中国传输到欧盟,被传输的数据要满足中国的《中华人民共和国数据安全法》。

 

跨境数据传输的监管实践

在进行跨境数据传输时企业应当首先遵行数据采集、使用所在国或者区域的相关隐私数据保护监管法律法规。为了满足监管的需求,企业在进行数据传输时应当设立统一的账户或者缓存区域(俗称企业的数据海关)对外提供已经伪名化(PII,这是欧美国家地区的统称)或者脱敏的数据,然后再进行数据传输。为满足监管需求,禁止数据直径从加工方直接传输出境。设立统一的账户或者缓存区域有助于集中留存被传输的数据,集中采集数据传输的痕迹。在实践中,应遵循如下的设计以进行数据传输。

按照被传输数据所在区域或者国家的相关数据监管法律法规,在Data consumer账号内对被传输的数据进行必要的留存并设置正确的生命周期管理策略,在Data consumer账号内对数据传输的过程进行必要的服务、日志进行留存。

绝对禁止如下图所示的跨境数据传输:

 

跨境数据传输的技术实现

跨境数据传输会涉及到跨真实国境及跨多云的实际挑战,选择一个可以进行多云数据复制的工具会简化跨境数据传输的开发工作量。rclone是一款遵循MIT授权的开源工具,它基于go语言开发,是一个开箱即用的工具,配置简单,支持目前主流的云平台,Amazon,GCP,Azure,Ali,OCI,hdfs,sftp等,在实践过程中,从eu-west-1到cn-northwest-1的数据传输速度可达70MB/s。rclone支持S3 Bucket加密,以及bucket-owner-full-control,以及跨账号数据传输等实用功能。

Rclone的配置文件存储在~/.config/rclone/rclone.conf内。除SFTP/FTP的密码为加密存储,主流云平台的Access Key/Secret Key均为明文存储,这在实际部署中带来一定的安全隐患;单独部署在Compute内,会将各个Remote System的信息集中存储,对于复杂的跨境传输任务也带来数据泄漏的风险。

基于Amazon SecretsManager,Eventbridge和ECS进行容器化的改造,可以显著提高跨境数据传输的安全性,同时能简化各个数据传输任务的管理。

首先,将跨境数据传输的敏感信息,Access key/Secret key/SFTP password/SFTP private key存储在Amazon SecretsManager内,所有的敏感信息在运行时由ECS task从Amazon SecretsManger内读取。

其次,ECS task的所有过程日志均保存在Amazon Cloudwatch loggroup内以备审查。

基于rclone,已经开发了Ali2S3,Azure2S3, S32S3,sftp2S3等模块。具体地址如下:

具体的部署架构及使用指南,见Readme.md。

 

本篇作者

杨帅军

资深数据架构师,专注于数据处理。目前主要为车企提供数据治理服务。