Elasticsearch、Elasticsearch-head、Kibana 安全设置账号密码验证登陆

tech2022-09-20  69

Elasticsearch、Elasticsearch-head、Kibana 安全设置账号密码验证登陆

我的小站、Github、

X-Pack 是 Elastic Stack 的一个扩展,提供安全性、警报、监视、报告、机器学习等功能。 安装 Elasticsearch 7.x 时,会默认安装X-Pack,无需单独安装,且基础级安全永久免费。

操作步骤:

在 elasticsearch 的 config 目录下的 elasticsearch.yml 的底部添加下面配置 http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type xpack.security.enabled: true xpack.security.audit.enabled: true xpack.license.self_generated.type: basic xpack.security.transport.ssl.enabled: true

使用 非root 用户 启动 elasticsearch 服务 新开一个窗口 用 root 用户 在elasticsearch 根目录下运行以下命令 bin/elasticsearch-setup-passwords interactive

输入 y 确认配置密码,然后按要求分别输入密码

或者可以使用以下方式生成随机密码:

bin/elasticsearch-setup-passwords auto

在 kibana 的 config 目录下的 kibana.yml 的底部添加下面配置,账号为 elastic ,密码为上面第3步为 elastic 设置的密码 # 配置登陆账号密码 elasticsearch.username: "elastic" elasticsearch.password: "your_password"

如果不希望账号密码出现在配置文件中,可以使用以下方式存储在密钥库中

在kibana安装目录下,使用 非root用户 运行以下命令以创建 Kibana 密钥库并添加安全设置

bin/kibana-keystore create bin/kibana-keystore add elasticsearch.username bin/kibana-keystore add elasticsearch.password

如果想要删除,可以使用 remove 参数

bin/kibana-keystore remove elasticsearch.username bin/kibana-keystore remove elasticsearch.password 重启 elasticsearch、elasticsearch-head、kibana elasticsearch、kibana的访问方式照常,elasticsearch-head 的访问网址为 http://<服务器IP地址>:9100/?auth_user=elastic&auth_password=<PASSWORD>

其中,账号密码为 第3步 设置的 elastic 和 它对应的密码

SpringBoot 中 Elasticsearch 配置类 注册 RestHighLevelClient Bean 的方式

private String host = 127.0.0.0;//修改为 elasticsearch 服务器地址 private Integer port = 9200; private String scheme = "http"; private String userName = "elastic"; private String password = "your_password"; // 修改为你设置的密码 @Bean public RestHighLevelClient restHighLevelClient(){ final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); return new RestHighLevelClient( RestClient.builder( new HttpHost(host,port,scheme) ).setHttpClientConfigCallback(httpClientBuilder -> { httpClientBuilder.disableAuthCaching(); return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); }) ); }

可以在 Stack Management 中 管理用户 和 角色 入口:主页 → 管理 Elastic Stack → 安全性设置

或者直接访问地址:

用户管理 http://<服务器IP>:5601/app/kibana#/management/security/users

角色管理 http://<服务器IP>:5601/app/kibana#/management/security/roles

更多详情请参考 官方文档

最新回复(0)