elasticsearch开启集群用户名密码认证

本文介绍如何在Elasticsearch 7.1.1版本上配置身份验证,包括设置xpack安全模块、生成和使用证书文件的过程。适用于macOS用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文章:Elasticsearch 7.1.1 集群 + 配置身份验证

下载elastics

elasticsearch官网下载链接:https://www.elastic.co/cn/downloads/elasticsearch

放到合适的目录后解压。

macos用户不推荐brew安装,有坑。

设置用户认证

前提

elasticsearch在6.3及以后的版本已经自带xpack,所以可以直接通过下文的方式进行设置。如果是6.2及之前的版本,需要自己下载安装xpack。

下载地址:
https://www.elastic.co/cn/downloads/x-pack

1

修改conf/elasticsearch.yml文件,在最后加上:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
# 证书的位置
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

保存退出。

2

输入以下命令生成认证文件:

./bin/elasticsearch-certutil ca
./bin/elasticsearch-certutil cert -out elastic-certificates.p12 -pass ""

3

将生成的elastic-certificates.p12放到config/certs下,并且赋予权限

cd config
mkdir certs
chown -R elasticsearch:elasticsearch certs

4

执行命令启动elasticsearch(如果已经启动,那么重启elasticsearch):

su elasticsearch -c "./bin/elasticsearch -d"

5

执行命令手动输入密码:

bin/elasticsearch-setup-passwords interactive

这里会让设置相关用户的密码,如elastic、kibana、logstash等,每个都需要输入一次,确认一次。

6

打开浏览器,输入安装elasticsearch的设备IP和端口

xxx.xxx.xxx.xxx:9200

出现弹出框,输入账号elastic,密码为之前输入的密码,确认后弹出json页面,表示登录成功。

7

登录子节点设备,到config目录下,在elasticsearch.yml最后加上:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
# 证书的位置
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

之前第一个生成认证文件的作为主节点,在子节点的config文件中创建certs目录,将主节点生成的elastic-certificates.p12文件放到各个子节点的certs目录下,最后赋予权限启动es即可。

不需要认证

直接bin/elasticsearch -d启动即可。

### 如何在 Docker 中为 Elasticsearch 设置用户名密码 为了安全起见,在生产环境中通常建议启用 Elastic Stack 的安全性功能,这包括设置用户名密码。以下是具体方法: 对于启用了安全性的多节点集群,`elasticsearch.yml` 配置文件中应包含 `xpack.security.enabled=true` 这一选项[^2]。 创建初始用户之前,需先启动带有内置用户的 Elasticsearch 实例。可以通过命令行工具如 curl 或者 Kibana 的 Dev Tools 来执行初始化操作。下面是一个通过 API 创建弹性云盘 (Elastic Cloud) 用户的例子: ```bash curl -X POST "localhost:9200/_security/user/my_new_user?pretty" \ -H 'Content-Type: application/json' \ -d' { "password": "my_password", "roles": ["superuser"] } ' ``` 当使用 Docker 启动 Elasticsearch 并希望自定义配置时,可以利用 `-e` 参数传递环境变量给容器来开启安全特性以及指定其他必要的参数。例如: ```bash docker run \ --name elasticsearch \ -p 9200:9200 \ -e xpack.security.enabled=true \ -e ELASTIC_USERNAME=my_username \ -e ELASTIC_PASSWORD=my_strong_password \ -it \ docker.elastic.co/elasticsearch/elasticsearch:8.6.0 ``` 上述命令将会把 `ELASTIC_USERNAME` 和 `ELASTIC_PASSWORD` 设定为访问该实例所需的凭证信息。请注意替换掉这里的占位符 (`my_username`, `my_strong_password`) 成实际想要使用的账户名与强密码组合[^5]。 另外需要注意的是,如果打算长期保存这些认证数据,则应该考虑采用更持久化的方式存储它们而不是仅仅依赖于临时的环境变量;比如借助 Kubernetes Secrets 或者 Docker Secrets 功能实现更加稳健的安全策略[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值