MongoDB Oplog安全

我们正在使用MongoDB副本集来共享Web场中的会话和其他(可能敏感的)数据。

我们存储的所有数据都使用TTL索引在相对较短的时间(比如一小时)之后过期文档,部分是出于安全原因。

但是,我发现即使从MongoDB集合中删除数据,用于复制的oplog仍将包含所有创build(然后删除)的文档。 所有过期的数据都可以很容易地从oplog中读取。

根据分配给oplog的大小,其中的数据可能会很老。

我的问题是,这里最好的做法是什么? 有什么我们可以做的,除了严格的减lessoplog的大小,防止旧数据被访问?

日志中的敏感数据与任何地方的敏感数据相同。 取决于你想要的关键性 –

  • 只允许那些被授权查看的人访问数据(通常通过angular色或组成员身份)。

  • 如果数据中有任何规定或外部问题的相关信息(PCI,HIPAA等),您必须相应地对待它,并遵守舞蹈

  • 将日志logging和监视(在networking和主机上)设置为11(或其他合适的)

  • ESP。 login和审计数据访问和尝试

  • 只要需要,只要保持原木周围

  • 如果可能,不主动使用时encryption

  • 不要四处散散,巩固和防守

  • 如果上升到一定程度的担心,你可以保护mongodb服务器,并将其视为一个关键系统(安全攻击:如果您处理PCI或其他types的合规性相关的数据,你可以假装它有这些数据,并有操作处理它以相同的标准/政策/等你适用于他们,而不是找出一个新的方式来处理这一切)

在mongo的情况下,你可能会 –

  • 将其发送(encryption!)到中央日志服务器,最好标记为敏感或具有较高的严重性级别

  • 要么不在本地存储日志,要么在debugging/需要的情况下,在最短的时间(一天,一周,30天,无论什么)之后将它们转化为遗忘(例如扔掉)

  • 如果它们在本地存在,则确保它们由root / priv'd用户和模式0400(或适用于您的操作系统的任何内容)

  • 如果你真的偏执,你可以使用类似于auditd(8)的东西来看看有人试图访问日志(再次,发送审计日志到中央日志服务器!)

  • 如果你真的偏执狂,你会想要使用encryption的存储,无论日志保存在哪里,以便他们不能从清除后的磁盘

  • 有些数据可能需要长期存储以保证合规性,所以请确保您不会过早使用任何内容

  • 访问中央日志服务器应该有与本地服务器相同的限制,因为数据

没有什么令人兴奋的,同样的醇,同样的醇,只是不要错过任何东西,钉住一切,限制访问,并监视所有的动作。