我想从ES读取数据但不想意外地向其写入数据(没有索引操作)。这只是一个安全措施,以便以后修改查询功能的其他人不允许插入数据。
答案 0 :(得分:1)
当你说你想要只读客户端时。客户强调您的系统中可能有其他客户端用于同一群集。然后阻止整个索引为只读将阻止所有客户端。您必须有一个在群集中写入/更新数据的作业。
如果这是您的用例,请将客户端视为elasticsearch用户,每个用户对您的群集具有不同的访问策略。
弹性搜索提供shield plugin来实现客户端身份验证和授权。
您可以在配置文件中创建具有不同访问策略的多个ES用户。
bin/shield/esusers useradd es_admin -r admin
使用角色api创建角色并将每个用户专用于每个角色。
POST /_shield/role/my_admin_role
{
"cluster": ["all"],
"indices": [
{
"names": [ "index1", "index2" ],
"privileges": ["read"]
}
],
"run_as": [ "other_user" ]
}
如果您想远离盾牌,您还可以在es es cluster之前为nginx reverse proxy配置为管理员授权。
答案 1 :(得分:0)
您可以将索引参数设置为“只读”:
curl -XPUT localhost:9200/test/_settings -d '{
"index" : {
"blocks" : {
"read_only" : true
}
}
}'
所有索引设置都记录在此处:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html
以下是更新索引设置的方法:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html
但这是一项非常有限的操作。