Automatically impose a filter for non-admin users manually scanning the metadata tables
- Dominant language
- Java
- Stars
- 1.2k
- Forks
- 487
- Avg merge
- 4d 5h
- Merged PRs (30d)
- 13
Description
**Is your feature request related to a problem? Please describe.**
It is well known that in order for metadata lookups to occur in Accumulo clients, they must scan the metadata table, which may leak information from user tables in the form of split points. Users can mitigate this risk by carefully selecting their split points, rather than allow them to be automatically derived from user data. However, highly dense data can still result in split points that expose too much information from the rows of user tables.
However, since the use case for users being able to read the metadata table is that they need to look up tablet location information to query user tables, they do not need to view any other table's metadata.
**Describe the solution you'd like**
When a user scans the metadata table, a filter should automatically be applied that checks each tableId, and skips over any that the user does not have READ permission on, unless the user has SYSTEM permission.
**Additional context**
This won't work for the root table, because the metadata table's own split points may contain user data, but the metadata table split points can't be hidden from the user. Another solution would be needed for that.
Additionally, this won't prevent user data from exposed to the user that would have otherwise been filtered from their view as a result of their Authorizations and the ColumnVisibility on the data in the user table. For that, user's should generally take care to not put sensitive information in the Row portion of their keys, that shouldn't be visible to any user with READ permission for the table.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by locating the metadata-table scan path and existing READ and SYSTEM permission checks; done means non-admin scans skip table IDs without READ permission while SYSTEM users retain access, with the root-table limitation preserved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authorization, databases, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100