> For the complete documentation index, see [llms.txt](https://docs.e6data.com/query-engine/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.e6data.com/query-engine/guides/catalogs/amazon-s3-tables.md).

# Amazon S3 Tables

**AWS S3 Tables** is Amazon's managed Iceberg table service in S3. e6data can connect to S3 Tables buckets and query tables through the S3 Tables catalog APIs.

{% hint style="info" %}
S3 Tables is an AWS-specific offering, available on workspaces deployed in AWS regions. If your workspace is on Azure, use [Iceberg REST Catalog](/query-engine/guides/catalogs/iceberg-rest-catalog.md) instead with your own catalog server.
{% endhint %}

## Before you start

* Have your S3 Tables bucket ARN ready (format: `arn:aws:s3tables:<region>:<account>:bucket/<bucket-name>`).
* Have an IAM role (cross-account or same-account) with read permissions on the bucket - see [IAM permissions](#iam-permissions) below.
* For Serverless, complete the [AWS Serverless setup](/query-engine/guides/deployment/aws-serverless.md) so e6data has a path to assume your role.

## Connect to S3 Tables

1. Navigate to the **Catalogs** section from the sidebar and click **Create Catalog**.
2. Enter a **Catalog Name**. Lowercase letters, numbers, and hyphens are recommended (for example, `prod-s3-tables`).
3. Select **Catalog Type** as **AWS S3 Tables**.
4. (Optional) Enable **Governance**. Apply fine-grained access control via Ranger, OPA, or Lake Formation.
5. Provide the S3 Tables connection details:

   | Field            | Description                                                            |
   | ---------------- | ---------------------------------------------------------------------- |
   | **Region**       | AWS region where the S3 Tables bucket lives (for example, `us-east-1`) |
   | **Bucket ARN**   | Full ARN of the S3 Tables bucket                                       |
   | **IAM Role ARN** | Role e6data assumes to access the bucket                               |
   | **External ID**  | (Optional) External ID for cross-account assumption                    |
6. (Optional) Enable **Cross-Account Access** if the bucket is in a different AWS account from where e6data is set up. The Role ARN should target the role in the data-owning account; e6data's identity must be allowed to assume it.
7. Click **Test Connection** to verify connectivity. The test confirms the role can be assumed, the bucket is reachable, and e6data can list namespaces.
8. After a successful test, **select namespaces** to expose. Each namespace contains tables that become queryable.
9. Click **Create Catalog**.

## IAM permissions

The IAM role e6data assumes needs these S3 Tables and S3 permissions:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3tables:GetTableBucket",
        "s3tables:ListNamespaces",
        "s3tables:GetNamespace",
        "s3tables:ListTables",
        "s3tables:GetTable",
        "s3tables:GetTableMetadataLocation",
        "s3tables:GetTableData"
      ],
      "Resource": [
        "arn:aws:s3tables:<region>:<account>:bucket/<bucket-name>",
        "arn:aws:s3tables:<region>:<account>:bucket/<bucket-name>/*"
      ]
    }
  ]
}
```

For cross-account access, the trust policy on the role must allow e6data's identity to assume it. See [Cross-account access](/query-engine/guides/catalogs/cross-account.md) for the AWS pattern.

## Edit an S3 Tables catalog

Edit to update which namespaces it exposes, rotate the IAM role, or change governance settings.

1. Open the **Catalogs** page in the Compute Plane.
2. Find the S3 Tables catalog, click the row actions (⋮), and click **Edit**.
3. Update what you need - selected namespaces, **IAM Role ARN**, **External ID**, or **Governance settings**.
4. Click **Test Connection** if you changed the role or external ID.
5. Click **Update Catalog**.

A re-test is required when you change the Bucket ARN, Region, IAM Role ARN, External ID, or Cross-Account Access toggle. Namespace-selection changes don't. Namespace changes apply on the next query; IAM role changes take effect within seconds (queries in flight may briefly fail and need a retry).

## Delete an S3 Tables catalog

1. Open the **Catalogs** page, find the catalog, click the row actions (⋮), and click **Delete**. Confirm.

Deletion removes the catalog from this workspace; attached clusters lose access. The underlying S3 Tables bucket, tables, and data are **not** modified - e6data is read-only.

## See also

* [Catalogs overview](/query-engine/guides/catalogs.md)
* [Cross-account access](/query-engine/guides/catalogs/cross-account.md)
* [Iceberg REST Catalog](/query-engine/guides/catalogs/iceberg-rest-catalog.md) - for non-S3-Tables Iceberg catalogs


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.e6data.com/query-engine/guides/catalogs/amazon-s3-tables.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
