SigV4 Auth Support for Catalog Federation - Part 2: Connection Config Persistence #1900
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.
Milestones
This is Part 2 of the [Splitting] Initial SigV4 Auth Support for Catalog Federation. Upcoming parts will build on this system:
Introduction
This PR introduces DPOs (data persistence objects) that allow Polaris to persist SigV4 authentication parameters and service identity references associated with remote catalog connections.
The core idea is to persist a reference to Polaris's own service credentials (e.g. AWS IAM user) rather than the credentials themselves. This enables secure, pluggable credential resolution from external secret stores (e.g. a vault or secret manager) and supports the ability to assume user-specified roles at runtime via SigV4.
Design Overview
Each
ConnectionConfigInfoDpo
(used for remote catalog federation) now contains a ServiceIdentityInfoDpo, which in turn holds a ServiceSecretReference. This design allows:SigV4AuthenticationParametersDpo
(supplied by the user)This separation of identity metadata and authentication parameters provides a secure and flexible foundation for credential management.
Key Components
SigV4AuthenticationParametersDpo
: Holds user-supplied role assumption parameters like:roleArn
roleSessionName
: optionalexternalId
: optionalServiceIdentityInfoDpo
: Stores metadata about the Polaris-side service identity, including a secret reference.AwsIamServiceIdentityInfoDpo
:ServiceSecretReference
: Specialized version of ServiceIdentityInfoDpo for AWS IAM. It includes:iamArn
: Polaris's AWS user or roleServiceSecretReference
: (points to credentials in a vault)ServiceSecretReference
: Points to a credential (e.g., in a vault). This is a logical URN or identifier — Polaris never persists raw secrets.Flowchart