原理介绍
系统默认有admin用户,在admin用户下,可以创建不同用户。
账号密码提供了身份认证(authc),通过角色的映射实现了授权(authz),两者共同实现了多用户下的安全控制。
功能介绍
Elasticsearch和OpenSearch的此项功能类似,下面以OpenSearch Dashboards为例说明。
在OpenSearch Dashboards的左边栏Security菜单中,用户可以实现集群、索引、文档、字段等不同粒度的访问权限管控,并且提供灵活的用户删除、用户和角色的绑定和解绑。
下面,我们就以创建新用户并赋予它一个具备一定的访问权限的角色为例。
注意必须登录admin账号创建其他用户。
1、创建Internal users
点击左边栏Security后,选择右上角Create internal user来创建用户。在页面中,我们输入用户名密码,并点击右下角“Create”创建用户。
用户创建完成后,我们自动返回Internal users界面,可以看到search用户已经创建完成。
2、创建角色
角色通过索引、实例多维度的精细访问控制,实现对实例、索引权限的安全组划分。如果复用已有的默认角色(不可删除),则无需创建,可以跳过此步骤。
下面我们将演示如何自定义角色。
登录左边栏Security界面,选择Roles,并且在右上角点击Create role:
- 我们分别创建了角色名SearchRole,并且,在Cluster permission中给它赋予了相应的安全组权限。
- 我们给它设定了索引级别的更细粒度的Index permission。
- 下面还可以设置Document和Field维度的进一步细粒度的权限控制。
- 点击右下角的Create ,就可以创建好角色SearchRole。
3、映射用户和角色
将创建的用户和角色绑定。
登录左边栏Security界面,选择Roles,并找到刚创建好的角色SearchRole。
点击角色进入,并选择Mapped users。将我们创建的用户,映射到这个角色上,并点击右下角Map完成映射。
这样,我们就可以用赋予了新角色的账号直接登录了。