Configurable base privileges #35865
Labels
enhancement
New value added to drive a business result
Team:Security
Team focused on: Auth, Users, Roles, Spaces, Audit Logging, and more!
This is an alternative solution to what is described in #38571
Problem
Currently, all feature privileges are automatically granted when a user assigns the base privilege of
all
orread
. This is beneficial when new features are added to Kibana, the user automatically gets access to them if they haveall
orread
base privileges. This mirrors the way that the Elasticsearch index and clusterall
privileges work.This becomes a hurdle when it comes to converting applications like Machine Learning or Reporting which currently rely on their own reserved roles to grant access to be first-class Kibana Privilege features. If we were to add a new Machine Learning feature, and use the Kibana Privileges to authorize the user, now any user that has the Kibana
all
base privilege now gets access to Machine Learning, when it used to require that the user was assigned themachine_learning_admin
ormachine_learning_user
roles.This behavior also potentially create a lot of manual work for administrators as we add new features to Kibana. If we were to add a feature to Kibana which an administrator doesn't want everyone to have access to, at this point they'd have to go through and modify all custom roles to no longer use the
all
orread
base privileges, but instead use feature level privileges. This is even more work if the administrator is using thekibana_user
reserved role to grant access to Kibana. Reserved roles can't be modified, so the administrator would have to create a new custom role and then update all users and role-mappings to use the new custom role.Solution
To solve both of these problems, we could allow the features which are part of the base
all
andread
privileges to be configurable. This would allow us to add features in a minor that aren't automatically part ofall
orread
until an administrator opts-in to this behavior. This would also allow the user to change the privileges which are granted with the existing roles, without requiring the administrator to mass update roles, or users/role-mappings. The ability to do so would only granted to users with themanage_security
cluster privilege.Outstanding Questions
Where do we store the list of features which are considered part of the
all
andread
base privileges? Are we comfortable storing these in the.kibana*
index? Starting in 7.0, end-users no longer have direct index access, so this is theoretically possible.Assuming there is a way to detect whether there's a new installation of Kibana, as opposed to an upgrade from a previous version, should we consider having new installations have all features part of "all" and "read" during a minor version? This would potentially allow new installations to automatically have applications like Machine Learning and Reporting part of the
all
andread
base privileges, while maintaining the behavior of existing installations?Tasks
the following is a very rough list of tasks, it's likely incomplete
The text was updated successfully, but these errors were encountered: