Add new setting property 'Sensitive' for tiering dynamic settings#20901
Add new setting property 'Sensitive' for tiering dynamic settings#20901andrross merged 7 commits intoopensearch-project:mainfrom
Conversation
Signed-off-by: Craig Perkins <cwperx@amazon.com>
PR Reviewer Guide 🔍(Review updated until commit 5f0621e)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to 5f0621e Explore these optional code suggestions:
Previous suggestionsSuggestions up to commit d50d348
Suggestions up to commit b0ab01c
Suggestions up to commit 1ce627d
|
Signed-off-by: Craig Perkins <cwperx@amazon.com>
|
Persistent review updated to latest commit 79c3855 |
|
❌ Gradle check result for 79c3855: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
|
If this property is reserved for security relevant settings what do you think about forcing sensitive settings to be persistant as well? This might prevent users from having unexpected security relevant changes due to a cluster restart, blue green deployment, or a process crash on a single node cluster. |
That's a good idea. Let me check what it would entail. |
Signed-off-by: Craig Perkins <cwperx@amazon.com>
|
Persistent review updated to latest commit b0ab01c |
|
❌ Gradle check result for b0ab01c: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
|
❌ Gradle check result for b0ab01c: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Craig Perkins <cwperx@amazon.com>
|
@finnegancarroll I was able to block transient in this PR. Please take a look at the latest changes when you have some time. |
|
Persistent review updated to latest commit d50d348 |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #20901 +/- ##
============================================
- Coverage 73.30% 73.30% -0.01%
- Complexity 72484 72560 +76
============================================
Files 5819 5819
Lines 331155 331385 +230
Branches 47840 47885 +45
============================================
+ Hits 242769 242934 +165
- Misses 68876 68940 +64
- Partials 19510 19511 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
server/src/main/java/org/opensearch/common/settings/Setting.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Craig Perkins <cwperx@amazon.com>
…arch into sensitive-setting
|
Persistent review updated to latest commit 5f0621e |
Description
Companion Security PR: opensearch-project/security#6016
This PR adds a new Setting property called
Sensitivewhich is intended to help tier settings for authorization for different callers.Currently, the security repo has dynamic settings through the security index (see config.yml) and still have some static cluster settings in
opensearch.yml. The security index has had some bwc issues (particularly if a new setting is added from one minor version to the next and its persisted in a mixed cluster during rolling upgrade) and some of these settings would be better suited for using the existing settings mechanism.In order to use the existing settings mechanism, the security plugin needs a mechanism for distinguishing which settings should be toggleable by a securityadmin vs any user with
cluster:admin/settings/putpermission.I propose adding a new setting property called
Sensitiveso that the security plugin can check a settings update payload to see if any sensitive settings are being updated. If the payload contains a sensitive setting, then only a security admin (all_accessorsecurity_managerroles) should be able to update, otherwise any user withcluster:admin/settings/putshould be able to update.Related Issues
Related to:
plugins.security.dfm_empty_overrides_alldynamically toggleable security#6002Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.