Class SigV4ConnectionCredentialVendor
java.lang.Object
org.apache.polaris.service.credentials.connection.SigV4ConnectionCredentialVendor
- All Implemented Interfaces:
org.apache.polaris.core.credentials.connection.ConnectionCredentialVendor
@RequestScoped
@Priority(100)
public class SigV4ConnectionCredentialVendor
extends Object
implements org.apache.polaris.core.credentials.connection.ConnectionCredentialVendor
Connection credential vendor for AWS SigV4 authentication.
This vendor uses Polaris's AWS IAM service identity to assume a customer-provided IAM role via AWS STS, generating temporary credentials that Polaris uses to access external AWS services (e.g., AWS Glue catalog) with SigV4 request signing.
Flow:
- Receives Polaris's
AwsIamServiceIdentityCredential(the IAM user/role Polaris owns) - Extracts customer's role ARN from
SigV4AuthenticationParametersDpo - Calls AWS STS AssumeRole to get temporary credentials
- Returns temporary access key, secret key, and session token
This is the default implementation with @Priority(CredentialVendorPriorities.DEFAULT).
Custom implementations can override this by providing a higher priority value.
-
Constructor Summary
ConstructorsConstructorDescriptionSigV4ConnectionCredentialVendor(org.apache.polaris.core.storage.aws.StsClientProvider stsClientProvider, org.apache.polaris.core.identity.provider.ServiceIdentityProvider serviceIdentityProvider) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.polaris.core.credentials.connection.ConnectionCredentialsgetConnectionCredentials(org.apache.polaris.core.connection.ConnectionConfigInfoDpo connectionConfig)
-
Constructor Details
-
SigV4ConnectionCredentialVendor
@Inject public SigV4ConnectionCredentialVendor(org.apache.polaris.core.storage.aws.StsClientProvider stsClientProvider, org.apache.polaris.core.identity.provider.ServiceIdentityProvider serviceIdentityProvider)
-
-
Method Details
-
getConnectionCredentials
@Nonnull public org.apache.polaris.core.credentials.connection.ConnectionCredentials getConnectionCredentials(@Nonnull org.apache.polaris.core.connection.ConnectionConfigInfoDpo connectionConfig) - Specified by:
getConnectionCredentialsin interfaceorg.apache.polaris.core.credentials.connection.ConnectionCredentialVendor
-