-
Notifications
You must be signed in to change notification settings - Fork 25.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove system-index write-access from superuser role #81400
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
It is not yet decided whether we want to go down this path at this point in time. This PR is to explore what it would look like if we did make that decision. |
ywangd
reviewed
Dec 8, 2021
...core/src/main/java/org/elasticsearch/xpack/core/security/authz/store/ReservedRolesStore.java
Outdated
Show resolved
Hide resolved
2 tasks
This was referenced Jan 19, 2022
ywangd
added a commit
to ywangd/elasticsearch
that referenced
this pull request
Feb 8, 2022
The _xpack_security user no longer has the superuser role since elastic#81400
ywangd
added a commit
that referenced
this pull request
Feb 14, 2022
The _xpack_security user no longer has the superuser role since #81400
ywangd
added a commit
to ywangd/elasticsearch
that referenced
this pull request
Feb 14, 2022
The _xpack_security user no longer has the superuser role since elastic#81400
ywangd
added a commit
to ywangd/elasticsearch
that referenced
this pull request
Feb 14, 2022
The _xpack_security user no longer has the superuser role since elastic#81400
elasticsearchmachine
pushed a commit
that referenced
this pull request
Feb 14, 2022
elasticsearchmachine
pushed a commit
that referenced
this pull request
Feb 14, 2022
tvernum
added a commit
to tvernum/elasticsearch
that referenced
this pull request
Mar 31, 2022
In elastic#81400 we changed `superuser` to no longer have _every_ privilege. Consequently, we also removed the special case code that existed that would ignore all other roles for any user that had superuser role. However, we added some special handling so that failing to resolve those other roles would not block superuser access - when a user has superuser role, any failures in role resolution will be effectively ignored, and the user will be given the superuser role only. However, this failure handling did not account for the loading of application privileges. If application privileges needed to be loaded, but failed, this could prevent resolution of the superuser role. This change extends the failure handling to encompass the full resolution of roles, and fallback to superuser only if other roles or application privileges are unavailable
elasticsearchmachine
pushed a commit
that referenced
this pull request
Apr 1, 2022
In #81400 we changed `superuser` to no longer have _every_ privilege. Consequently, we also removed the special case code that existed that would ignore all other roles for any user that had superuser role. However, we added some special handling so that failing to resolve those other roles would not block superuser access - when a user has superuser role, any failures in role resolution will be effectively ignored, and the user will be given the superuser role only. However, this failure handling did not account for the loading of application privileges. If application privileges needed to be loaded, but failed, this could prevent resolution of the superuser role. This change extends the failure handling to encompass the full resolution of roles, and fallback to superuser only, whenever other roles or application privileges are unavailable Relates: #85312
tvernum
added a commit
to tvernum/elasticsearch
that referenced
this pull request
Apr 1, 2022
In elastic#81400 we changed `superuser` to no longer have _every_ privilege. Consequently, we also removed the special case code that existed that would ignore all other roles for any user that had superuser role. However, we added some special handling so that failing to resolve those other roles would not block superuser access - when a user has superuser role, any failures in role resolution will be effectively ignored, and the user will be given the superuser role only. However, this failure handling did not account for the loading of application privileges. If application privileges needed to be loaded, but failed, this could prevent resolution of the superuser role. This change extends the failure handling to encompass the full resolution of roles, and fallback to superuser only, whenever other roles or application privileges are unavailable Relates: elastic#85312
tvernum
added a commit
to tvernum/elasticsearch
that referenced
this pull request
Apr 1, 2022
In elastic#81400 we changed `superuser` to no longer have _every_ privilege. Consequently, we also removed the special case code that existed that would ignore all other roles for any user that had superuser role. However, we added some special handling so that failing to resolve those other roles would not block superuser access - when a user has superuser role, any failures in role resolution will be effectively ignored, and the user will be given the superuser role only. However, this failure handling did not account for the loading of application privileges. If application privileges needed to be loaded, but failed, this could prevent resolution of the superuser role. This change extends the failure handling to encompass the full resolution of roles, and fallback to superuser only, whenever other roles or application privileges are unavailable Relates: elastic#85312
elasticsearchmachine
pushed a commit
that referenced
this pull request
Apr 1, 2022
In #81400 we changed `superuser` to no longer have _every_ privilege. Consequently, we also removed the special case code that existed that would ignore all other roles for any user that had superuser role. However, we added some special handling so that failing to resolve those other roles would not block superuser access - when a user has superuser role, any failures in role resolution will be effectively ignored, and the user will be given the superuser role only. However, this failure handling did not account for the loading of application privileges. If application privileges needed to be loaded, but failed, this could prevent resolution of the superuser role. This change extends the failure handling to encompass the full resolution of roles, and fallback to superuser only, whenever other roles or application privileges are unavailable Relates: #85312
elasticsearchmachine
pushed a commit
that referenced
this pull request
Apr 1, 2022
In #81400 we changed `superuser` to no longer have _every_ privilege. Consequently, we also removed the special case code that existed that would ignore all other roles for any user that had superuser role. However, we added some special handling so that failing to resolve those other roles would not block superuser access - when a user has superuser role, any failures in role resolution will be effectively ignored, and the user will be given the superuser role only. However, this failure handling did not account for the loading of application privileges. If application privileges needed to be loaded, but failed, this could prevent resolution of the superuser role. This change extends the failure handling to encompass the full resolution of roles, and fallback to superuser only, whenever other roles or application privileges are unavailable Relates: #85312
robb3rt
pushed a commit
that referenced
this pull request
Jul 11, 2022
Adjusted the document to ensure alignment and correctness after following changes were made: #81400 and adjusted for proposed solution mentioned here: #81451 (comment)
a |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
>breaking
:Security/Authorization
Roles, Privileges, DLS/FLS, RBAC/ABAC
Team:Security
Meta label for security team
v8.0.0-rc2
v8.1.0
WIP
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit changes the
superuser
role so that it no longer has any sort of write access to restricted indices (system indices).This improves the safety ad security of the cluster, as it means that there are no out-of-the-box users or roles that can write to, delete or close the security index.
Superusers can still read from (and monitor) system indices.
Done
superuser
role descriptor (46614de)superuser
(7da9999)test_superuser
to manipulate system indicessuperuser
if the user has other roles as well.