APP下载

基于集群的水文数据安全性能提升对策

2021-01-20

水利信息化 2021年4期
关键词:敏感数据副本数据安全

梁 冰

(辽宁省河库管理服务中心(辽宁省水文局),辽宁 沈阳 110003)

随着水文数据量的不断增加,业务的不断扩展,在数据安全、访问效率、数据共享、数据挖掘、数据服务等方面暴露出一系列问题,现有数据管理及服务模式已无法满足水文现代化发展的迫切需求,改变现有数据及业务的服务模式是非常必要和有意义的。因此对现有数据库系统中存在的主要问题进行深入分析,并提出基于集群的解决方案,在对比各种集群技术后,最终选择 SQL Server Always On无域集群,将单实例数据库升级到数据库集群[1],以提升水文数据安全性能。

1 主要问题

1.1 数据安全方面

雨水情数据库中有少量敏感数据,数据库在水利政务外网上运行,存在数据泄露风险;水文局对外提供数据的方式为业务系统直接访问水情数据库的形式,缺乏安全监管监控数据、跟踪数据流向的能力;现有数据库为单实例 SQL Server,存在不可用风险[2]。

1.2 访问效率方面

单实例 SQL Server 数据库存在访问效率不高的问题,一旦某应用系统访问量过大,将造成访问缓慢,甚至将数据库系统拖垮,那么基于此数据库系统的其他业务系统都将无法访问到数据库。

1.3 访问方式方面

业务系统直接访问雨水情数据库的形式有以下几个弊端:

1)安全性不高。数据库的地址、用户名和密码会储存在业务系统的缓存中,并且要求客户端具有能够直接访问数据库网络的链路,这种方式存在很大的安全隐患。

2)上层业务应用与数据库层耦合紧密。当数据库系统升级或迁移时,必然导致上层应用无法访问。

3)数据库层缺乏熔断机制。当数据库服务因为某种原因突然变得不可用或响应过慢时,没有一种有效机制中断调用数据库服务。

4)上层应用重复开发。基于雨水情数据库的多个业务应用系统,通常都会访问同一种类的常用数据,那么每个业务系统在开发时都会将访问这类数据的功能重新开发一遍,而且每个业务系统的开发模式不一,这对数据库性能优化极为不利。

2 解决方案

针对数据库存在的问题,基于国家及水文相关技术标准,以信息技术手段重点解决雨水情数据库数据同步、安全、访问等方面存在的问题,如:隔离敏感数据与非敏感数据,提高敏感数据的安全性;转变数据服务模式,从直接访问数据库方式向访问数据接口方式转变;加强对数据访问的监管;提高数据访问效率[3]。

2.1 隔离敏感数据与非敏感数据

因部分水文数据比较敏感,为保证数据的安全性,建立与水利政务外网物理隔离的局域网,实时数据通过单向网闸设备由水利政务外网向局域网中的数据库服务器推送,其中推送服务器可直连网闸,也可通过交换机连接,敏感数据只供内部人员使用,以保障数据安全。

2.2 建设数据审计监管系统

针对水文数据库 API 接口(应用程序接口)提供多种审计规则,监管水文数据安全,监控、跟踪水文数据流向。建设水文数据审计系统,在所有请求的策略底层处理上设置以下 2 种基础行为:

1)允许、拒绝行为。当发生请求时,任何审计行为都会触发该过程,依照策略判定后允许或者拒绝请求发生。

2)记录访问行为。当发生请求时,记录访问信息,请求人、应用 IP,发生时间,检索的数据量、组织范围、条件,系统的处理情况、状态,系统的访问源,接口处理时间,以及规则返回记录。

建设审计策略规则防火墙,包含的规则如下:1)访问通过规则。可以设定特定用户是否可以访问某个 Web API 请求。

2)访问时间规则。可以通过时间限定某个用户,在某个时间段是否可以访问。

3)访问请求单次数据量规则。在某个用户对特定 API 进行访问时,可以将一次请求中获取的数据量限定在允许值以内,规则处理方式可以设置为记录/拒绝/截断。

4)访问请求累计数据量规则。某个用户在一定时间周期内对特定 API 进行访问时,可以将累计请求数据量限定在允许值以内,规则处理方式可以设置为记录/拒绝/截断。

5)访问数据范围规则。可以设定以行政区域为单位的数据访问范围,从而限定用户只可以访问特定区域的数据。

6)访问数据类型规则。可以设定以测站类型为单位的数据访问范围,从而限定用户只可以访问特定测站类型的数据。

通过规则防火墙记录和限定用户请求行为实现水文数据审计业务,通过图表进行审计结果的图形化展示,可以便于管理者掌握了解水文数据使用的实际情况。

2.3 搭建水文数据库集群

随着水文数据量的不断增大,数据类型的不断扩展,用户需求不断增多,现有的单实例 SQL Server 数据库的承载能力已趋于饱和,为满足将来上层业务系统的需要,计划将现有数据库系统升级到 Oracle RAC 集群。但是现有的所有业务应用都是建立在 SQL Server 数据库服务之上的,所以短期内不可能完成 SQL Server 向 Oracle 的迁移。综合以上考虑:水文数据库先由单实例 SQL Server 数据库升级到 SQL Server Always On 无域集群[4],使数据库服务具备高可用和负载均衡能力,以缓解当前数据库系统的压力;同时搭建 Oracle RAC 集群,对数据库进行集群管理及访问效率上的负载均衡,提高数据安全及访问效率,并逐步将已有的基于 SQL Server 的数据库服务迁移到基于 Oracle 的数据库集群上。

待搭建好数据库集群后,将数据写入地址变更为数据库集群地址,因为集群 IP 会自动绑定到主副本上,所以实际上数据是写入到集群的主副本中的。与数据库镜像技术相同,Always On 集群会在各个结点上维护 1 套数据副本,主副本上发生的数据变化,会同步到辅助副本上。所以 Always On 要完成 3 件事:首先把主副本上发生的数据变化记录下来,其次把这些记录传输到各个辅助副本上,最后把数据变化在辅助副本上同样完成 1 遍。Oracle RAC 集群也能提供类似的功能。

Always On 支持主副本和多个辅助副本。主副本上的数据库是可读写状态,可称为主数据库;辅助副本上的数据库是只读状态,可称为辅助数据库。如果发生故障转移,任意辅助副本都可转变为新的主副本。

客户端与主数据库的读写连接由主副本保障。数据同步是在数据库级别进行的,把主数据库的事务日志记录发送到辅助数据库,每个次要副本缓存事务日志记录,然后将它们应用到相应的辅助数据库,主数据库与辅助数据库进行独立的数据同步,因此,1 个辅助数据库可以挂起或失败而不会影响其他辅助数据库,1 个主数据库可以挂起或失败而不会影响其他主数据库。

部署 Always On 之前,需要先创建部署环境,即 Windows Server 故障转移群集(WSFC)。给定可用组的每个可用性副本必须位于相同 WSFC 的不同节点上。WSFC 将监视集群中的节点,以便评估主副本的运行状况。Always On 可用性组的仲裁针对WSFC 中的所有节点,而与某一给定群集节点是否承载任何可用性副本无关。从 Windows Server 2016开始,WSFC 可在无域服务器的条件下实现,大大简化了部署,并且避免了由域服务器产生的单点故障。所以本次 SQL Server Always On 集群的搭建全部基于 Windows Server 2016 的无域 WSFC。

2.4 实现数据迁移

待 Oracle 数据库集群搭建好后,可将挂载在SQL Server 下的现有数据库迁移至 Oracle 集群中,进一步全面提升数据安全与访问效率。现有数据库体积庞大,并不断有实时数据写入,所以迁移方案采用以下 4 个步骤进行:

1)将现有 SQL Server 数据库备份到 1 台无联机事务的实例上。

2)使用 Oracle Developer 软件,对整个数据库做 1 次从 SQL Server 数据库到 Oracle 数据库的全量迁移,因数据库体积庞大,此步骤会花费较长时间。

3)将实时数据接入 Oracle 。

4)对于迁移期间缺失的数据,编写脚本根据时间戳从联机的 SQL Server 库中进行迁移。

2.5 开发水文数据访问接口 API

结合水文业务需求,从现有业务应用中抽取API 接口,建立一系列 API 数据服务,转变数据访问方式,通过服务接口的方式对外提供水文数据和常规分析等服务,为社会、水利及水文系统内部,提供安全、可靠、高效的数据与业务服务[5]。

在数据访问上使用 Web Service API 方式请求获取数据,所有的请求通过服务层的审计系统,进行对应的安全策略授权控管,确保访问的安全性。对于暂时不能切换到 Web API 方式访问的应用,系统提供过渡用的数据库连接访问模式,超过过渡期后,将关停该模式。

随着业务的扩展,将建立多种主题 API 请求,实现多种业务积累的 API 发布,用户可以通过浏览API 发布快速了解请求的 API 接口及示例。

可实现对以下各类 API 数据接口的查询与管理:

1)用户可以通过系统查看目前的接口发布信息,或者通过关键字查询进行检索。

2)可以查看详细的 API 接口标准,包括访问URL 参数,返回结果及示例信息等。

3)通过平台直接申请接口的使用,在管理端,审批核准后为用户颁发 App Key,用户使用此 App Key 按照平台接入流程即可访问接口。

4)可以查看自己的接口使用情况,包括 IP、访问时间等信息,通过图表等多种方式进行综合展示。

接口授权方式主要有以下 2 种:

1)指定调用服务器 IP。用户申请访问 API 时必须提供调用 API 的服务器 IP,管理端绑定后,只要从这台服务器发起的合法请求都会授权。

2)采用 OAuth2 标准协议。大致流程如下:a. 客户端提交账号信息到服务端;b. 服务端验证成功,返回 Access Token 给客户端;c. 访问受限资源时,客户端带入 Access Token 就可访问。

系统可根据实际业务需求选择 API 授权方式。

3 结语

通过集群技术应用前后对比,发现数据库集群运行稳定,用户访问数据库效率也有很大的提高,比单实例数据库有更高的安全性与效率,对单实例数据库想升级到集群系统的用户有一定的借鉴作用。应用结果表明:

1)数据库集群技术拥有实时同步的副本,当数据库面临灾难时,可以在短时间内通过故障转移的方式保证数据库的可用性,比原有的单实例数据库更加安全。

2)通过使用数据库集群可以使读写分离,提高数据库的系统性能。

3)数据同步消耗大量资源,集群管理技术复杂,需要数据库管理员具备一定的专业知识。

猜你喜欢

敏感数据副本数据安全
干扰条件下可检索数字版权管理环境敏感数据的加密方法
我国5G数据安全保护供给不足,“四步”拉动产业发展
基于大数据的智能数据脱敏系统
实现虚拟机敏感数据识别
使用卷影副本保护数据
云计算中基于用户隐私的数据安全保护方法
面向流媒体基于蚁群的副本选择算法①
建立激励相容机制保护数据安全
一种基于可用性的动态云数据副本管理机制
大数据云计算环境下的数据安全