乐趣区

关于数据库:选择成本和安全我都要

数据库安全,是指以爱护数据库系统、数据库服务器和数据库中的数据、利用、存储,以及相干网络连接为目标,避免数据库系统及其数据受到泄露、篡改或毁坏的平安技术。

数据库是企业最为外围的数据保护对象 。与传统的网络安全防护体系不同,数据库安全技术更加重视从客户外部的角度登程做平安,其平安要求包含了 保密性、完整性和可用性 ,即CIA(Confidentiality, Integrity, Availability) 的三个方面。

但对于传统数据库服务而言,要保障达到这些平安要求是简单且艰难的,须要从前端(业务)到后端(数据库以及服务器)各方面的整改和体系化的建设能力合乎高标准的平安需要 ,例如等保三级等合规性要求。 这同时也意味着对客户而言,要投入微小的人力、物力、财力。

如果在云端就能领有这些平安能力,客户就无需为以上平安建设老本担心。腾讯云数据库对数据库安全技术进行对立反对后,所有客户均可复用,从而缩小客户的数据库安全老本投入。而腾讯云数据库 PostgreSQL 到底提供哪些数据库安全能力呢?本文将次要从数据安全,实例平安两方面进行具体介绍。

一、数据安全

TDE 数据加密

通明数据加密(Transparent Data Encryption,以下简称 TDE)提供 文件级别的加密 ,能够做到对数据库下层的利用通明,而存储在硬盘上的数据是加密的,对磁盘数据读取和写入时通明地进行加解密,且这个过程中 用户无需自行批改业务代码

通明数据加密罕用于 解决一些平安合规问题,如 PCI DSS、等级平安爱护等要求静态数据须要被爱护的场景。

腾讯云数据库 PostgreSQL 通过向用户申请应用 KMS(Key Management Service)服务中保留的主密钥,生成 DEK(Data Encryption Key)密文与 DEK 明文对云产品加密所应用的密钥进行数据加密和解密。

图:信封加密流程图

此类加密计划被称为 信封加密Envelope Encryption),即用另一个密钥对密钥进行加密。信封加密是一种应答海量数据的高性能加解密计划。其可通过生成 DEK 来对本地数据进行加解密,保障了业务加密性能的要求,同时也由 KMS 确保了数据密钥的随机性和安全性

所有的加密解密操作均由数据库在内存中进行,每一次数据库重启以及存在敞开内存的操作时,均会从新从 KMS 获取密钥资料。本地存储中不保留任何可用于解密的密钥资料。

目前 PostgreSQL 社区版本并不提供数据通明加密的性能,而腾讯云数据库 PostgreSQL 在内核中实现了通明加密的能力,并且通过密钥托管于用户的 KMS 服务中,进一步升高了数据被破解的危险,确保数据安全。

字段加密

数据加密是针对整体实例级别的加密性能,加密范畴大,则覆盖范围广。尽管有局部业务也无需将整体实例进行加密,但须要重点针对一些非凡数据进行加密存储。腾讯云数据库 PostgreSQL 反对基于 pgcrypto 插件针对字段进行加密的性能。

PostgreSQL 中,pgcrypto 是 contrib 下的一个插件,它提供了一些加密解密函数,能够实现服务器端的数据加密解密。用户能够在 SQL 语句中调用这些函数来实现数据的加密和解密。

在应用 pgcrypto 中的加密函数过程中,能够加密比拟重要的字段,进步数据的安全性。

pgcrypto 模块提供的加密函数有以下几类:通用 Hash 函数,Password Hash 函数,PGP 加密函数,Raw 加密函数,随机数据函数。

整体来看,字段加密能够 无效地避免重点敏感数据泄露,实用于明码、要害数据等加密场景。

数据脱敏

有些状况下,有些表的特定列含有敏感数据(如用户信息表中的用户手机号)。毫无疑问,只有指定用户才有权限看到这些敏感数据,其余用户则只能看到脱敏后的数据。如果此时采纳数据列级加密,则须要客户端也染指进来进行实现,否则加密和解密实现比拟繁琐。

为缩小客户业务代码工作的参加,对于此类场景腾讯云数据库 PostgreSQL 反对客户 间接在 PostgreSQL 中进行配置实现。

第一种形式:通过视图脱敏的计划进行操作,如通过查问语句,将指定字段进行字符串解决。代码如下:

hehe => SELECT id,name,SUBSTRING(phone_number, 1,3) ||'****'||SUBSTRING(phone_number, 7,4) as phone_number    FROM t;
 id |   name   | phone_number 
----+----------+--------------
  1 | zhangsan | 180****2321
  1 | lisi     | 136****2321
  1 |          | 177****2423
  1 | wangwu   | 177****2423
(4 rows)

第二种形式:通过 postgresql_anonymizer 插件能力实现,实现对数据脱敏的需要。


RLS(ROW Level Security) 是 PostgreSQL 9.5 版本之后的新增个性,提供了基于行的安全策略,限度数据库用户的查看表数据权限。在其余数据库中,对用户的权限管控均在表级别,例如:限度某个用户只能查问某个表。而采纳 RLS 后,不同的用户拜访一个表能够看到不同的数据。

默认状况下,表没有任何安全策略限度。这样用户依据 SQL 特权零碎具备对表的拜访特权,对于查问或更新来说其中所有的行都是平等的。当在一个表上启用行安全性时,所有对该表抉择行或者批改行的一般拜访都必须被一条行安全性策略所容许(不过,表的拥有者通常不遵从行安全性策略。如果表上不存在安全策略,如果没有配置安全策略,所有的数据查问和更新都会禁止,然而对全表进行操作的命令,比方 TRUNCATE 和 REFERENCES 不受影响。

行安全性策略能够针对特定的命令、角色或者两者。一条策略能够被指定为实用于 ALL 命令,或者查问(SELECT)、插入(INSERT)、更新(UPDATE)或者删除(DELETE)。同一个策略可调配多个角色,并且通常的角色成员关系和继承规定也实用。

行级安全策略可实用于在针对多个数据混合存储于同一张表内,又须要依据用户类型进行查看或者读写权限进行分类限度的场景。腾讯云数据库 PostgreSQL 通过行级安全策略则能够无效防止数据被意外篡改和操作,最大水平上爱护数据安全。

二、实例平安

平安组拜访策略

平安组是一种有状态的蕴含过滤性能的虚构防火墙,用于设置单台或多台云数据库的网络访问控制,是腾讯云数据库提供的 重要网络安全隔离伎俩。平安组是一个逻辑上的分组,客户能够将同一地区内具备雷同网络安全隔离需要的云数据库实例加到同一个平安组内。

平安组拜访策略能够无效的管制拜访数据库的起源 IP 地址,设置黑白名单,容许指定的网络段、IP 地址拜访,回绝危险地址的拜访。

角色权限访问控制

在大企业中,数据库资源面向不同的业务提供服务,而不同的业务隶属于不同的小组或者部门,此时如何在对立的账号下治理不同的业务资源就成为了平安权限治理的一大难题。

腾讯云数据库 PostgreSQL 拜访治理 CAM 则能够用于 帮忙客户平安治理腾讯云账户下资源的拜访权限 。通过 CAM,客户能够创立、治理和销毁用户(组),并通过身份治理和策略管理管制指定用户能够应用的腾讯云资源,进而达到 权限拆散 的目标。这种权限治理形式是典型的 PBAC(基于策略的访问控制),能够 实现资源级粒度的管制

客户能够通过子帐号实现不同的账号治理不同的服务来躲避以上的问题。默认状况下,子帐号没有应用云服务的权力或者相干资源的权限。因而,腾讯云数据库 PostgreSQL反对创立策略来容许子帐号应用他们所须要的资源或权限。针对某一个用户、某一个资源、某一个操作均能够做到精细化的管制。进而防止越权操作,让所有的用户仅可操作本人权限范畴内的资源。

网络隔离

云数据库 PostgreSQL 反对应用 公有网络 来实现更高水平的网络隔离管制,搭配应用平安组和公有网络将极大晋升拜访 PostgreSQL 实例的安全性。

公有网络是用户在腾讯云上建设的一块 逻辑隔离的网络空间 。在公有网络内,用户能够自在定义网段划分、IP 地址和路由策略,进而实现 资源级的网络隔离

部署在公有网络中的 PostgreSQL 实例默认只能被同一个公有网络中的 CVM 拜访,若 CVM 与 PostgreSQL 实例不在同一个公有网络,也能够通过申请外网的形式进行拜访,思考到网络安全的问题,不倡议采纳外网的形式进行数据库拜访,若必须采纳外网拜访 PostgreSQL 实例,请 配合平安组 来实现客户端的访问控制。

VPC 的网络基础设施还能够 避免 DDoS 攻打。当用户应用外网连贯和拜访 PostgreSQL 实例时,可能会蒙受 DDoS 攻打。针对这一问题,腾讯云数据库提供流量荡涤和封堵解决性能,齐全由零碎主动触发和完结。当腾讯云数据库安全零碎认为用户实例正在蒙受 DDoS 攻打时,首先会启动流量荡涤性能,如果流量荡涤无奈抵挡攻打或者攻打达到封堵阈值,则会进行封堵解决。

实例删除防呆

“删库跑路”是在数据库行业中常常被人拿进去调侃的一句话,其外围起因就是在于 传统数据库的管理手段繁多,很容易呈现运维人员对实例进行删除,导致理论业务受到巨大损失。

云上数据库 反对实例回收站 能力,当用户呈现了实例删除,并不会间接将数据齐全清理,而是会在回收站呆上几天。这样防止了误操作或者歹意操作导致的实例无奈回收状况。当实例进入回收站后,业务出现异常无法访问,则可帮忙客户及时发现问题,进而抓紧时间解救。

同时腾讯云数据库联合 云平安拜访策略 ,使实例的隔离与下线接口把握在不同权限的负责人手中。这样做可 对高危操作进行治理隔离,防止繁多人员危险导致的数据库安全问题。

除了通过拜访控制策略之外,腾讯云数据库还能够 基于商业流程服务 BPaaS 与云函数 SCF 的联合模式 ,在云上实现审批流服务,使高危操作都受到 审批流的治理

整体来看,以上数据库实例平安的防呆措施,可防止 95% 以上 的实例意外危险,充沛保障数据库的稳固运行。

总结

数据库安全能力晋升任重道远,如何确保数据库在失常对外提供服务的同时,一直进步平安防护能力也是腾讯云数据库始终以来在翻新冲破的指标。

现在,腾讯云数据库丰盛的安全策略组合,可帮忙客户无效升高在数据库安全方面的投入老本,使得客户轻松享受一系列平安能力。

退出移动版