Я не думаю, что это правильный способ достижения многопользовательского режима, а не на уровне шарда.
Чего именно вы хотите достичь?Я предполагаю, что вы хотите, чтобы разные пользователи (или, лучше, разные роли) могли получать доступ к разным частям индекса.В этом случае вам следует взглянуть на разрешения на уровне документа .
Как этого добиться на практике?Допустим, у вас есть индекс с именем multitenants-index
, и у вас есть два арендатора, таких: (i) первый арендатор может читать / писать только те документы, имеющие поле "tenant": 1
, (ii) второй арендатор может читать / писатьтолько те документы, которые имеют поле "tenant": 2
.Затем вы можете создать следующие две роли:
POST /_xpack/security/role/first_tenant
{
"indices": [
{
"names": [ "multitenants-index" ],
"privileges": [ "read", "write" ],
"query": "{\"match\": {\"tenant\": 1}}"
}
]
}
POST /_xpack/security/role/second_tenant
{
"indices": [
{
"names": [ "multitenants-index" ],
"privileges": [ "read", "write" ],
"query": "{\"match\": {\"tenant\": 2}}"
}
]
}