AWS: AssumeRoleAwsClientFactory ignores glue.endpoint/kms.endpoint overrides
- 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
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