限制用户在elasticsearch中的行为

时间:2016-10-14 22:03:56

标签: elasticsearch

如何禁止普通用户使用除GET之外的任何请求。

这适用于终端和网络浏览器。

例如,一般用户不应该在终端中使用以下命令:

curl -XDELETE 'http://www.example.com:9200/customer/external/1?pretty' 

这是否足以实现目标? https://www.elastic.co/guide/en/elasticsearch/reference/current/url-access-control.html或者我必须设置其他参数才能达到上述目标。

另外,如何限制一般用户使用GET请求获取过多数据。例如:

curl 'https://www.example.com:9200/dummyindex1/_search?q=*:*&pretty'

由于

1 个答案:

答案 0 :(得分:0)

Shield绝对是弹性的企业级安全产品。Shield附带了许多安全功能以及身份验证。它附带授权,SSL和LDAP集成。

你可以下载盾牌并开始玩它。你可以直接跳转到Field and Document level security部分,你可以设置用户只能根据你设置的身份验证规则读取索引。

您可以使用弹性REST API动态修改这些规则,也可以在部署期间在配置文件中对其进行配置。

用于动态更改其余api后的身份验证规则。

POST /_shield/role/my_fls_role
{
  "indices": [
    {
      "names": [ "index1", "index2" ],
      "privileges": ["read"], 
      "fields": [ "title", "body" ]
    }
  ]
}

这也支持复杂的身份验证规则,您可以在其中为特定角色设置字段的规则

POST /_shield/role/customer_care
{
  "indices": [
    {
      "names": [ "*" ],
      "privileges": ["read"],
      "fields": [
            "issue_id",
            "description",
            "customer_handle",
            "customer_email",
            "customer_address",
            "customer_phone"
      ]
    }
  ]
}

您可以为不同的访问层配置多个客户端应用程序的多个角色,如果您正在查看更多企业级安全解决方案,您也可以从LDAP配置这些角色,这些角色通过弹性处理非常精美,因为它们会缓存用户凭据通过网络从LDAP接收以提高性能。

此外,如果您不寻找此类成绩安全解决方案,您可以先查看nginx/apache reverse proxy以对搜索请求进行身份验证,然后再将其投放到群集中。