我们知道Elastic安全是非常重要的。没有这个我们的数据可以被任何的人进行访问,串改,删除。Elastic Stack的安全是由x-pack所提供的。在Elastic Stack 7.0版本之前,这个是商用的版本,需要进行安装,并购买。从Elastic Stack 7.0之后,x-pack都已经在发布版中,所以不需要进行安装。我们只需要进行配置就可以了。
在今天的这篇文章中,我们来详细介绍如何为Elastic Stack设置安全账户。在进行这个教程之前,我相信大家已经阅读过文章:
如何在Linux,MacOS及Windows上进行安装Elasticsearch
如何在Linux及MacOS上安装Elastic栈中的Kibana
已经在自己的电脑或服务器上安装好Elasticsearch及Kibana。
使用基本和试用许可证时,默认情况下会禁用Elasticsearch安全功能。 要启用它们,首先,我们必须停止所以正在运行的Elastic Stack 软件:
xpack.security.enabled: true
本教程涉及单个节点群集,但如果您有多个节点,则可以在群集中的每个节点上启用Elasticsearch安全功能,并为节点间通信配 置传输层安全性(TLS),这超出了本教程的范围。 通过启用单节点发现,我们推迟了TLS的配置。 例如,添加以下设置:
discovery.type: single-node
针对以.tar.gz或.zip来进行安装的Elasticsearch,我们可以通过如下的方式来进行启动。针对其它方式的安装,我们可以通 过参阅链接“Starting Elasticsearch”来启动。
./bin/elasticsearch
这样,在我们的Elasticsearch.yml里,我们添加如上的两个语句就够了。
您可以将内置用户用于特定的管理目的:apm_system,beats_system,elastic,kibana,logstash_system和remote_monitoring_user。
在使用它们之前,我们必须为它们设置密码。在 Elasticsearch的目录里安装打入如下的命令:
./bin/elasticsearch-setup-passwords interactive
$ ./bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]
你安装提示进行设置。在这个过程中选择你喜欢的密码来设置。
启用Elasticsearch安全功能后,用户必须使用有效的用户ID和密码登录Kibana。
Kibana还执行一些需要使用内置kibana用户的任务。
elasticsearch.username: "kibana"
elasticsearch.password: "your_password"
这里的“your_password”就是我们在上一节Elasticsearch中使用elasticsearch-setup-passwords命令配置的内置用户密码。
./bin/kibana-keystore create
./bin/kibana-keystore add elasticsearch.username
./bin/kibana-keystore add elasticsearch.password
出现提示时,请为这些设置值指定kibana内置用户及其密码。 启动Kibana时会自动应用这些设置。
上面的两种方法可以任选其中的一个。
针对以.tar.gz或.zip进行安装的Kibana,可以通过如下的命令来进行启动Kibana:
./bin/kibana
在Kibana的安装目录运行以上的命令就可以了。如果是以其它的形式进行安装的Kibana,请参阅链接“Starting and stopping Kibana”来运行Kibana。我们可以看到如下的画面:
键入我们之前的内置用户名及密码:elastic/your_password。这里的your_password是之前我们设置的密码。然后,我们就可以看到如下的画面:
在上面,我们已经使用内置用户elastic登录我们的Kibana。现在我们去Manage/Sercurity/Users页面:
显示的页面如下:
在这个页面里,我们可以看到一些内置的用户。我们选择"Create new user。
在这里,我们输入选择我们的用户名及密码信息,然后点击Create user。您会注意到,在创建用户时,您可以为其分配角色。目前前我们暂不分配一个角色 - 我们将在后续步骤中再回过头来看看。
我们可以点击Management / Security / Roles来查看我们的role列表:
每个角色定义一组特定的操作(如读取,创建或删除),这些操作可以在特定的安全资源(例如索引,别名,文档,字段或集群)上执行。 为了帮助您启动和运行,有内置角色。
我们将kibana_user角色分配给您的用户。 返回Management / Security / Users页面并选择您的用户。 添加kibana_user角色并保存更改。 例如:
通过这样的设置,这个liuxg的用户可以对Kibana进行所有功能的访问。我们可以点击Kibana最右角上方的一个图标进行logout,然后用最新创建的账号进行登录,看看是否成功。
我们可以为我们的账号创立一个superuser账号,这样这个账号基本上就会具有所有的role。这个对我们做一些测试是非常有帮助的。