Thanks for your response!
Limit the access to the indexes that the user can access via their role, and then take away the capability from that role to do any writes.
So this sentence is rather promising to me. Our current setup is as follows:
User role is mostly default. As per the roles section under authorisation, it has the following capabilities (none are inherited):
accelerate_search
change_own_password
get_metadata
get_typeahead
input_file
list_inputs
output_file
pattern_detection
request_remote_tok
rest_apps_view
rest_properties_get
rest_properties_set
search
The user role also has a number of indexes (upwards of 30) configured in both srchIndexesAllowed and srchIndexesDefault (both the same), but there are easily another 20-30 indexes which are not configured for the default user role. The user role can write to those indexes that have been disallowed -- we have tested with a given user who wrote a log entry from an index they could see into an index they were unable to see, using the collect command.
So my questions would be, with regard to the first sentence, are: Is there another way of limiting role access to a given index? Which capability grants write access to indexes? What capability can be used to disallow access to the 'collect' command?
You can also prevent the index from being written to from the Search Head by updating the local search head indexes.conf to have:
This is a potential idea that we can use, but we'd have to adjust it in a way that kind of moots the point of having a search head cluster. If we were to prevent the search head cluster from writing to indexes, then we would have to set up search heads outside of the cluster to run scheduled searches which then write to summary indexes, as we heavily use the summary indexes. This would mean creating a standalone search head which would be able to do the summary index writing -- however this is something we are trying to avoid, as we are trying to make our Splunk setup as resilient as possible in terms of site failure and failovers: every search head on one site should have a counterpart on the other site, ready to take over automagically.
Depending on what you are trying to prevent, either Users being malicious, or users making mistakes. Using a deployment server to manage forwarders really cuts down on end users being able to change the configs.
We have two deployment servers (active & passive / hot-warm), but most users (apart from on Windows) do not have the user permissions to modify Splunk forwarders or their configs without prior approval and action from the appropriate administrative team.
The network ACL is worth another look from our side, as there are some clear subnet divides that we could enforce, but this is too general a solution, unfortunately.
... View more