I am using OMS add-on. I have one index with one host,source and source type.
Now I want to limit access to specific table like below:-
1. index=idx table=security-----------User1
2. index=idx table=info---------------User2
I am able to create a separate index, but that also causes it to reindex data as one user wants to view all data and not any specific events/table ..So what will be best way to achieve this?
i think you can edit the user1 user2 roles such a way that they have access to the respective tables.
You could do that by creating separate roles and setting Search Filters for each of those. But search filters based on search time extracted fields are basically not secure, as users have control over the search time extractions. See also: http://docs.splunk.com/Documentation/Splunk/latest/Security/Addandeditroles#Search_filter_format
In general the recommended way to segregate access is by putting data in separate indexes. If you have users that need to access all data, you can do two indexes named like:
idx:info and then the users that have access to both, can use
thanks @FrankVl search filters are applicable to host source and sourcetype but not applicable to specific fields like in my case table=security also can you please elaborate about security isssue-" users have control over the search time extractions."
As per docs it seems I can write in search filters
index=indexname table=security but can you please elaborate about security issue...
As from last 2 months i was having only one input which indexing all data without any filter and now the requirement come about limiting access so thinking to use search filters but first want to undersatnd about security issue..
A user could create a knowledge object that overwrites the value of the table field, to get access to all the data.
Thanks @FrankVI..last question can you please give one example about how can I get access to whole index by editing knowledge objects
If your search filter restricts access based on
table=info. I can for instance define a calculated field table for that sourcetype, that just sets
table=info, overwriting the actual value, which means the search filter will always match and return all the events, regardless of the original table value.
Hi @FrankVI, my field name is
$table and suppose one role have access to
index=abc "$table"=info then what calculated fields (eval expression) give me access to all
Like I said: a user could define something like
EVAL-$table = "info" , so the field always gets the "info" value (regardless of what was actually in the event). That way the filter will allow all events to go through.