2016-10-14 2 views
0

Как запретить обычным пользователям использовать любые запросы, кроме GET.Ограничить поведение пользователей в elasticsearch

Это должно быть применимо к терминалу и веб-браузеру.

Например, обычные пользователи не должны иметь возможности использовать следующую команду в терминале:

curl -XDELETE 'http://www.example.com:9200/customer/external/1?pretty' 

Является ли это достаточным для достижения поставленной цели? https://www.elastic.co/guide/en/elasticsearch/reference/current/url-access-control.html Или мне нужно настроить другие параметры, чтобы достичь поставленной цели.

Также как ограничить использование пользователями общих запросов GET для получения слишком большого количества данных. Например:

curl 'https://www.example.com:9200/dummyindex1/_search?q=*:*&pretty' 

Благодарности

+0

Это может помочь: https://www.elastic.co/guide/en/shield/current/configuring-rbac.html – jay

ответ

0

Shield, безусловно, продукт безопасности класса предприятия с эластичным. Shield поставляется с множеством функций безопасности наряду с аутентификацией. Он поставляется с авторизацией, SSL и LDAP.

Вы можете загрузить щит и начать играть с ним. Вы можете прямо перейти на Field and Document level security раздел, где вы можете установить доступ для пользователей, чтобы читать только индекс на основе установленных вами правил аутентификации.

Эти правила вы можете динамически изменять с помощью эластичного REST api, или вы можете настроить их во время развертывания в файлах конфигурации.

Для динамического изменения правил аутентификации, следующих за остальными api.

POST /_shield/role/my_fls_role 
{ 
    "indices": [ 
    { 
     "names": [ "index1", "index2" ], 
     "privileges": ["read"], 
     "fields": [ "title", "body" ] 
    } 
    ] 
} 

Это также поддерживает сложные правила аутентификации, где вы можете установить правила для полей также для конкретных ролей

POST /_shield/role/customer_care 
{ 
    "indices": [ 
    { 
     "names": [ "*" ], 
     "privileges": ["read"], 
     "fields": [ 
      "issue_id", 
      "description", 
      "customer_handle", 
      "customer_email", 
      "customer_address", 
      "customer_phone" 
     ] 
    } 
    ] 
} 

Вы можете настроить несколько ролей для нескольких приложений клиента для различных слоев доступа и если вы рассматривают более сложные решения безопасности на уровне предприятия, которые вы также можете настроить для этих ролей из LDAP, которые очень красиво обрабатываются эластичными, поскольку они кэшируют учетные данные пользователя, полученные от LDAP по сети, для повышения производительности.

Также, если вы не ищете такие решения безопасности для обеспечения безопасности, вы можете посмотреть nginx/apache reverse proxy, чтобы аутентифицировать запросы поиска, прежде чем бросать их в кластер.

Смежные вопросы