ElasticSearch6.2.2如何配置账号密码啊
有没有
帮帮忙
引自免费微信小程序:皆我百晓生
在 Elasticsearch 6.2.2 版本中,安全功能是通过 X-Pack(现已称为 Elastic Stack)提供的。你需要安装并启用 X-Pack 来实现用户认证和角色基础的访问控制。
以下是详细的步骤:
下载并安装 X-Pack: 首先,你需要从 Elasticsearch 官方下载页面 下载包含 X-Pack 的 Elasticsearch 分发版。选择与你的 Elasticsearch 版本相匹配的分发包。
解压并配置:
解压下载的文件,然后进入 bin
目录。创建一个名为 elasticsearch.yml
的文件(如果尚未存在),并在其中添加以下内容,指定X-Pack的路径:
path.data: /path/to/your/data
path.logs: /path/to/your/logs
xpack.security.enabled: true
将 /path/to/your/data
和 /path/to/your/logs
替换为实际的数据和日志存储路径。
启动 Elasticsearch:
在 bin
目录下,运行以下命令启动 Elasticsearch:
./elasticsearch
设置默认密码: 当第一次启动带有 X-Pack 的 Elasticsearch 时,它会自动创建一个名为 "elastic" 的用户,并提示你为其设置密码。按照提示操作,输入新密码两次确认。
创建其他用户: 你可以使用 Kibana 或者 curl 命令行工具来创建其他用户。首先,打开 Kibana 界面,然后导航到「Security」>「Users」。点击「Add user」按钮,填写用户名、密码以及所需的权限。
如果你想使用 curl 命令,可以参考以下示例创建一个名为 "testuser" 的用户:
curl -u elastic -H 'Content-Type: application/json' -XPUT 'http://localhost:9200/_xpack/security/user/testuser' -d'
{
"password": "testpassword",
"roles": ["kibana_admin"]
}
'
这里,我们设置了用户名为 "testuser",密码为 "testpassword",并将其分配给 "kibana_admin" 角色。根据需要,你可以调整角色和权限。
验证用户:
使用新的用户和密码尝试连接到 Elasticsearch。例如,如果你在 Kibana 中创建了用户,可以在浏览器的 URL 栏中输入 http://testuser:testpassword@localhost:5601
并登录。
限制访问:
最后,为了确保只有授权用户可以访问 Elasticsearch,你需要在防火墙中限制对端口 9200 和 9300 的访问,并且在 Elasticsearch 的 elasticsearch.yml
文件中启用 HTTP基本认证:
http.cors.allow-origin: "*"
http.auth.type: basic
http.basic.authorized_users:
"elastic": "changeme"
"testuser": "testpassword"
这里,我们允许所有来源(*)的跨域请求,并指定了两个已知的用户名及其对应的密码。将 "changeme" 更改为之前为 "elastic" 用户设置的新密码。
重启 Elasticsearch:
保存并关闭 elasticsearch.yml
,然后重启 Elasticsearch 使更改生效:
./elasticsearch -E transport.host=127.0.0.1
现在,你应该已经成功配置了 Elasticsearch 6.2.2 的账号密码,可以通过用户认证进行访问了。记得更新任何依赖于 Elasticsearch 的应用程序,使其使用新的认证信息进行连接。