apache / apache/iceberg

AWS: AssumeRoleAwsClientFactory ignores glue.endpoint/kms.endpoint overrides

Open Beginner friendly
#17,047 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
9.2k
Forks
3.5k
Avg merge
2d 11h
Merged PRs (30d)
132

Description

**Apache Iceberg version**
main @ 035fc1e40

**Query engine**
N/A — engine-agnostic (aws/ client factory)

**Please describe the bug**
`AssumeRoleAwsClientFactory.glue()`/`.kms()` (`aws/src/main/java/org/apache/iceberg/aws/AssumeRoleAwsClientFactory.java`, lines 79-95) build clients without applying the `glue.endpoint`/`kms.endpoint` overrides configured via `AwsProperties` — they never call `applyGlueEndpointConfigurations`/`applyKmsEndpointConfigurations`. The sibling `dynamo()` in the same class correctly calls `.applyMutation(awsProperties::applyDynamoDbEndpointConfigurations)`, and `AwsClientFactories.DefaultAwsClientFactory.glue()`/`.kms()` (`aws/src/main/java/org/apache/iceberg/aws/AwsClientFactories.java`, lines 145-164) both apply their respective endpoint configurations.

`LakeFormationAwsClientFactory.kms()` (`aws/src/main/java/org/apache/iceberg/aws/lakeformation/LakeFormationAwsClientFactory.java`, lines 95-108, registered-table branch) has the same gap.

**Steps to reproduce**
Configure a catalog with `client.factory=org.apache.iceberg.aws.AssumeRoleAwsClientFactory`, plus `client.assume-role.arn`, `client.assume-role.region`, and `glue.endpoint`/`kms.endpoint` pointing at a custom endpoint (e.g. VPC or FIPS endpoint). Expected: `glue()`/`kms()` clients connect to the configured endpoint. Actual: the setting is silently ignored and the client connects to the default AWS endpoint.

**Additional context**
N/A — root cause and fix identified; PR forthcoming.

Contributor guide

Open the contributing guide

Research direction

Start with aws/src/main/java/org/apache/iceberg/aws/AssumeRoleAwsClientFactory.java, inspecting glue() and kms() alongside dynamo() and the corresponding methods in AwsClientFactories.java. Also inspect LakeFormationAwsClientFactory.java for its registered-table kms() path; done means configured glue.endpoint and kms.endpoint overrides are honored by all named factories.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, java
Domain
backend, cloud
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.