Class LakeFormationAwsClientFactory
- java.lang.Object
-
- org.apache.iceberg.aws.AssumeRoleAwsClientFactory
-
- org.apache.iceberg.aws.lakeformation.LakeFormationAwsClientFactory
-
- All Implemented Interfaces:
java.io.Serializable
,AwsClientFactory
public class LakeFormationAwsClientFactory extends AssumeRoleAwsClientFactory
This implementation of AwsClientFactory is used by default ifAwsProperties.GLUE_LAKEFORMATION_ENABLED
is set to true. It uses the default credential chain to assume role. Third-party engines can further extend this class to any custom credential setup.It extends AssumeRoleAwsClientFactory to reuse the assuming-role approach for all clients except S3 and KMS. If a table is registered with LakeFormation, the S3/KMS client will use LakeFormation vended credentials, otherwise it uses AssumingRole credentials. For using LakeFormation credential vending for a third-party query engine, see: https://docs.aws.amazon.com/lake-formation/latest/dg/register-query-engine.html
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
LF_AUTHORIZED_CALLER
-
Constructor Summary
Constructors Constructor Description LakeFormationAwsClientFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
initialize(java.util.Map<java.lang.String,java.lang.String> catalogProperties)
Initialize AWS client factory from catalog properties.software.amazon.awssdk.services.kms.KmsClient
kms()
Create a AWS KMS clientsoftware.amazon.awssdk.services.s3.S3Client
s3()
create a Amazon S3 client-
Methods inherited from class org.apache.iceberg.aws.AssumeRoleAwsClientFactory
applyAssumeRoleConfigurations, awsProperties, dynamo, glue, region
-
-
-
-
Field Detail
-
LF_AUTHORIZED_CALLER
public static final java.lang.String LF_AUTHORIZED_CALLER
- See Also:
- Constant Field Values
-
-
Method Detail
-
initialize
public void initialize(java.util.Map<java.lang.String,java.lang.String> catalogProperties)
Description copied from interface:AwsClientFactory
Initialize AWS client factory from catalog properties.- Specified by:
initialize
in interfaceAwsClientFactory
- Overrides:
initialize
in classAssumeRoleAwsClientFactory
- Parameters:
catalogProperties
- catalog properties
-
s3
public software.amazon.awssdk.services.s3.S3Client s3()
Description copied from interface:AwsClientFactory
create a Amazon S3 client- Specified by:
s3
in interfaceAwsClientFactory
- Overrides:
s3
in classAssumeRoleAwsClientFactory
- Returns:
- s3 client
-
kms
public software.amazon.awssdk.services.kms.KmsClient kms()
Description copied from interface:AwsClientFactory
Create a AWS KMS client- Specified by:
kms
in interfaceAwsClientFactory
- Overrides:
kms
in classAssumeRoleAwsClientFactory
- Returns:
- kms client
-
-