Hey,
I’m developing a solution to store and retrieve geographic data from an OpenSearch data storage. Data entries look like the following:
{
"cityid": "a unique id of the city",
"city": "the name of a city",
"countyid" the county of the city",
"payload": {
"some": "payload"
}
}
The payload is sensitive data with requires the following restrictions to be implemented:
- an analyst must be granted access to the data of a city individually by an administrator
- if an analyst gets access to the data of a
city
, he must get access to the correspondingcountyid
and all other entries with the samecountyid
- there will be more than one analyst accessing the data of a specific city
- there will be incremental updates to the data set, possibly adding unseen cities in existing counties, or even new counties
The data set is already quite huge (millions of entries, thousands of cities and hundreds of counties), with a potential large number of analysts (1000+).
Using document level security looks like the way to go. Problem is, I currently do not see a way to enforce the rules without implementing some maintenance tasks, e.g., executed via CRON or a after finishing ingesting new data.
Do you have any ideas for using document level security (or other schemes of permission) to achieve the outlined view restrictions on the data, if possible without any further piece of software involved?
Thank you!