背景:
Open Distro for Elasticsearch是 AWS 2019年宣布开源的 Elasticsearch 发行版,采用Apache 2.0许可证,其中不仅包含了Elasticsearch和Kibana,还提供了包括高级安全功能、事件监视和告警、性能分析、SQL查询等企业级性能优化。我们也可以理解其为开源版xpack插件的elasticsearch。
通过Security插件进行用户授权
Open Distro中的Security插件可以支持多个级别的权限控制,且能在搜索组件Elasticsearch和Opensearch之间具备平行迁移能力,但在了解其操作流程前,需要先明确几个概念:
open_distro_security 提供了RBAC(基于角色的访问控制),简单来说就是:先创建角色,角色拥有一系列权限,再把角色赋予用户,最后计算得出某个用户具体拥有哪些权限。
- 可分配资源:集群(cluster)和索引(index)
- 权限(permission),这是指很细颗粒度的权限,系统内置默认很多,但不建议直接赋权给用户,推荐使用权限组
- 权限组(permission group)有通用的、集群级别、索引级别,支持多选,支持自己创建,建议使用默认。
- 角色(Role)将各种权限付诸之上,可以为用户分配角色。
- 用户(User)集群的用户,可以登陆Kibana/Dashborad,访问集群等。
- 租户(Tenants):租户是用于保存索引模版、可视化内容、控制面板和其他控制面板对象的空间。
操作流程
1、如果系统内默认的没有符合要求的Role可以新建
可以看到内部有对集群和索引的权限设置入口,注意配置索引时,需要用* 来概括后缀,此处会自动生成索引模板。
2、创建用户
3、租户管理
多租户可让用户安全地与其他控制面板用户共享工作(或保持用户自己工作内容的私密性)并动态配置租户。
用户可以控制哪些角色有权访问租户,以及这些角色是否具有读取或写入访问权限。
3.1 创建租户
3.2 绑定Role
这样,这些定制化租户可以共享可视化的一些内容
3.3 验证
租户登录选择&显示
当用role1_user登录的时候,就可以选择并显示租户,并且可以切换租户
一些帮助理解的Tips
- 管理员admin是最高权限的,是内置的,可以看到任何用户、任何租户下的东西,上帝视角,完全无隔离。
- 多用户存在于搜索组件(Elasticsearch&OpenSearch)的概念,主要是针对索引、集群等数据相关安全管控措施。
- 多租户是存在于Kibana&Dashboard的概念,主要是针对可视化看板、索引模版等等面板上可视化相关的共享权限管理。
- 有且仅有admin用户能够看到Security的标识,其他用户看不到。