开启ES安全特性,然后创建密码为内置用户.之后你可以增加更多用户,但是使用内置用户简化了程序开启安全为你的集群.
重要:最少安全场景对生产集群是不够的.如果你集群有多个节点,必需开始 最少安全配置,然后配置TLS在他们之间.
提前准备
- 安装配置ES和Kibana.查看入门ES栈
- 核对你使用license,包含你想要的专门的安全特性.
基础license 包含最小安全配置为ES栈,所以你仅仅可以下载分发然后去配置.你可以开启免费试用license 来访问所有ES栈特性.查看订阅和license管理.
开启ES安全特性
当使用基础license, ES安全特性默认是被禁用的.开启ES安全特性开启基础认证,这样可以运行本地集群使用用户名和密码认证.
- 集群上的每个节点,停止运行
- 集群上的每个节点在
$ES_PATH_CONF/elasticsearch.yml
中增加xpack.security.enabled: true
. - 如果你是单节点,在
$ES_PATH_CONF/elasticsearch.yml
中增加discovery.type: single-node
. 这个设置可以保证你节点忽略连接其它运行在你网络的其它集群.
为内置用户配置密码
为在集群中通讯, 你必需配置用户名为内置用户.除非你开启匿名访问,所有请求不包括用户名和密码会被拒绝.
注意: 你只需要设置密码为
elastic
和kibana_system
用户,当开启最低安全配置或基础安全配置.
- 在集群中的每个节点,运行ES.例如,如果你安全ES用
.tar.gz
,运行下边的命令在ES_HOME
目录
./bin/elasticsearch
- 另外一个终端设置密码为内置用户通过运行
elasticsearch-setup-passwords
工具.
重要:你可以再次运行elasticsearch-setup-passwords工具集群中任何节点.虽然这样,你应该只运行一次.
使用auto
参数输出随机密码在控制台,如果有必要你可以在后期修改.
./bin/elasticsearch-setup-passwords auto
如果你想要使用你自己密码,运行命令使用interactive
参数代替auto
.使用这种模式使你为所有内置用户配置密码.
./bin/elasticsearch-setup-passwords interactive
3.保存生成密码.你需要他们在添加内置用户到Kibana.
警告: 为elastic设置密码之后 ,你不能再次运行elasticsearch-setup-passwords.
配置Kibana用密码连接ES
当ES安全特性开启,用户必需登录Kibana使用有效的用户名和密码.
你可以配置Kibana使用内建kibana_system
用户和密码,在你之前创建的.Kibana执行一些后台任务需要使用kibana_system
用户.
这个账号不是独立账号,并且没有通过浏览器登录到Kibana权限.代替的是你应该使用超级用户elastic
- 增加
elasticsearch.username
设置在KIB_PATH_CONF/kibana.yml
文件,并且设置值为kibana_system
elasticsearch.username: "kibana_system"
- 在你安全Kibana目录,运行下边命令来创建Kibana keystore并且增加安全配置.
a. 创建Kibana keystore
./bin/kibana-keystore create
b. 增加密码为kibana_system
用户给 Kibana keystore
./bin/kibana-keystore add elasticsearch.password
当有提示,为kibana_system
输入密码
- 重启Kibana
关闭后再运行
./bin/kibana
- 登录Kibana 用
elastic
用户.使用超级用户来管理空间,创建用户,和分配角色. 如果本地运行Kibana,执行http://localhost:5601
查看登录页面.
下边做什么?
开启密码保护为你本地集群可以阻止未授权的访问.可以安心用elastic
登录Kibana来创建 其它用户和角色.如果你运行单节点集群,那么在这时你可以停止了.
如果你的集群是多节点,你一定配置TLS在他们之间.生产模式集群不能启动如果你配置TLS.
设置基础安全为Elastic栈来保证内部通讯安全在你的集群里.