2016-05-09 5 views
-1

Как начало здесь: https://discuss.elastic.co/t/write-only-cluster-index-auditing-porpouse/49494ElasticSearch - аудиторское решение с «немодифицируемыми» документами?

Я ищу способ, чтобы гарантировать, что документов, написанных в кластер ES не могут быть изменены (или, по крайней мере, есть резервная копия с оригинальными контентом) - требованиями аудита.

На данный момент я могу обеспечить моментальный снимок, настолько жесткий, что даже я не могу его изменить или удалить. Но как насчет времени от последнего моментального снимка до сих пор?

Знаете ли вы способ обеспечения моментального снимка ES, так что это будет «кластер только для записи» :)?


Возможное решение ?: Пан URI: XDELETE, */_ обновление, но как насчет 'всего обновления документа', где изменения количества _version?

ответ

0

the documentation От:

cluster.blocks.read_only Сделать весь кластер только для чтения (индексы не принимают операции записи), метаданные не могут быть изменены (создания или удаления индексов).

И

Не полагайтесь на этот параметр, чтобы предотвратить изменения в кластере. Любой пользователь, имеющий доступ к API-интерфейсу параметров cluster-update-settings, может снова и снова записывать-записывать кластер.

Вы можете запретить только любые звонки на номер PUT localhost:9200/_cluster/settings.

+0

Спасибо за ответ. Я не могу сделать индекс только для чтения - данные загружаются все время. Я хотел бы отключить функцию обновления документа. – sirkubax

1

Одним из способов достижения этого было бы использовать официальный продукт Shield и определить read-only privileges по индексам, которые вы хотите заморозить. Ниже роль readonly бы только доступ на чтение всех индексов, в то время как full имеет полный доступ:

readonly: 
    indices: 
    - names: '*' 
     privileges: 
     - read 
writer: 
    indices: 
    - names: '*' 
     privileges: 
     - read 
     - write 

ОБНОВЛЕНИЕ: write привилегия позволяет пользователю создавать, обновлять и удалять документы. Существует более тонкая привилегия, называемая create, которая позволяет создавать/индексировать новые документы, но не обновлять и не удалять их.

Другим способом, будет использовать отличную read-only REST plugin по @sscarduzio, со следующей конфигурацией:

readonly: 
    enable: true 
    response_if_req_forbidden: Sorry, your request is forbidden. 
    access_control_rules: 

    - name: Read-only audit indices 
     type: allow 
     actions: [cluster:*, indices:data/read/*] 
     indices: ["*"] 

writer: 
    enable: true 
    response_if_req_forbidden: Sorry, your request is forbidden. 
    access_control_rules: 

    - name: Indexer process 
     type: allow 
     actions: [cluster:*, indices:data/write/*] 
     indices: ["*"] 

Основное преимущество этого подхода заключается в том, что вы можете определить другую роль (например, writer), кто будет способный вносить/индексировать новые документы, сохраняя при этом другие роли (например, readonly) только для чтения.

+0

любой способ отключить параметр обновления документа (на месте)? – sirkubax

+1

В Shield у вас есть разные привилегии, а именно ['create' one] (https://www.elastic.co/guide/en/shield/current/shield-privileges.html # privileges-list-index), который дает возможность создавать документы, но не обновлять их и не удалять. Вероятно, это то, что вы ищете. – Val

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

  • Нет связанных вопросов^_^