访问控制
- 网络隔离
实时数仓Hologres作为阿里巴巴自主研发的一站式实时数仓引擎,在安全性方面需要满足安全隔离规范的要求。目前Hologres支持网络的具体情况如下所示:
- 每个实例的经典网络、VPC网络、公网网络三网隔离,只能访问各自对应的Endpoint及虚拟内网IP(VIP)。
- Hologres实例支持配置特定的VPC ID,配置了特定的VPC ID后,实例只能被对应的VPC访问。
- 配置了IP白名单的实例只能被对应IP网段的服务器访问 。
- IP白名单
Hologres安全上的访问控制有多个层次,如安全认证机制,只有获取了正确且经过授权的AccessKey ID及AccessKey Secret才能通过鉴权,在已经赋予的权限范围内进行数据访问和计算。下面主要介绍在以上访问认证基础上增强的一种以IP白名单的方式,进行访问控制的配置方法和策略,详细配置方式请参见IP白名单。
获取需要配置的IP地址的方式如下。- 使用PSQL进行项目空间数据访问,您可以直接获取机器的IP地址。
- 使用了代理服务器或者经过了多跳代理服务器访问Hologres实例,需要添加的IP地址为最后一跳代理服务器的IP地址。
- ECS机器中访问Hologres服务,需要添加的IP地址为NAT IP。
- 配置IP地址时,多个IP由逗号(
,
)分隔,支持如下IP格式:- 单独IP地址。
- 带有子网掩码的IP。
--单独IP地址 10.32.180.8,10.32.180.9,10.32.180.10 --带有子网掩码的IP地址 10.32.180.0/23
鉴权认证
- 身份验证
- 您可以在阿里云控制台中自行创建AccessKey,AccessKey由AccessKey ID和AccessKey Secret组成,其中AccessKey ID是公开的,用于标识用户身份,AccessKey Secret是秘密的,用于鉴别用户身份。
- 当您向Hologres发送请求时,首先需要将发送的请求按照Hologres指定的格式生成签名字符串,然后使用AccessKey Secret对签名字符串进行加密以生成请求签名。Hologres收到用户请求后,会根据AccessKey ID使用正确的AccessKey Secret对签名字符串生成签名,如果和请求签名一致即认为该请求是有效的。否则,Hologres将拒绝处理这次请求,并返回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(Resource Access Management)是阿里云提供的资源访问控制服务。通过RAM阿里云账号可以创建出RAM用户,RAM用户从属于阿里云账号,所有实例都属于阿里云账号,阿里云账号可以将所属Hologres的访问权限授予给RAM用户。
- 同时您也可以通过角色SSO的方式登录阿里云,并使用Hologres。此时,阿里云访问控制角色(RAM Role)将成为Hologres某个实例的成员,扮演该RAM Role的使用者将拥有和云账号类成员同样的产品使用权限。详细配置方式请参见RAM角色授权模式。
数据安全
- 数据可靠性
实时数仓Hologres通过了PCI DSS的认证。Hologres使用了分布式文件系统存储数据,数据会以三副本形式存储,并将这些副本按照一定的策略存放在集群中的不同节点上,保证用户数据的可靠。
- 数据脱敏
Hologres支持数据脱敏功能,可以按照列级别设置脱敏,并且支持对于指定用户设置脱敏策略。启用该功能后,若查询的数据涉及敏感信息,则在展示结果中,该部分数据会被脱敏展示,提高了对敏感及私密数据的保护。现在支持多种脱敏规则,例如IP地址脱敏、邮箱地址脱敏、Hash脱敏等,详细配置方式请参见数据脱敏(Beta)。
- 存储加密
Hologres支持通过密钥管理服务KMS(Key Management Service)对数据进行加密存储,提供数据静态保护能力。现在支持的加密算法有AES256、AESCTR、RC4和SM4,详细配置方式请参见数据存储加密。
日志审计
- Hologres支持通过阿里云操作审计ActionTrail的控制台、OpenAPI、开发者工具等,查询90天内的实例操作事件日志,以实现对事件的监控告警、及时审计、问题回溯分析等需求,详细配置方式请参见查询事件日志。
- Hologres提供Query日志,系统会记录30天内的所有DDL、超过100ms的DML和DQL,详细配置方式请参见慢Query日志查看与分析。