Skip to content
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

[FEATURE] When internal security configuration is updated, its should be confirmed to be a new value #3275

Closed
4 tasks
peternied opened this issue Aug 31, 2023 · 5 comments · Fixed by #4002
Closed
4 tasks
Assignees
Labels
enhancement New feature or request good first issue These are recommended starting points for newcomers looking to make their first contributions. help wanted Community contributions are especially encouraged for these issues. triaged Issues labeled as 'Triaged' have been reviewed and are deemed actionable.

Comments

@peternied
Copy link
Member

peternied commented Aug 31, 2023

Is your feature request related to a problem?

When looking into how SegRep [1] could impact the read consistency of the security configuration among the different nodes in a cluster, it exposes that on reload of configuration there is no mechanism in place to be sure the loaded configuration is actually newer.

What solution would you like?

When configuration updates the payload should include which configurations are to be reloaded, as well as an indicator of the change. In some systems this is an hash of the new config, ETAG, lastModified date or other value. We should include a value like this that is verified by nodes on reload of configuration that can be checked to confirm the configuration is at least as up to date as when the request was made.

Note; there should be wiggle room if multiple update configuration requests are in flight at once.

What alternatives have you considered?

The current system has no correctness assurances, we could continue doing nothing. Alternatively, from the node that processes the configuration update could query the other nodes in the cluster to be sure if they have gotten the update and then reissue updates until all nodes are complete.

Exit Criteria

  • Author a test case that makes a configuration changes that will race against once another that will confirm configurations can get out of sync
    • An approach could be updating the same users password from each nodes at the same time, then check to see if each individual node has the same password value, or if any are different.
  • Figure out how the best way an atomic change was made to the cluster
    • This problem isn't unique problem to security plugin's, maybe only triggering the fan out request from the cluster manager can ensure consistency
  • Plumb through an identifier to validate the loaded config matched / doesn't match the expected
  • Add mechanism to resolved the mismatched configuration

Do you have any additional context?

@peternied peternied added enhancement New feature or request untriaged Require the attention of the repository maintainers and may need to be prioritized labels Aug 31, 2023
@peternied
Copy link
Member Author

I've developed a prototype of this change that uses the sequence number from the configuration, might be viable to address this problem.

@stephen-crawford
Copy link
Contributor

[Triage] Thanks for filing this issue @peternied. This issue has a clear solution outlined so seems actionable. Given the starting point Peter provided we can also mark good first issue and help wanted since that should be enough to point someone in the right direction.

@stephen-crawford stephen-crawford added good first issue These are recommended starting points for newcomers looking to make their first contributions. help wanted Community contributions are especially encouraged for these issues. triaged Issues labeled as 'Triaged' have been reviewed and are deemed actionable. and removed untriaged Require the attention of the repository maintainers and may need to be prioritized labels Sep 11, 2023
@peternied
Copy link
Member Author

I'm going to remove good first issue this is a complex distributed systems problem that needs to be piped through the security plugin - we wouldn't mind help, but I would not want someone to pick up this task without being familiar with the existing configuration system update process.

@peternied
Copy link
Member Author

@willyborankin
Copy link
Collaborator

@peternied I will take it after #4002 been merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue These are recommended starting points for newcomers looking to make their first contributions. help wanted Community contributions are especially encouraged for these issues. triaged Issues labeled as 'Triaged' have been reviewed and are deemed actionable.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants