如何禁止普通用户使用除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'
由于
答案 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以对搜索请求进行身份验证,然后再将其投放到群集中。