Skip to content

Aliyun: Add Aliyun auth type for REST catalog - #17392

Draft
yanggl29 wants to merge 1 commit into
apache:mainfrom
yanggl29:aliyun-auth-type
Draft

Aliyun: Add Aliyun auth type for REST catalog#17392
yanggl29 wants to merge 1 commit into
apache:mainfrom
yanggl29:aliyun-auth-type

Conversation

@yanggl29

Copy link
Copy Markdown

Backgroud

This PR adds built-in Alibaba Cloud authentication support for Iceberg REST
catalogs through rest.auth.type=aliyun.

It follows the dev-list discussion:

https://lists.apache.org/thread/2jrm755rzj3930wmgvcrtw73qzhnl44n

MaxCompute (ODPS) REST Catalog requests require Alibaba Cloud AK/SK signing.
Without built-in support, users must package and configure a custom
AuthManager JAR for each Spark, Flink, or other Iceberg deployment.

Changes

  • Register aliyun as a built-in REST auth type.
  • Add AliyunAuthManager and AliyunAuthSession.
  • Add a pluggable AliyunRequestSigner interface.
  • Add the ODPS signer with V2 and V4 signing support.
  • Support AK/SK credentials, optional STS tokens, and environment-variable fallback.
  • Add unit tests for manager loading, credential validation, request
    canonicalization, V2/V4 signing, STS tokens, paths, and headers.

The change is additive: existing defaults remain unchanged, no REST
specification files are modified, and no new external runtime dependency is
introduced.

Configuration

rest.auth.type=aliyun
aliyun.auth.signing-name=odps
aliyun.auth.access-key-id=<access-key-id>
aliyun.auth.access-key-secret=<access-key-secret>

# Optional: enable V4 signing
aliyun.auth.region=cn-hangzhou

# Optional: temporary credential
aliyun.auth.sts-token=<security-token>

Signing implementation

The ODPS canonical request and signing logic is adapted from the Alibaba Cloud
ODPS Java SDK release/0.58.x:

Only the required signing logic is included to avoid depending on the full ODPS
SDK. The referenced sources are licensed under Apache License 2.0.

Feedback is especially welcome on the aliyun auth type name and the
provider-level signer abstraction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant