[DISCUSS] Design: Per-Bucket Object Storage Credentials and Key Rotation - #14053
Open
dheeraj12347 wants to merge 1 commit into
Open
[DISCUSS] Design: Per-Bucket Object Storage Credentials and Key Rotation#14053dheeraj12347 wants to merge 1 commit into
dheeraj12347 wants to merge 1 commit into
Conversation
Contributor
Author
|
Hi @wido, @DaanHoogland and Mitchell Drage, I’ve prepared a design-only PR based on the per-bucket object storage credentials and key rotation discussion: The proposal covers the per-bucket credential model, two-key rotation, revocation, API/persistence changes, backward compatibility, migration, provider impact, and security considerations. I’ve intentionally left the implementation out for now so the design and open architectural questions can be reviewed first. I’d especially appreciate your feedback on the credential model, rotation semantics, migration approach, and whether per-bucket credentials should be the default for new buckets or initially opt-in. |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Purpose
This PR proposes a design for introducing per-bucket object storage credentials and credential rotation in Apache CloudStack.
This is intentionally a design-only PR. No implementation is included at this stage. The goal is to discuss and validate the proposed architecture before implementation begins.
Background
Currently, object storage credentials are provisioned at the CloudStack account level. Multiple buckets belonging to the same account can therefore share the same object storage credentials.
This creates several limitations:
The proposed design introduces bucket-scoped credentials while maintaining backward compatibility for existing buckets.
Proposed Design
The proposal follows the per-bucket credential and two-key rotation approach discussed on the CloudStack mailing list.
Each bucket should be able to have two independently managed credential slots:
This allows one credential to be replaced or rotated while the other remains usable.
The design also considers:
Backward Compatibility
Existing buckets should not be forced to change credentials during an upgrade.
Where a bucket does not have bucket-specific credentials, the existing account-level credential mechanism can continue to be used.
New buckets can use bucket-specific credentials according to the final agreed design.
An explicit migration mechanism can be provided for existing buckets.
Provider Impact
The design considers the existing object storage providers and driver abstraction, including:
Provider-specific implementation details will be addressed after the common architecture and lifecycle semantics are agreed upon.
Open Questions
Feedback is particularly requested on:
Scope
This proposal is intentionally focused on bucket-scoped credentials and key rotation.
An IAM/service-account style model where identities are completely decoupled from buckets and managed independently through policies is considered out of scope for this change.
Feedback Requested
Before implementation, feedback is requested on the overall architecture, credential lifecycle, persistence model, API design, migration strategy, and provider abstraction.
Implementation will follow after the design has been reviewed and the open architectural questions have been resolved.