# Encrypt Translog or completely disable it?

**URL:** <https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533>\
**Category:** Elasticsearch\
**Created:** [August 1, 2018, 10:10am UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533 "2018-08-01T10:10:13Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![nukarak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nukarak/32/33948_2.png) [@nukarak](https://discuss.elastic.co/u/nukarak)\
**Post date:** [August 1, 2018, 10:10am UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/1 "2018-08-01T10:10:14Z")

</div>

Hi all,

is there a possibility to disable the Translog ? I guess that not.

And if we would like to encrypt the Translog, how could we proceed ?

In an earlier version of ES, the Translog was using a TransLog - store that could be cusomtized. But this feature has been removed. Is there another way to achieve this ?  
Could the entire Translog - Component be replaced by an aggregated "proxy" or something like that by means of Guice ? Or do you have another idea ?

We would have to encrypt the Translog on a per-index basis (key per index) and the key is not know in the OS, just passed along the REST calls in custom http - headers .  
Any chace?

Thanks!

Martin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [August 1, 2018, 10:16am UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/2 "2018-08-01T10:16:18Z")

</div>

What's the goal in doing this?

---

<div class="post-metadata">

**Author:** ![nukarak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nukarak/32/33948_2.png) [@nukarak](https://discuss.elastic.co/u/nukarak)\
**Post date:** [August 1, 2018, 12:33pm UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/3 "2018-08-01T12:33:37Z")

</div>

we want to ensure end-to-end privacy on an index level by encrypting the index with a user specific key .

We already managed to encrypt the Lucene index, but the translog files also hold the content of the indexed documents in plain, at least for a certain time.  
Such an administrator or someone with access to the filesystem can read the files and such there wouldn't be privacy.

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [August 1, 2018, 8:52pm UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/4 "2018-08-01T20:52:38Z")

</div>

> [@nukarak](#):
>
> We already managed to encrypt the Lucene index

How are you doing this?

---

<div class="post-metadata">

**Author:** ![nukarak](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nukarak/32/33948_2.png) [@nukarak](https://discuss.elastic.co/u/nukarak)\
**Post date:** [August 2, 2018, 8:02am UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/5 "2018-08-02T08:02:14Z")

</div>

We implemented an ActionPlugin.  
In the "onIndexModule" - Method we add a new IndexStore, that delivers a custom DirectoryFactory, that one a custom FSDirectory and that one is using encrypted Streams ... Our index template is configured so that this index store is used .

In the action filters of the plugin we intercept the HTTP headers sent to the node, that hold the key for the index and put it into a local cache (indexname to key) with 5 minutes eviction time. In the IOFactory we retrieve the key again from that cache.

Currently this only is failing in 2 situations:

1. if a document update should be written into a replica shard on a non-master node, because then our ActionFilter is not called (I created another posting for this here)
2. if the cluster is restarted and the index still is open =\> there we intend to close all indexes on shutdown and/or on startup (also another posting here) .

Do you have an idea regarding the Translog?

Or would it be possible, to re-merge the former funcationality to have a TranslogStore that could be customized ?

Cheers,  
Martin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [August 2, 2018, 8:03am UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/6 "2018-08-02T08:03:41Z")

</div>

> [@nukarak](#):
>
> Do you have an idea regarding the Translog?

Elasticsearch was not designed to exist without a translog, so I don't think you will have any luck.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [August 30, 2018, 8:04am UTC](https://discuss.elastic.co/t/encrypt-translog-or-completely-disable-it/142533/7 "2018-08-30T08:04:04Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
