Для ограничения доступа ролей к индексам только тем, к которым у них есть доступ, и скрытия остальных индексов, можно использовать функциональность role-based access control (RBAC) в Elasticsearch.
Для этого необходимо создать роли с соответствующими привилегиями на конкретные индексы. Например, если пользователь имеет доступ только к индексу "test" в namespace проекта, то ему будет предоставлен доступ только к этому индексу.
Пример настройки привилегий для пользователя в Elasticsearch:
1. Создание роли "test_role" с доступом только к индексу "test" в namespace проекта:
```
PUT /_security/role/test_role
{
"indices": [
{
"names": ["test"],
"privileges": ["read","write"]
}
]
}
```
2. Привязка этой роли к пользователю "test_user":
```
PUT /_security/user/test_user
{
"password" : "test_user_password",
"roles" : [ "test_role" ]
}
```
Теперь пользователь "test_user" с ролью "test_role" будет иметь доступ только к индексу "test" в namespace проекта и не сможет просматривать другие индексы.
Не забудьте также настроить безопасность вашего кластера Elasticsearch, чтобы предотвратить несанкционированный доступ к данным.