最简单的安全认证
参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-minimal-setup.html
在elasticsearch.yml中开启认证配置
plain
xpack.security.enabled: true
为内建用户创建密码
plain
./bin/elasticsearch-setup-passwords interactive
基础的安全认证
集群内通过TLS通信。
参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/security-basic-setup.html
修改elasticsearch.yml配置文件
plain
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
名词解析
User authentication: 用户身份验证
User authorization: 用户授权。
用户认证
参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setting-up-authentication.html
用户认证方案有很多,包括内建账号,服务账号,基于文件的用户认证等,这里介绍基于文件的用户认证。
基于文件的用户认证
参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/file-realm.html
把users文件、users_roles文件放在config目录下。
如何产生users文件和users_roles文件?
参考https://www.elastic.co/guide/en/elasticsearch/reference/7.17/users-command.html#_synopsis_11
plain
bin/elasticsearch-users
([useradd <username>] [-p <password>] [-r <roles>]) |
([list] <username>) |
([passwd <username>] [-p <password>]) |
([roles <username>] [-a <roles>] [-r <roles>]) |
([userdel <username>])
例如:
plain
bin/elasticsearch-users useradd jacknich -p theshining -r network,monitoring
或者:
plain
bin/elasticsearch-users useradd jacknich -p theshining -r superuser
有哪些角色参考https://www.elastic.co/guide/en/elasticsearch/reference/7.17/built-in-roles.html
plain
superuser角色
超级用户
授予对集群的完全访问权限,包括所有索引和数据。具有超级用户角色的用户还可以管理用户和角色,
并模拟系统中的任何其他用户。由于此角色的许可性质,在将其分配给用户时要格外小心。
常见命令
plain
删除用户jacknich:
bin/elasticsearch-users userdel jacknich