jetlinks ElasticSearch 密码
时间: 2025-01-08 16:08:42 浏览: 4
### JetLinks 中 Elasticsearch 密码配置与管理
在 JetLinks 的环境中,当使用 Docker 部署 Elasticsearch 时,默认情况下可能不会启用安全认证机制。为了增强安全性并设置密码,可以按照如下方式进行操作:
#### 启用安全特性
对于较新版本的 Elasticsearch(如8.x),默认启用了安全特性。如果使用的是旧版本,则需手动开启此功能。可以通过修改容器启动参数来实现这一点。
```bash
docker run -d \
--name elasticsearch-secure \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=true" \ # 开启安全插件
-e "ELASTIC_PASSWORD=your_password_here" \ # 设置初始密码
-Xmx512m" \
elasticsearch:7.7.0
```
上述命令中的 `xpack.security.enabled` 参数用于激活 X-Pack 安全特性;而通过设定 `ELASTIC_PASSWORD` 变量可以直接指定超级管理员账户 (`elastic`) 的初始登录凭证[^3]。
#### 修改已有用户的密码
一旦设置了初始密码,在后续想要更改现有用户(包括但不限于内置用户)的密码时,可利用 `_security/user/{username}/_password` API 接口完成更新工作。下面是一个简单的 cURL 请求例子展示如何改变名为 'kibana' 用户的新密码:
```bash
curl -X POST "localhost:9200/_security/user/kibana/_password?pretty" -H 'Content-Type: application/json' -u elastic:initial_elastic_password -d'
{
"password" : "new_kibana_user_password"
}
'
```
这里 `-u elastic:initial_elastic_password` 表示以弹性搜索超级管理员身份验证,并提供其原始创建时所设之密钥来进行授权访问[^2]。
#### 创建自定义角色和用户
除了调整预置账号外,还可以基于业务需求构建特定权限集的角色以及关联这些角色到新的或现有的用户身上。这通常涉及到向 `/v1/system/elasticsearch/users` 或者直接调用 Elasticsearch RESTful APIs 来执行相应动作。
例如,要新增一个具有只读权限的应用程序日志查看者的用户,应该先定义好适当的角色映射文件,再提交给集群处理。
```json
PUT /_security/role/app_log_viewer
{
"cluster": [],
"indices": [
{
"names": ["app-*"],
"privileges": ["read"]
}
]
}
POST /_security/user/logviewer_user
{
"password": "logviewer_user_password",
"roles": ["app_log_viewer"],
"full_name": "Application Log Viewer User"
}
```
以上 JSON 片段展示了怎样建立一个新的角色 `app_log_viewer` 和分配该角色至新建用户 `logviewer_user` 上面去[^1]。
阅读全文