在没有支付费用的情况下加密数据库?

时间:2017-11-01 00:03:35

标签: encryption cassandra cassandra-2.0

现在,在休息时加密Cassandra数据库的唯一方法似乎是他们的企业版需要花费数千美元:https://stackoverflow.com/questions/32584253/how-to-use-cassandra-with-tde-transparent-data-encryption

另一个解决方案是在每个值进入数据库之前对其进行加密,但是密钥将以明文的形式存储在每个服务器的某个位置,并且很容易找到。

我知道他们提供"免费"用于某些公司,但这不是一个选项,我无权支付2000美元/服务器。传统公司如何加密其分布式数据库?

感谢您的建议

3 个答案:

答案 0 :(得分:2)

我们在其中一个项目中也做过类似的要求。基本上,我利用Cassandra中的触发器功能和自定义实现来执行加密。它似乎对我们很好。

您可以参考下面的文档,了解如何创建ITrigger接口的触发器和示例实现

https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlCreateTrigger.html

https://github.com/apache/cassandra/blob/2e5847d29bbdd45fd4fc73f071779d91326ceeba/examples/triggers/src/org/apache/cassandra/triggers/AuditTrigger.java

答案 1 :(得分:1)

我采用了在AWS上加密数据磁盘的方法。我向实例添加了一个新卷,并检查了加密卷的选项。然后我编辑cassandra.yaml指向加密卷。

答案 2 :(得分:0)

插入前加密是一种好方法。密钥将位于每个应用程序或每个cassandra节点上。实际上没有太大区别,无论哪种方式,您都应该使用文件系统权限来限制对应用程序用户的密钥访问。从那里获得更安全的步骤就像要求在启动时输入密码而不是存储在磁盘上,但它使操作任务变得可怕。