在 Elasticsearch 中添加用户和密码是为了加强集群的安全性。
下面是添加用户密码的一般操作步骤:
打开 Elasticsearch 的配置文件 elasticsearch.yml
,一般位于 Elasticsearch 的安装目录的 config
文件夹下。添加或修改以下配置项以启用安全认证和访问控制:
xpack.security.enabled: true
保存配置文件修改,并重启 Elasticsearch 集群,以使配置生效。
Elasticsearch 默认提供了一些内置的超级用户角色,如 elastic
用户。你可以使用内置的超级用户角色来创建其他用户。
bash
curl -XPOST "http://localhost:9200/_security/role/read_only_role" -H "Content-Type: application/json" -d '{ "indices": [ { "names": ["*"], "privileges": ["read"] } ] }'
这会创建一个名为 read_only_role
的角色,允许用户在所有索引上执行读取操作。
bash
curl -XPOST "http://localhost:9200/_security/user/new_user/_assign_role" -H "Content-Type: application/json" -d '{ "roles" : ["read_only_role"] }'
这将把 read_only_role
角色分配给 new_user
用户。 以上步骤中的命令需要根据你的环境和需求进行修改。在实际操作时,请确保替换正确的 URL、用户名、密码、角色和权限。另外,请确保你的 Elasticsearch 集群已经启动并且配置正确。
arduino bin/elasticsearch-setup-passwords interactive
执行这个命令后,会提示你输入密码,然后会自动为内置用户设置密码。
在 Elasticsearch 里,你可以创建自定义用户,然后为这些用户分配适当的角色和权限。可以使用 Elasticsearch 提供的 REST API 进行操作。
bash
curl -XPOST "http://localhost:9200/_security/user/new_user" -H "Content-Type: application/json" -d '{ "password" : "new_user_password", "roles" : ["read"], "full_name" : "New User" }'
这会创建一个名为 new_user
的用户,分配了 read
角色,并设置了密码。
在 Elasticsearch 中,角色决定了用户可以执行的操作。你可以为不同的角色分配不同的权限,然后将这些角色分配给用户。