[Elasticsearch] 给ES设置必须以用户名密码访问

一、elasticsearch.yml中设置

1、进入es的config目录中打开elasticsearch.yml

2、增加以下两项:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

二、重启es后使用elasticsearch-setup-passwords进行密码设置

1、在完成修改elasticsearch.yml后,重启es;

2、进入es的bin目录,敲入命令:

./elasticsearch-setup-passwords interactive     #linux执行这个
elasticsearch-setup-passwords interactive       #windows执行这个

3、之后分别给elastic, kibana, logstash_system,beats_system等用户设置密码,具体如下例:

[root@hecs-81986 bin]# ./elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,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]y


Enter password for [elastic]:
passwords must be at least [6] characters long
Try again.
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

执行完毕之后,访问es节点就需要用户名密码了,如下:

### 如何在 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]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值