| title | Glue |
|---|
The AWS Glue integration in Elementary will allow you to automatically monitor volume & freshness anomalies in your Iceberg tables in Glue, by continouously syncing metadata about Iceberg snapshots.
If you connected Amazon Athena as your DWH integration - there's no need to add a Glue integration, as the Athena integration already contains all the required access for Glue.First, you'll need to create an IAM policy with the following permissions:
- GluePermissions: Enables reading metadata about tables in your Glue catalog.
- S3IcebergMetadataReadAccess: Grants access metadata-only access to files of your Iceberg tables. These metadata files contain statistics about Iceberg snapshots, such as update cadence and row count changes.
Here is an example of a JSON policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GluePermissions",
"Effect": "Allow",
"Action": [
"glue:GetTable",
"glue:GetTables"
],
"Resource": "*"
},
{
"Sid": "S3IcebergMetadataReadAccess",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::your-iceberg-tables-bucket/*metadata.json"
]
}
]
}Elementary supports two authentication methods for connecting to Glue:
This is the recommended approach as it provides better security and follows AWS best practices. Learn more about AWS IAM roles.
-
Create an IAM Role:
- Go to AWS IAM Console
- Create a new role
- Select "Another AWS account" as the trusted entity
- Enter Elementary's AWS account ID:
743289191656 - (Optional but recommended) Enable "Require external ID" and set a value
- Attach the policy created in step 1
-
Note down the following information:
- Role ARN
- External ID (if you enabled it) Learn more about external IDs.
This method is less secure as it requires permanent credentials. We recommend using AWS Role authentication instead.
-
Create an IAM User:
- Go to AWS IAM Console
- Create a new user, that will be used by elementary to connect to Glue
- Enable programmatic access
- Attach the policy created in step 1
-
Note down the following information:
- AWS Access Key ID of the new elementary glue user
- AWS Secret Access Key of the new elementary glue user
Navigate to the Account settings > Environments and choose the environment to which you would like to connect AWS Glue. Under the "Metadata Layer" section, please choose Glue.
Regardless of the authentication method you choose, you'll need to provide:
- Connection Name: A descriptive name for your connection (e.g. "Datalake"). Needs to be unique if you're adding more than one metadata integration.
- Region: The AWS region where your Glue catalog is located
Based on your chosen authentication method:
- Select "AWS Role" as the authentication method
- Enter your role ARN
- Enter your external ID (if you enabled it)
- Select "Access Key" as the authentication method
- Enter your AWS Access Key ID
- Enter your AWS Secret Access Key