Add new setting property 'Sensitive' for tiering dynamic settings#20901
Add new setting property 'Sensitive' for tiering dynamic settings#20901cwperks wants to merge 4 commits intoopensearch-project:mainfrom
Conversation
Signed-off-by: Craig Perkins <cwperx@amazon.com>
PR Reviewer Guide 🔍(Review updated until commit d50d348)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to d50d348 Explore these optional code suggestions:
Previous suggestionsSuggestions 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✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #20901 +/- ##
============================================
- Coverage 73.30% 73.19% -0.12%
+ Complexity 72484 72432 -52
============================================
Files 5819 5819
Lines 331155 331167 +12
Branches 47840 47843 +3
============================================
- Hits 242769 242393 -376
- Misses 68876 69285 +409
+ Partials 19510 19489 -21 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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.