【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.4.8
【遇到的问题:问题现象及影响】 在部署TIDB集群后,虽然可以正常使用了,但是比较担心数据安全的泄露隐患,例如:
1、Grafana监控这块是否会暴露业务表里面的数据
2、Openapi接口这里是否有隐患【默认我看没有鉴权的功能】
grafana是支持执行数据库sql的。不暴露业务表的数据应该从数据库的权限方便控制。
Grafana监控的是 tidb 整个集群的状态信息和数据,不包含业务实际的数据
Openapi接口 的可以固定在某个网段内,不对外暴露即可…
谁也不会把 tidb 放公网直接对外吧…
你说的是问题,应该放内网环境,这样安全些
openapi这里的防护只有tls。
对方拿不到你生成的证书就访问不了。
如果内网的api需要鉴权,那就太重了。严重影响调用效率。
如果对方已经渗透到能拿到生成证书的程度,我觉得是否鉴权也就那么回事了。
TiDB系统表没看到Prometheus和Grafana的账号,不会暴露业务数据。
猜测TiDB的状态信息是通过API传递给Prometheus的。
很好奇你们公司用openapi来干什么
数据安全最担心的应该是账号安全、数据落盘加密和集群各组件之间的安全通信,监控上的安全隐患比较少
TIDB的安全性设计上是不高,首先要你保证在一个安全的环境下使用
这个从何说起?
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的账号密码不是一回事