MaxCompute安全白皮书

法律声明

阿里云提醒您在阅读或使用本文档之前请仔细阅读、充分理解本法律声明各条款的内容。如果您阅读或使用本文档,您的阅读或使用行为将被视为对本声明全部内容的认可。

  1. 您应当通过阿里云网站或阿里云提供的其他授权通道下载、获取本文档,且仅能用于自身的合法、合规的业务活动。本文档的内容视为阿里云的保密信息,您应当严格遵守保密义务。未经阿里云事先书面同意,您不得向任何第三方披露本手册内容或提供给任何第三方使用。

  2. 未经阿里云事先书面许可,任何单位、公司或个人不得擅自摘抄、翻译、复制本文档的部分或全部内容,不得以任何方式或途径进行传播和宣传。

  3. 由于产品版本升级、调整或其他原因,本文档内容有可能变更。阿里云保留在没有任何通知或者提示的情况下对本文档的内容进行修改的权利,并保留在阿里云授权渠道中不定时发布更新后的用户文档的权利。您应当实时关注用户文档的版本变更并通过阿里云授权渠道下载、获取最新版的用户文档。

  4. 本文档仅作为用户使用阿里云产品及服务的参考性指引,阿里云以产品及服务的现状有缺陷当前功能的状态提供本文档。阿里云在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但阿里云在此明确声明对本文档内容的准确性、完整性、适用性、可靠性等不作任何明示或暗示的保证。任何单位、公司或个人因为下载、使用或信赖本文档而发生任何差错或经济损失的,阿里云不承担任何法律责任。在任何情况下,阿里云均不对任何间接性、后果性、惩戒性、偶然性、特殊性或刑罚性的损害,包括用户使用或信赖本文档而遭受的利润损失,承担责任(即使阿里云已被告知该等损失的可能性)。

  5. 阿里云网站上所有内容,包括但不限于著作、产品、图片、档案、资讯、资料、网站架构、网站画面的安排、网页设计,均由阿里云和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权、商业秘密等。非经阿里云和/或其关联公司书面同意,任何人不得擅自使用、修改、复制、公开传播、改变、散布、发行或公开发表阿里云网站、产品程序或内容。此外,未经阿里云事先书面同意,任何人不得为了任何营销、广告、促销或其他目的使用、公布或复制阿里云的名称(包括但不限于单独为或以组合形式包含阿里云Aliyun万网等阿里云和/或其关联公司品牌,上述品牌的附属标志及图案或任何类似公司名称、商号、商标、产品或服务名称、域名、图案标识、标志、标识或通过特定描述使第三方能够识别阿里云和/或其关联公司。

  6. 如若发现本文档存在任何错误,请与阿里云取得直接联系。

数据安全与合规概述

MaxCompute以数据保护三要素保密性、完整性和可用性为基础,构建全面的数据安全保护屏障,并提供完善的数据访问控制能力和安全可信的计算环境。通过集群高可用和容灾方案确保业务的连续性,系统详细记录用户操作日志和任务运行日志,供事中运维监测和事后安全审计。MaxCompute服务建立在阿里云IaaS服务之上,利用云基础设施的安全能力,同时能够与云平台相关的安全产品进行联动,如RAM访问控制、DataWorks安全中心、数据保护伞,以实现更加丰富的安全管控场景。

image

访问控制

认证

MaxCompute支持的用户身份包括阿里云账号、RAM用户、RAM角色,同时支持AccessKey和AccessKey Secret认证、多因素认证MFA(Multi-Factor Authentication)以及STS(Security Token Service)权限委托机制。

用户可以在访问控制RAM(Resource Access Management)中创建AccessKey。AccessKey由AccessKey ID和AccessKey Secret组成,其中AccessKey ID是公开的,用于标识用户身份,AccessKey Secret是秘密的,用于鉴别用户身份。当用户向MaxCompute发送请求时,首先需要将发送的请求按照MaxCompute指定的格式生成签名字符串,然后使用AccessKey Secret对签名字符串进行加密以生成请求签名。MaxCompute收到用户请求后,会根据AccessKey ID使用正确的AccessKey Secret对签名字符串生成签名,若与请求签名一致,则认为该请求有效。否则,MaxCompute将拒绝处理该请求,并返回403状态码错误。

更多详细信息,请参见用户认证

授权

MaxCompute支持精细化权限控制策略,授权方式包括:ACL(Access Control Lists)、Policy、Download、Label敏感级别、行级权限。授权对象包括项目(Project)、配额(Quota)、网络连接(Networklink)、表(Table)、函数(Function)、资源(Resource)、实例(Instance)、外部表(External Table)和External Volume。

RAM授权

MaxCompute支持通过阿里云访问控制RAM(Resource Access Management)服务授权,将云账号下MaxCompute资源的访问及管理权限授予RAM用户和RAM角色,按需为用户分配最小权限,从而降低企业的信息安全风险。更多详细信息,请参见RAM权限

ACL授权

ACL是一种基于对象的授权。通过ACL授权的权限数据(即访问控制列表,Access Control List)被看作是该对象的一种子资源,只有当对象存在时,才能进行ACL授权操作,当对象被删除时,通过ACL授权的权限数据会被自动删除。ACL授权支持的授权方法是采用类似SQL92定义的GRANT/REVOKE命令进行授权,通过对应的授权命令来完成对已存在的项目空间对象的授权或撤销授权。每次权限管理操作均是对效果(授权、撤销)、对象(如表、资源等)、主体(用户或角色)、操作(读、写、删除等)的组合描述。更多详细信息,请参见ACL权限控制

Policy授权

Policy用于定义角色权限,然后将角色绑定至用户后,用户权限即可生效。相比ACL权限控制增加黑名单方式,即可以实现(白名单)或禁止(黑名单)角色对指定对象执行指定操作,当白名单和黑名单授权信息同时存在时,遵循黑名单优先原则。更多详细信息,请参见Policy权限控制

Label敏感级别授权

Label敏感级别授权可以更加灵活通过数据敏感等级标签的控制用户对列级别敏感数据的访问。需要将数据(表或列)和访问数据的用户进行敏感级别划分,支持设置0~9级,以适配不同的数据分类分级标准。支持的安全策略如下:

  • No-ReadUp:不允许用户读取敏感等级高于用户等级的数据,除非显式授权。

  • Trusted-User:允许用户写任意等级的数据,新建数据默认为0级不保密。

更多详细信息,请参见Label权限控制

接入管理

MaxCompute提供了多种不同的Endpoint接入方式,包括公网、VPC网络和VPC专用网络。用户可以根据需要开启Endpoint进行网络隔离,每个Endpoint都支持配置IP白名单,以限制客户端的连接。

安全可信计算环境

MaxCompute提供安全计算容器和Java、Python沙箱,实现任务进程资源隔离,阻断恶意代码对集群计算任务的影响。

MaxCompute基于计算灵活性和扩展性的考虑,提供混合的计算形态。在SQL引擎中支持自定义函数(UDF),在计算引擎中支持Spark、Python等第三方计算框架。然而,这些支持会引入不可信代码,可能触发非预期的系统破坏和恶意代码攻击。MaxCompute通过轻量级的安全计算容器和语言级沙箱,将不可信代码运行在安全计算容器内部,做到进程级安全隔离。

MaxCompute针对计算任务中的内部数据同步和外部数据访问的网络通信需求提供安全保障。MaxCompute为每个计算任务在其运行的安全容器间构建overlay的虚拟网络,与主机网络形成安全隔离,确保任务中所有节点可通过私网IP进行通信,但无法访问主机网络。计算任务如需访问公网或VPC内部的数据服务API,MaxCompute支持任务级网络通过Networklink打通,用户需在作业启动时声明需要访问的网络目标并满足权限检查要求。具体操作,请参见网络开通流程

MaxCompute为用户提供的代码运行环境归属于用户,代码执行所产生的任何法律责任需由用户承担。

保护数据保密性(Confidentiality)

MaxCompute提供了针对数据的存储、计算和传输状态的数据保密措施。

数据存储层透明加密

MaxCompute集成密钥管理服务(Key Management Service,简称:KMS)和用户自带密钥(Bring Your Own Key,简称:BYOK),能够自动对存储介质中的数据文件进行加解密。应用程序无需改造即可实现数据密文存储要求,并支持利用密钥对数据表、分区的持久化数据文件进行加密或解密。加密算法支持AES256等,同时支持自动密钥轮换。如果客户主动关闭密钥服务,将导致加密数据无法解密访问,以实现数据保密性要求,满足监管合规。更多详细信息,请参见存储加密

数据内容加密

MaxCompute针对个人身份信息(PII)、财务信息、账号密码等敏感信息支持列级内容加密,应用程序可调用加密函数对敏感信息进行加密后写入和读取时解密,内容加密后可防止SQL注入、拖库等攻击造成的敏感信息泄露。MaxCompute支持与密钥管理服务(Key Management Service,简称:KMS)对接,利用包含多密钥的密钥集对数据内容加密,加密算法支持AES-GCM-256、AES-SIV-CMAC-128和AES-SIV-CMAC-256,提供更高的加密可靠性防止数据被破解。更多详细信息,请参见加密函数

数据动态脱敏

MaxCompute提供数据动态脱敏功能,用于业务开发测试、数据共享、运维等场景中对个人身份信息(PII)等敏感数据以脱敏展示的方式进行保护。脱敏策略支持掩码、散列、字符替换、数值取整、日期取整等脱敏策略,支持与数据保护伞的数据分类分级功能联动,满足用户对身份信息、银行卡号、地址、电话等数据的脱敏需求。MaxCompute数据脱敏在最靠近数据从存储中读取的环节中实现,确保数据在查询、下载、关联、UDF计算时已经处于脱敏状态,避免敏感数据泄露风险。更多详细信息,请参见数据动态脱敏

数据传输加密

MaxCompute通过本地客户端(odpscmd)、SDK、Open API等方式连接时强制要求使用HTTPS TLS v1.2加密协议,防止数据在传输过程中被明文截取和篡改。

数据生命周期管理

MaxCompute支持设置数据保留期限,系统会自动清理过期数据,减少数据泄露风险并优化存储成本。可以根据业务需求和数据使用频率设置表的生命周期(lifecycle),系统会判断每张表(分区)中的最近更新时间(LastModifiedTime)距离当前时间的时长是否超过Lifecycle的值,如果超过则进行回收操作。具体操作,请参见生命周期操作

MaxCompute也支持数据的冷热分层管理,利用低频存储和长期存储可以帮助用户限制历史数据访问频率并降低存储成本。更多详细信息,请参见存储资源-分层存储

保护数据完整性(Integrity)

MaxCompute在系统内部处理数据时提供的数据完整性保护措施。

ACID

MaxCompute为大规模数据处理作业提供原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)支持,其中Delta Table实时增量计算表采用多版本并发控制模型(MVCC)来保障读写快照隔离,采用乐观并发控制模型(OCC)进行事务并发控制。目前不支持行级别或者文件级别的事务并发控制,而是以每次批处理数据操作作为一个单独的事务来管理。对于部分高频的操作,会结合它的语义,在保障正确性的前提下,单独设计优化了事务冲突逻辑,来更好支持并发控制。MaxCompute在数据存储和传输过程中使用CRC校验码来验证数据的完整性。更多详细信息,请参见ACID语义

多副本存储

MaxCompute采用分布式文件系统,自动为存储的数据创建多个副本(默认为三副本)。这些副本会被分布在不同的物理机器和机架上,以防止单点故障导致的数据丢失,确保数据的持久性和完整性。

MaxCompute将数据存储在飞天分布式文件系统中,系统提供一个扁平的线性存储空间,并对线性地址进行切片,一个分片称为一个Chunk。每一个Chunk会复制出三个副本,并将这些副本按照一定的策略存放在集群中的不同节点上,以防止由于一个Chunk Server或一个机架的故障导致的数据不可用。用户新增、修改、删除数据的操作均会同步到三个副本中,以保障用户数据的完整性和一致性。对于用户删除数据释放的存储空间,文件系统会进行回收,禁止其他用户访问,并进行数据擦除,以确保用户已删除数据的不可还原性。

任务容错机制

MaxCompute的任务调度系统具备较高的容错能力和任务重试机制。在执行SQL作业时,系统通过构建有向无环图(DAG)为作业分配合理的计算资源节点,并优化执行过程,消除不必要的Shuffle、网络抖动,以及部分节点故障不会影响整体作业运行,从而保障结果的准确性和执行效率。

Tunnel数据传输服务在数据批量上传和下载时支持断点续传、配置容错行数、缓冲区等参数,确保数据处理的完整性。

备份恢复

MaxCompute数据表的备份与恢复功能默认开启,有效避免因误操作造成的数据丢失。系统会在数据的每次修改、删除、删表时自动备份数据的历史版本,历史版本最长保留30天,用户可以通过数据版本号快速恢复数据。

Delta Table表支持Time travel回溯查询,用户可查询过去7天任意时刻的数据快照,同时支持查询历史某个时间区间或者版本区间的数据增量。

更多详细信息,请参见备份与恢复

保护数据可用性(Availability)

用户在使用数据时,MaxCompute提供数据可用性的安全保护措施。

数据共享

MaxCompute提供Package授权机制,用于跨项目数据共享场景。该机制可以将项目的数据资源及相应权限打包为Package,第三方项目安装此Package后即可跨项目访问本项目授权的数据资源。使用Package授权机制之后,A项目空间管理员可以对B项目空间需要使用的对象进行打包授权,即创建Package,然后许可B项目空间安装这个Package。在B项目空间管理员安装Package之后,即可自行管理Package是否需要进一步授权给自己项目空间下的用户。更多详细信息,请参见基于Package跨项目访问资源

数据流通限制

MaxCompute为数据只进不出的场景提供了项目级数据保护机制(ProjectProtection)。例如:具有多个项目空间访问权限的用户,可以自由地利用支持跨项目的数据访问操作,来在不同项目空间之间转移数据。如果某个项目空间中的数据非常敏感,不允许流出到其他项目空间中,此时管理员可以使用项目空间保护机制ProjectProtection。该机制明确要求项目空间中的数据只能本地循环,允许写入,但不能读出。更多详细信息,请参见数据保护机制

灾难恢复(Disaster Recovery)

MaxCompute支持通过同城容灾和跨地域灾备方式,为客户提供容灾能力。

同城容灾

MaxCompute同城容灾采用将数据存储服务和计算服务扩展到同城3个可用区(Availability Zone)的方式,以提升客户业务的抗风险能力。同城容灾主要适用于金融、关键基础设施等行业,可以确保业务系统不会因单一数据中心故障而停止服务。同城容灾技术能够提供数据冗余备份,从而降低业务停机时间,满足行业合规要求,以提供更优质的上层应用客户体验。

MaxCompute同城容灾功能支持将客户项目级数据的可用性从单个可用区扩展到同城的3个可用区。同城3个可用区之间实现了物理隔离,但网络连接低延迟,可以提供跨数据中心的故障隔离和数据实时同步能力,以保障灾难发生时数据的完整性和可用性。

跨地域灾备

MaxCompute跨地域灾备会选择与当前地域地理距离1000公里以上的地域作为数据灾难备份集群,以为客户的项目级数据建立完整的异地备份,保护数据免受地域性自然灾害影响。更多详细信息,请参见跨地域灾备

监测与审计

MaxCompute为数据授权、数据使用等行为提供了事中监测和事后审计的能力。

审计日志

MaxCompute提供详细的操作审计日志,包括作业(Instance)、表(Table)、用户(User)、角色(Role)和授权(Privilege)相关的操作行为。该日志可以满足日志留存的合规要求,同时也能够满足实时监测和回溯分析等安全管理需求。

MaxCompute完整记录用户触发的各项操作行为。用户可以在日志审计中查看和检索用户行为日志,并可以将日志长期保存在SLS日志服务项目或指定的OSS Bucket中。更多详细信息,请参见审计日志

元数据分析Information Schema

MaxCompute提供了项目元数据及作业运行历史的信息查询功能,并在ANSI SQL-92的Information Schema基础上进行扩展,支持用户实时分析和定期导出用户信息、角色信息、表分区授权信息、近14天的历史作业记录、批量上传下载任务记录,用于安全审计。更多详细信息,请参见Information Schema