Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra中的数据审计_Cassandra_Cassandra 2.0 - Fatal编程技术网

Cassandra中的数据审计

Cassandra中的数据审计,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,如何对cassandra数据实施审计? 我正在寻找一个开源的选择 cassandra是否有助于审计的功能? 我可以使用触发器将记录记录记录到表中吗?我遵循了这个示例,当更新发生在另一个表上时,我能够将一条记录插入到triggers\u log表中。 但不确定如何捕获触发更新的用户/会话详细信息。我从CQLSH终端创建users和trigger\u日志表 create table AUDIT_LOG ( transaction_id int, entries map&

如何对cassandra数据实施审计? 我正在寻找一个开源的选择

cassandra是否有助于审计的功能? 我可以使用触发器将记录记录记录到表中吗?我遵循了这个示例,当更新发生在另一个表上时,我能够将一条记录插入到
triggers\u log
表中。 但不确定如何捕获触发更新的
用户/会话
详细信息。我从
CQLSH
终端创建
users
trigger\u日志表

create table AUDIT_LOG ( transaction_id int, entries map<text, text>, --> to capture the modifications done to the tables user varchar, //authenticated user time timestamp, primary key(transaction_id));
如果触发器不是正确的方法(任何spring AOP方法?),请建议其他方法。我也尝试了这个解决方案,但它没有打印sql执行的、经过身份验证的用户信息。

不幸的是,此时无法使用触发器,因为您需要的是包含用户信息且未传递给触发器的ClientState

我可以想到两种方法(您需要查看Cassandra代码库以更好地理解这些方法)

一种方法是AOP,即添加一个代理,该代理将AOP并用该代理启动Cassandra。需要切入点的类是QueryProcessor#processStatement方法。对该方法的调用将使用prepared语句和QueryState作为参数。从PreparedStatement可以识别用户的意图。getClientState将返回用户信息所在的ClientState

另一种方法涉及自定义身份验证程序和授权程序。这里描述了在Cassandra中配置此功能

您可以使用自定义授权程序扩展AllowAllAuthorizer(这将禁用权限缓存)。无论何时在授权人上收到授权请求,都可以将其记录下来。这种方法的缺点是,您不知道用户打算对该表做什么,只知道他正在请求对该表进行一些授权。权限是包含他想要对表执行的操作的权限,但不会传递给授权人


如果您决定采用这两种方法中的任何一种,如果您需要更多详细信息,您可以自由发布后续信息。

以下是执行Cassandra审核日志的示例:

该解决方案基于名为“cassandra.custom\u query\u handler\u class”的系统属性。它包含用户身份验证部分,假设使用了AWS系统管理器参数存储和LDAP服务器


顺便说一句,Cassandra v4.x()中似乎支持审计日志。

ecAudit是一个Apache Cassandra插件,它为Cassandra 3.0.x和3.11.x中的审计日志提供全面支持


它将为身份验证尝试和CQL查询创建审核记录。它允许您定义过滤器以限制基于角色/键空间/表/查询的审核日志。

为什么不使用?datastax enterprise是一种商业产品。所以它需要许可证,我正在寻找开源实现。谢谢你的回复。AOP似乎是一个很有前途的解决方案,但是需要使用Cassandra版本进行维护。我会接受这个答案并给予你赏金。@sumanj你是不是在processStatement方法中从CQLStatement对象中获得了原始CQL字符串?@TommiL。我没有调查APO方法,因此无法回答您的问题。我们放弃了对基于开源的审核解决方案的这一要求。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么存在,然后引用您链接到的页面的最相关部分,以防目标页面不可用。 CREATE TABLE users ( user_id int PRIMARY KEY, fname text, lname text );