ES安全问题分析
- ES在默认安装后不提供任何形式的安全防护
- 将elasticsearch.yml文件中的server.host配置成0.0.0.0, 公网用户可以任意访问
数据安全性的基本要求
- 身份认证:鉴定用户是否合法
- 用户鉴权:指定用户才能访问,细粒度到索引
- 传输加密
- 日志审计
免费方案
设置Nginx反向代理
安装免费的Security插件
- Search Guard - https://search-guard.com
- ReadOnly REST - https://github.com/sscarduzio/elasticsearch-readonlyrest-plugin
X-Pack的Basic版
- 从ES6.8 & ES7.0开始,Security纳入x-pack的Basic版本中,免费试用一些功能
- https://www.elastic.co/cn/what-is/elastic-stack-security
Authentication - 身份认证
认证体系的几种类型
- 提供用户名和密码
- 提供秘钥或Kerberos票据
Realms:X-Pack中的认证服务
- 内置Realms(免费)
- File / Native(用户名和密码保存在Elasticsearch)
- 外部Realms(收费)
- LDAP / Active Directory / PKI / SAML / Kerberos
RBAC - 用户鉴权
什么是RBAC?
Role Based Access Control,定义一个角色,并分配一组权限,然后通过将角色分配给用户,使得用户拥有角色的所有权限。
权限包括索引级、字段级、集群级的不同的操作。
- User:The authenticated User
- Role:A named set of permissions
- Permission:A set of one or more privileges against a secured resou