TIDB 在数据安全做了哪些保障

【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.4.8
【遇到的问题:问题现象及影响】 在部署TIDB集群后,虽然可以正常使用了,但是比较担心数据安全的泄露隐患,例如:
1、Grafana监控这块是否会暴露业务表里面的数据
2、Openapi接口这里是否有隐患【默认我看没有鉴权的功能】

grafana是支持执行数据库sql的。不暴露业务表的数据应该从数据库的权限方便控制。

Grafana监控的是 tidb 整个集群的状态信息和数据,不包含业务实际的数据

Openapi接口 的可以固定在某个网段内,不对外暴露即可…

谁也不会把 tidb 放公网直接对外吧… :see_no_evil:

1 个赞

你说的是问题,应该放内网环境,这样安全些

openapi这里的防护只有tls。
对方拿不到你生成的证书就访问不了。
如果内网的api需要鉴权,那就太重了。严重影响调用效率。
如果对方已经渗透到能拿到生成证书的程度,我觉得是否鉴权也就那么回事了。

TiDB系统表没看到Prometheus和Grafana的账号,不会暴露业务数据。
猜测TiDB的状态信息是通过API传递给Prometheus的。

很好奇你们公司用openapi来干什么

数据安全最担心的应该是账号安全、数据落盘加密和集群各组件之间的安全通信,监控上的安全隐患比较少

TIDB的安全性设计上是不高,首先要你保证在一个安全的环境下使用

这个从何说起? :thinking:

1.grafana里面都是整个集群的信息,顶多有region信息,不会有业务表数据,所以没有暴露风险。
2.Openapi接口这里确实有隐患,但是如果你的tidb是内网的话,理论上访问你数据库只能通过防火墙,你可以只放开tidb-server的4000端口即可,其他的端口不要放开给其他ip访问,只能集群内部访问,如果对方能登录上你的集群内部主机的话,那也不需要openapi了。。。

但是tidb的grafana的数据是从Prometheus里面获取的啊,Prometheus也是获取的openapi的数据,并没有直连数据库。。。

grafana可以配置多种数据源的,不一定非是prometheus。配个mysql的数据源,不就可以展示mysql的表数据了吗

那不是首先得有账号密码吗?有了账号密码,你还需要在grafana里面配数据源吗,直接查不行?tidb自带的grafana是默认只配置了Prometheus的数据源的,配置其他数据源得有密码。。。

我看到官方有涉及到获取监控相关的OpenAPI接口,没看到有鉴权,担心有安全风险
例如:https://docs.pingcap.com/zh/tidb/stable/tidb-monitoring-api

数据库账号相关的权限肯定会收敛好【授权IP,密码等】,但是使用grafana上登录账号信息我在mysql.user表里确实没找到

估计使用TIDB的都是在内网里,哈哈

PD 的 API 可能会有风险
但是都是内网了,担心这个没啥用吧。。。

grafana 的账号是 grafana 自己的,初始化后在 grafana 页面中改

grafana上登录账号并不是数据库的账号密码,是grafana的账号密码,存储在grafna的sqlite3数据库中,跟tidb的账号密码不是一回事