查看原文
其他

0 门槛带你体验 Bytebase 中访问控制以及数据脱敏

Adela Bytebase 2023-01-28

本文手把手带你体验在 Bytebase 的企业版中,如何进行数据库访问控制和数据脱敏的。用户可以在不提供额外信息(包括支付方式)的情况下,一键开启企业版 14 天试用。


准备阶段

在本阶段,我们需要启动 Bytebase 和 两个数据库实例,并在 Test 和 Prod 两个环境中加入对应的数据库,建立表格,填充数据。请确保安装了 Docker。如果本地没有重要数据,可以通过
rm -rf ~/.bytebase/data
清空数据。

第一步 启动及注册

  1. 复制粘贴以下语句用 Docker 启动 1个 Bytebase。
docker run --init \--name bytebase \--restart always \--publish 5678:8080 \--health-cmd "curl --fail http://localhost:5678/healthz || exit 1" \--health-interval 5m \--health-timeout 60s \--volume ~/.bytebase/data:/var/opt/bytebase \bytebase/bytebase:1.10.0 \--data /var/opt/bytebase \--port 8080
  1. 复制粘贴以下语句用 Docker 启动 2 个 MySQL ,稍后将分别用作 Test 和 Prod 对应环境的实例。
docker run --name mysqldtest \--publish 3307:3306 \-e MYSQL_ROOT_HOST=172.17.0.1 \-e MYSQL_ROOT_PASSWORD=testpwd1 \mysql/mysql-server:8.0
docker run --name mysqldprod \--publish 3308:3306 \-e MYSQL_ROOT_HOST=172.17.0.1 \-e MYSQL_ROOT_PASSWORD=testpwd1 \mysql/mysql-server:8.0
  1. 注册管理员账号 A,后面使用 DBA 指代该账号。该账号将会被赋予工作空间所有者的权限。更多权限相关请查看 https://www.bytebase.com/docs/concepts/roles-and-permissions
  1. 退出再次注册账号 B,后面使用开发者指代该账号。该账号将被赋予工作空间开发者的权限。

第二步 配置

  1. 根据提示或点击添加实例,在实例里添加针对于 Test 环境的实例,配置如下图,用户名/密码为 root/testpwd1
  1. 根据提示或点击创建项目,建立项目 TestAcess。
  1. 根据提示或进入该项目点击创建数据库,建立数据库 dbDemo。该操作会生成一个自动执行的工单,因为是在 Test 环境上,默认配置为无需手动审核。点击解决
  1. 重复「1」,添加实例 MySQL Prod,并且对应到 Prod 环境
  1. 重复「3」,在 Prod 实例上添加数据库 dbDemo,需要注意的是,因为位于 Prod 环境上,根据默认配置,该工单需要手动批准。点击批准。点击解决

第三步 数据

  1. 在项目 TestAccess 主页点击 变更 Schema
  1. 选择 Test 和 Prod,点击下一步
  1. 通过 Schema 编辑器,为 Test 和 Prod 的实例添加表 t1。
  1. 点击预览工单后,会形成同时包括变更 Test 和 Prod 环境的流水线,Test 阶段会自动执行,Prod 阶段需要手动批准。点击批准。点击解决
  1. 点击 TestAccess 回到项目首页,这次选择变更数据
  1. 再次选择 Test 和 Prod 两个环境,进入到新建工单页面,填充 SQL,点击应用到其它任务。点击创建
  1. 点击批准解决

体验阶段
通过上阶段的准备,我们已经具备了基础数据。因为访问控制及数据脱敏只有在企业版中使用,因此,我们会通过申请 14 天试用的方式,开启企业版权限。

第一步 开启企业版试用

  1. 通过 DBA 账号登录,点击左下角免费版,根据提示点击开启14天试用。
  1. 此时开启的为团队版试用,为了再升级至企业版,点击顶部栏的环境。点击 Prod,勾选标记为受保护的环境,下滑,点击更新。

  1. 此时会询问是否升级为企业版,点击升级试用。即可升级为企业版,此时 Prod 环境标题旁多了一个小盾牌,代表受保护的环境。

第二步 添加开发者为项目成员,角色为开发者
只有将开发者添加到项目中,该项目才会对其可见。

第三步 由 DBA 配置,对开发者进行访问控制

  1. 通过 DBA 账号登录,点击顶部栏的环境。点击 Prod去除标记为受保护的环境,下滑,点击更新。再次回到本页面,可以看到 Prod 旁边已经没有了小盾牌。意味着该环境未受保护。
  1. 通过开发者账号进入 SQL 编辑器,可以看到 Prod 环境下的的数据库。
  1. 通过 DBA 账号登录,点击顶部栏的环境。点击 Prod选择标记为受保护的环境,下滑,点击更新。如果再次回到该页面,可以看到 Prod 环境旁的小盾牌。意味着该环境收到了保护。
  1. 通过开发者账号进入 SQL 编辑器,无法看到 Prod 环境下的的数据库。
  1. 通过 DBA 账户登录,点击顶部设置 ,点击工作空间 > 访问控制。点击添加规则。
  1. 选择 Prod 环境对应的数据库,点击添加。这种情况下,DBA 将 Prod 环境设为保护,但开启了白名单,添加规则的数据库仍可见。
  1. 再次通过开发者账户进入 SQL 编辑器,可以看到虽然 Prod 环境有小盾牌,但是依然可见。

第四步 由 DBA 配置,对开发者可见数据进行脱敏

  1. 通过开发者账号,在 SQL 编辑器里查询 Prod 环境下的数据。在这里,我们希望对 mobile 这个字段进行脱敏处理。
  1. 通过 DBA 账户登陆,通过找到 Prod 环境下的 dbDemo,进入 t1 表内。勾选 mobile 这列。之后也可以通过设置 > 敏感数据,对各规则进行管理。
  1. 再次通过开发者账户登陆,可以看到,系统已经对 mobile 列已经进行了脱敏处理。

总结
这里值得一提的是相较于 goInception 的脱敏,Bytebase 还可以支持子查询,Common Table Expression (CTE) 等多种复杂的查询语句进行脱敏。详见 goInception 的数据脱敏真的能保护敏感数据吗?
现在你已经体验了 Bytebase 中通过工作空间所有者的配置,来实现对工作空间开发者的访问控制和数据脱敏。在体验中有遇到什么问题吗?欢迎留言讨论!
【5000 字长文】从 S3 到 DataZone,AWS 用 16 年讲完一个数据的故事
Bytebase 助力亚马逊云科技 re:Invent
探探PostgreSQL开发规约
总结 & 评选结果 | Bytebase SQL 编辑器体验官

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存