drill 学习 五 配置说明- 安全
安全是一个比较重要的,但是在实际的开发中,大家可能关注的不是很多,drill 安全配置包含:
- 认证: 基于Kerberos模式,用户密码模式,签名
- 加密: 基于Kerberos提供数据的保密以及一致性
- 授权: 当前主要基于hive 授权配置模拟用户
- 模拟: 配置模拟用户,配置入展模拟,使用hive配置用户模拟
drill 安全通信模式
drill 包含了5个安全的通信模式,如下图
- web客户端的安全模式
web client 的功能:提交查询,监控查询,配置存储插件
比较遗憾的是官方文档关于认证部分文档缺失(目前版本没看到),但是官方提供了一种基于;linux
pam也是一个不错的选择,参考图
加密部分主要是基于tls 的通信模型,用户模拟从官方文档的介绍更多是关于数据存储通信的
- drill 客户端以及drillbit 到zk 的安全
认证不支持,加密部分可以通过zk 的ssl 模式 - driilbit 到hive 存储插件的安全
这部分主要依赖的是hive 的模式,当然并不是一个特别通用的模式
角色以及权限
drill 支持两类不同的角色: 用户以及管理员
- 用户角色
这个更多是关于存储插件对于数据员的配置的 - 管理员角色(似乎没有实现,而且缺少相关文档)
当开启管理员模式的时候,只要管理员的用户才能进行如下操作:
修改系统级别的配置选项
基于web 以及api 更新存储插件的配置
用户以及管理员有不用的界面操作
查看当前集群运行查询状态的profile
取消当前运行的查询
说明
关于drill 安全部分官方文档也不是特别清晰,而且有一些文档的缺失,比如对于存储插件的安全管理也是一个风险,比较
期待官方会有比较完整的解决方案,整理的文档不是很全,主要是发现官方的信息不是很完整 ,只摘录了部分
参考资料
https://drill.apache.org/docs/configuring-user-impersonation/#impersonation-and-views
https://drill.apache.org/docs/using-jpam-as-the-pam-authenticator/
https://drill.apache.org/docs/using-libpam4j-as-the-pam-authenticator/