数据安全
Hologres通过了独立的第三方审计师针对阿里云对AICPA可信服务标准中关于安全性、可用性和机密性原则描述的审计,审计报告请参见SOC 3报告。
通过了PCI DSS认证,PCI-DSS是目前全球最严格且级别最高的金融数据安全标准。通过PCI DSS安全认证,表明企业满足在支付系统安全防护及信息安全领域的能力要求,可为企业客户提供安全、可靠的系统解决方案和能力。认证报告请参见PCI DSS认证报告。
存储加密
Hologres支持通过密钥管理服务KMS(Key Management Service)对数据进行加密存储,提供数据静态保护能力。
KMS简介
KMS是阿里云针对云上数据加密需求精心设计的密码应用服务,为您的应用提供符合国密要求的密钥服务及极简应用加解密服务,提供高安全的密钥管理服务专属版,您可以将密钥存储到自己独享的云密码机集群中,详情请参见密钥管理服务介绍。
KMS提供了经国家密码管理局检测和认证的硬件密码设备,取得了GM/T 0028 第二级认证。
KMS仅提供基于TLS(Transport Layer Security)的安全访问通道,并且仅使用安全的传输加密算法套件,符合PCI DSS安全规范。
密钥的产生基于密码机中安全、高系统熵值为种子的随机数生成算法,从而保护密钥不被攻击者恢复。
密钥通过硬件安全机制来保护,密钥明文只在密码机的内部用于密码运算,不会离开密码机硬件的安全边界。
可通过ActionTrail服务全面审计密钥的使用,确认密钥被正确使用。无论是云产品使用密钥,还是用户应用使用密钥,您都可以审计调用KMS接口使用密钥的情况。
Hologres支持的能力
考虑到数仓中存储的高价值数据往往具有更高的密级要求,Hologres仅支持可见可控的半托管加密(BYOK)。BYOK是业界普遍认可的一项更高级的安全技术,是指通过安全的方式,将用户线下生成的密钥导入到云上的KMS托管的HSM中,并且保障HSM不能导出此密钥,而用户可以随时删掉云上的密钥,保留下一次导入同一个密钥的能力。详细配置方式请参见数据存储加密。
Hologres借助KMS的密钥管理和安全部提供的加密库能力,提供基于AES256、AES128、RC4以及国密SM4等算法的存储加密。
Hologres支持为每张表设置单独的加密规则,即对于不同的表设置不同的KMS密钥进行加密。
在数据读写时,Hologres会调用KMS的API获取相关的密钥信息,密钥信息系统默认会缓存24小时。在使用数据加密功能时会产生相关的KMS费用,KMS相关计费说明请参见KMS计费说明。
开启加密存储后,由于涉及加密和解密操作,会影响查询和写入性能,大约有20%~40%的性能损耗,具体情况根据查询特征有不同程度的影响。
传输加密
为了提高实时数仓Hologres的链路安全性,您可以启用SSL在传输层对网络连接进行加密,提升通信数据的安全性和完整性,但会同时增加网络连接响应时间。使用说明请参见传输加密。
SSL(Secure Sockets Layer)指安全套接字协议,是为了安全通信、数据安全性专门设计的安全协议。阿里云SSL证书,是经Webtrust认证的知名CA(Certificate Authority) 机构颁发给网站的可信凭证,具有网站身份验证和加密传输双重功能。HTTP协议无法加密数据,数据传输可能产生泄露、篡改或钓鱼攻击等问题,SSL证书部署到Web服务器后,可帮助您的Web服务器和网站间建立可信的HTTPS协议加密连接,为您的网站安全加锁,保障数据安全传输,同时满足对应App市场或应用生态的安全合规要求。详情请参见什么是SSL证书。
数据脱敏
Hologres提供数据脱敏功能,支持按照列级别设置脱敏,并且支持对于指定用户设置脱敏策略。启用该功能后,若查询的数据涉及敏感信息,则在展示结果中,该部分数据会被脱敏展示,提高了对敏感及私密数据的保护。现在支持多种脱敏规则,例如IP地址脱敏、邮箱地址脱敏、Hash脱敏等,详细配置方式请参见数据脱敏。
系统安全
账号
Hologres产品需要使用阿里云账号进行购买和使用。注册阿里云账号,进行实名认证后才可以购买Hologres服务,创建密钥AccessKey后才可以访问产品。
Hologres支持RAM鉴权。RAM(Resource Access Management)是阿里云提供的资源访问控制服务。通过RAM,主账号可以创建出子账号,子账号从属于主账号,所有资源都属于主账号,主账号可以控制所属实例的访问权限授予给子账号。
认证
用户可以在阿里云控制台中自行创建AccessKey。
AccessKey由AccessKey ID和AccessKey Secret组成,其中AccessKey ID是公开的,用于标识用户身份,AccessKey Secret是秘密的,用于鉴别用户身份。
当用户向Hologres发送请求时,首先需要将发送的请求按照Hologres指定的格式生成签名字符串,然后使用AccessKey Secret对签名字符串进行加密以生成请求签名。Hologres收到用户请求后,会根据AccessKey ID使用正确的AccessKey Secret对签名字符串生成签名,如果和请求签名一致即认为该请求是有效的。否则,将拒绝处理该请求,并返回HTTP 403错误。
授权
对Hologres实例访问分为两种,即用阿里云账号访问和RAM用户访问。阿里云账号下可以包含不同的RAM用户以便您灵活使用。Hologres支持阿里云账号和RAM用户的权限访问策略:
当使用阿里云账号访问时,Hologres会校验该阿里云账号是否为对应实例的所有者,只有对应实例的所有者才具备访问该Hologres实例的权限。
当使用RAM用户访问时,会触发RAM用户权限策略。Hologres会校验该RAM用户是否被对应阿里云账号授予了访问该实例的权限。
Hologres目前主要支持如下三种授权机制来完成对RAM用户的访问权限控制,详细配置方式请参见Hologres权限模型概述。
权限类型
适用场景
说明
专家权限模型(PostgreSQL)
适用于需要非常严格权限管控的场景。例如,精确到某个人用某个表。例如允许用户zinan.tang读取表table1中的数据。
专家权限模型的权限授予粒度小且灵活,可以为用户授予具体某个表的权限,使用
GRANT/REVOKE
命令进行授权,通过对应的授权命令来完成对已存在的实例中的数据库、Schema、Table、View进行授权或撤销授权。简单权限模型(Simple Permission Model,SPM)
数据库级别的权限管控,适用于粗粒度的权限管理场景。
简单权限模型是封装好的权限模型,以数据库为维度,每个用户组都有对应的权限,不可修改,能满足大部分授权场景,且授权操作比较简单。
Schema级别的简单权限模型(Schema-level Permission Model,SLPM)
精确到Schema级别的权限管控,使用于对权限粒度较为细致且又希望简化授权流程的场景。
Schema级别的简单权限模型是已经封装好的权限模型,以Schema为维度,每个用户组都有对应的权限,不可修改,满足对于权限较为细粒度的管控,且授权操作比较简单。
RAM鉴权
Hologres支持RAM鉴权。RAM是阿里云提供的资源访问控制服务。通过RAM阿里云账号可以创建出RAM用户,RAM用户从属于阿里云账号,所有实例都属于阿里云账号,阿里云账号可以将所属Hologres的访问权限授予给RAM用户。
同时您也可以通过角色SSO的方式登录阿里云,并使用Hologres。此时,阿里云访问控制角色(RAM Role)将成为Hologres某个实例的成员,扮演该RAM Role的使用者,将拥有和云账号类成员同样的产品使用权限。详细配置方式请参见RAM角色授权模式。
审计
ActionTrail
Hologres支持通过阿里云操作审计ActionTrail的控制台、OpenAPI、开发者工具等,查询近90天内的实例操作事件日志,以实现对事件的监控告警、及时审计、问题回溯分析等需求,详细配置方式请参见查询事件日志。
ActionTrail可以收集用户使用阿里云服务的操作记录(包括用户通过控制台触发的操作、调用阿里云API进行的操作以及云服务通过服务角色进行的操作等)。操作记录会在10分钟内被操作审计追踪并记录。
通过操作审计控制台、调用API查看最近90天的操作记录。您可以获知谁、什么时刻、哪个源IP发起哪个对象的什么操作?该操作来自于API还是控制台?操作结果是成功还是失败?失败原因是什么?您可以将这些行为时间下载或保存到日志服务或OSS存储空间,然后进行行为分析、安全分析、资源变更行为追踪和行为合规性审计等操作。
支持操作记录投递到阿里云对象存储(OSS)或日志服务(Log Service)等存储产品中,这些存储产品具有极高的可用性,并且可以通过加密和权限控制,保障审计数据安全。当投递发生时,操作审计还会向您发送通知。
您可以创建多个跟踪分别追踪不同的事件类型、区域范围,并分别投递到不同的存储空间,以满足您为不同职责员工备份不同范围行为数据的要求。
实现原理
Hologres Query Log
Hologres提供Query日志信息,系统会记录30天内的所有DDL、超过100ms的DML和DQL,详细记录每个用户的具体操作,详细配置方式请参见慢Query日志查看与分析。
网络安全
访问隔离
Hologres作为阿里巴巴自主研发的一站式实时数仓引擎,在安全性方面需要满足安全隔离规范的要求。目前Hologres支持网络的具体情况如下:
每个实例的经典网络、VPC网络、公网网络三网隔离,只能访问各自对应的Endpoint及虚拟内网IP(VIP)。
Hologres实例支持配置特定的VPC ID,来保障实例只能被对应的VPC访问。
IP白名单
Hologres安全上的访问控制有多个层次,如上述的安全认证机制,只有获取了正确且经过授权的AccessKey ID及AccessKey Secret才能通过鉴权,在已经赋予的权限范围内进行数据访问和计算。
IP白名单是在以上访问认证基础上增强的一种访问控制,开启白名单功能时,仅允许白名单内的设备访问Hologres实例,非白名单内的设备访问时,即使拥有正确的AccessKey ID和AccessKey Secret,也无法通过鉴权,详细配置方式请参见IP白名单。