在 DataEase 中使用 Elasticsearch 类型的数据源时,有的用户不希望给查询 Elasticsearch 数据的账号开放过高的权限,希望开放最小的权限满足 DataEase 的访问需求即可,如果你有这样的需求,那么你可以参考下面的步骤进行操作,在 ES 中创建一个只读角色,然后创建一个用户并将此用户设置为只读角色。
1 ES 创建只读角色 readonly_role (对所有的 index 可读)
curl -XPOST -u elastic:Password123@elastic -s http://@10.1.13.102:9200/_xpack/security/role/readonly_role -H "Content-Type: application/json" -d'
{
"cluster": ["all"],
"indices": [{
"names": ["*"],
"privileges": ["read", "view_index_metadata", "monitor"],
"allow_restricted_indices": false
}]
}'
2 查看刚才创建的只读角色 readonly_role
curl -XGET -u elastic:Password123@elastic http://@10.1.13.102:9200/_xpack/security/role/readonly_role?pretty
3 ES 创建只读角色下的只读用户 readonly_user
curl -XPOST -u elastic:Password123@elastic -s http://@10.1.13.102:9200/_xpack/security/user/readonly_user -H "Content-Type: application/json" -d'
{
"password" : "Password@readonly",
"roles" : [ "readonly_role" ],
"full_name" : "Readonly Role",
"email" : "readonlt@fit2cloud.com",
"metadata" : {}
}'
4 下面提供一些ES常用的查询命令
4.1 ES 查看所有索引
curl -XGET -u elastic:Password123@elastic http://@10.1.13.102:9200/_cat/indices?v
4.2 ES查看指定角色的所有权限信息
curl -XGET -u elastic:Password123@elastic http://@10.1.13.102:9200/_xpack/security/role/superuser?pretty
4.3 ES查看所有用户及用户所属的角色
curl -XGET -u elastic:Password123@elastic http://@10.1.13.102:9200/_xpack/security/user?pretty