如何禁止普通用户使用除GET之外的任何请求。
这应该适用于终端和web浏览器。
例如,普通用户应该不能在终端中使用以下命令:
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'谢谢
发布于 2016-10-15 17:43:42
Shield绝对是elastic的企业级安全产品,elastic提供了大量的安全功能和认证功能。它与授权、SSL和LDAP集成在一起。
您可以下载盾牌并开始玩it.You,您可以直接跳转到Field and Document level security部分,在这里您可以设置用户的访问权限,使其只能根据您设置的认证规则读取索引。
您可以使用elastic REST api动态修改这些规则,也可以在部署期间在配置文件中配置它们。
用于遵循rest 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配置这些角色,elastic可以很好地处理这些角色,因为它们缓存了通过网络从LDAP接收的用户凭据,以提高性能。
此外,如果您不是在寻找这种级别的安全解决方案,您可以在将搜索请求抛到集群之前查看nginx/apache reverse proxy来对其进行身份验证。
https://stackoverflow.com/questions/40052645
复制相似问题