网络和数据链路

AnalyticDB PostgreSQL版做为云原生分布式系统拥有非常高的安全性,首先每个新建实例使用专有网络,也称为VPC(Virtual Private Cloud),VPC是一种隔离的网络环境,安全性和性能均高于传统的经典网络。根据使用场景可选择是否开通公网地址,以减少潜在安全风险。其次只允许白名单上的IP列表或IP段访问,该名单通过控制台管理。

为了提高数据链路安全性,支持启用SSL(Secure Sockets Layer,标准化后更名为安全传输层协议TLS)加密,提供SSL CA(Certification Authority)证书给需要的应用服务,甚至是启用双向认证证书来进一步提高安全等级,即除了认证服务端同时还认证客户端。控制台提供安全方式下载和更新证书给应用服务。

用户和权限管理

AnalyticDB PostgreSQL版支持两种数据库用户账号:高权限账号和普通账号。

  • 高权限账号拥有所有数据库的所有操作权限。
  • 普通账号拥有已授权数据库(owner)的所有操作权限。

在使用AnalyticDB PostgreSQL版之前,需通过控制台创建初始账号用来连接数据库,该账号为高权限账号,一旦创建后无法删除,只可以重置或修改密码。每个用户账号的密码都将使用MD5哈希算法加密保存来保证密码明文不会被泄露。

说明 无法通过控制台创建其他用户账号,但是可以连接到数据库后通过SQL语句创建和管理其他用户与用户组。

新建的database默认会包含schema “public”并且允许所有账号进行读写。但是仅能访问自己创建的对象,用户将看不到模式中不属于它们所拥有的对象,需要对象的所有者赋予相应权限。如果已经被赋予适当的权限,用户也可以在别的用户模式里创建对象。用户可以在数据库、模式、表等多个层次管理权限,并且细粒度控制。例如,赋予一个用户表上的读取权限,但无修改权限。总之,每个普通用户仅能访问自己所拥有的数据库对象和系统级默认对象,除非其他用户显式赋予适当权限。

数据加密

AnalyticDB PostgreSQL版提供云盘加密功能,基于块存储对整个数据盘进行加密,即使数据备份泄露也无法解密,保护您的数据安全。一旦开启云盘加密功能,云盘中的静态数据和云盘与实例间传输的数据进行加密,包括实例生成的快照以及通过这些快照创建的实例将自动延续加密属性。使用云盘加密需在创建实例时存储磁盘类型选择为ESSD云盘或高效云盘。云盘加密功能开启后无法关闭。

云盘加密的密钥由密钥服务系统(Key Management Service)管理由用户授权开通,密钥的每次访问都将会留下相关审计记录。

除此之外,AnalyticDB PostgreSQL版支持扩展插件pgcrypto提供在表或列级别进行敏感数据加密,由应用使用该插件提供的功能函数进行数据加密。由于加密密钥和数据将通过明文传输,此时建议启用数据链路SSL加密,来保证AnalyticDB PostgreSQL版和应用之间数据传输不被泄露。pgcrypto提供如下加密算法函数 MD5,SHA1,SHA224/256/384/512,Blowfish,AES128/256,Raw Encryption,PGP Symmetric-Key,PGP Public Key。

SQL审计

AnalyticDB PostgreSQL版控制台提供SQL审计功能,该功能提供查看SQL明细、定期审计SQL。SQL审计会统计所有DML和DDL操作信息。开通SQL审计功能后,实例性能不会受到影响。