-
Notifications
You must be signed in to change notification settings - Fork 3.7k
feat: implement KMS key revocation and coordinated rotation #45936
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
base: master
Are you sure you want to change the base?
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: XuanYang-cn The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
[ci-v2-notice]
To rerun ci-v2 checks, comment with:
If you have any questions or requests, please contact @zhikunyao. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #45936 +/- ##
===========================================
+ Coverage 76.08% 82.73% +6.64%
===========================================
Files 1884 524 -1360
Lines 294531 82326 -212205
===========================================
- Hits 224097 68111 -155986
+ Misses 63028 14215 -48813
+ Partials 7406 0 -7406
🚀 New features to boost your workflow:
|
Adds KMS key state monitoring and coordinated key rotation to prevent message queue consumption failures during encryption key updates. Key Changes: - Add KeyManager in RootCoord for periodic KMS state polling - Integrate KeyManager with QuotaCenter for access denial - Implement revocation checks in Proxy SimpleLimiter - Add rotation callback coordination via AlterDatabase broadcast - Drop internal properties before metadata persistence - Add GetStates() and InvalidateCipherCache() to hookutil Access Denial: - Revoked keys: Release collections + deny DML/DQL (DDL still allowed) - Check performed on every request at proxy layer - Manual LoadCollection required after key recovery Key Rotation Flow: 1. CipherPlugin rotates key, writes to etcd 2. Plugin invokes onKeyRotated callback 3. KeyManager broadcasts AlterDatabase with internal property 4. StreamingNode receives message and reloads cipher 5. ACK callback invalidate Proxy db cache and refresh key See also: milvus-io#45117, #45981, milvus-io#45242 Signed-off-by: yangxuan <[email protected]>
Signed-off-by: yangxuan <[email protected]>
ae3463f to
db6c871
Compare
Adds KMS key state monitoring and coordinated key rotation to prevent message queue consumption failures during encryption key updates.
Key Changes:
Access Denial:
Key Rotation Flow:
See also: #45117, #44981, #45242