PostgreSQL 的审计和权限控制系统

背景介绍

GrowingIO 作为一家大数据公司,核心资产虽然在大数据平台上,但关系型数据库仍扮演着不可或缺的角色。它担负着存储产品逻辑,配置信息等重要数据信息。
GrowingIO 目前的数据库实例较多,例如按环境区分为开发环境,测试环境,生产环境等不同环境。按需求来说,又存在运维人员需要直接修改线上脏数据,开发人员本地访问开发环境的实例进行联调等情况。
而随着公司员工不断发展,人员的流动性会加剧,数据库权限控制会越来越复杂。
这时一个易用的数据库管理工具会减少相当大的工作量。
由于 GrowingIO 选用 PostgreSQL 作为关系型数据库,所以以下内容以 PostgreSQL 作为基础展开。

目前状况

之前 GrowingIO 是使用基于 SSH + Iptables + PostgreSQL 日志的组合架构来实现的 PostgreSQL 的管理。
这种架构只是满足了权限控制和审计的基本需求,但是实际使用中有些问题是很难解决,例如:

  • 由于权限控制和日志审计属于独立的系统,造成审计的溯源比较麻烦。

  • 权限控制比较粗粒度,只能控制能不能访问,无法做更细粒度的权限划分。

  • 无法做到 SQL 级别的限制。

  • 没有接到统一账号管理系统,账号管理繁琐。

由于以上种种原因,所以决定将该架构进行一次重构。

基于 PostgreSQL 审计和权限控制系统

前期准备

功能需求

  • 不对 PostgreSQL 数据库做变更或者侵入较小。
  • 支持 RBAC 权限控制。
  • 使用 LDAP 作为 RBAC中的角色和用户认证系统。
  • 有审计功能。
  • 有 SQL 过滤的功能。 易于使用和管理。

工具调研

由于目前市面上主要数据库使用 MySQL 居多,而 PostgreSQL 使用的较少,扩展工具方面的资料相对较少。
目前找到的可行的方案是 PostgreSQL 本身的 LDAP 功能 + pgAudit 组合来达到权限和审计功能。
该方案可实现的功能包括:

  • 基于 LDAP 的用户和角色认证。
  • 基于 pgAudit 的日志审计功能。

该方案存在的问题:

  • 需要操作 PostgreSQL 本身,对 PostgreSQL 本身有一定的侵入性。
  • 各个 PostgreSQL
  • 实例的管理还是割裂的状态。 后期功能扩展性不强。

由于该方案每个 PostgreSQL 实例的管理还是割裂的状态,当实例过多时仍会带来管理的复杂,对于不支持公网的实例仍需在 PostgreSQL 实例前端搭建一个 Pro

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值