This guide describes how to configure customer-managed storage buckets for use with Foundry Iceberg tables. These steps are only required if you are using bring-your-own-bucket (BYOB) storage. If you are using Foundry-managed storage, no additional configuration is needed.
Foundry currently supports BYOB storage on AWS (S3) and Azure (ADLS). Google Cloud Storage is not currently supported.
Provision your storage bucket ideally in the same region as your Foundry instance. While not required, this is recommended for optimal performance.
Configure appropriate network access on the storage account to permit connectivity from Foundry.
Provision an S3 bucket.
Create an IAM role with the following permissions on the S3 bucket and the KMS key used to encrypt it:
| Permission | Resource |
|---|---|
s3:DeleteObject | S3 bucket |
s3:GetObject | S3 bucket |
s3:ListBucket | S3 bucket |
s3:PutObject | S3 bucket |
kms:Decrypt | KMS key |
kms:Encrypt | KMS key |
kms:GenerateDataKey | KMS key |
sts:GetFederationToken | — |
Create an IAM user or OIDC identity provider that can assume the role you created. You will use the IAM user's credentials or the OIDC provider's tokens when configuring the Data Connection source. See the S3 source documentation for more detail on supported authentication mechanisms.
Provision a storage account and container.
Provision client credentials for authentication. See the ABFS source documentation documentation for more detail on supported authentication mechanisms.
Grant the service principal access to the storage location:
BYOB sources and credentials are highly privileged. Configure them with restrictive access settings, such as by placing them in an administrator-only project. This limits who can access the credentials and prevents unauthorized modifications that could disrupt access to your BYOB Iceberg data.
Once your bucket is provisioned, create a Data Connection source to connect Foundry to your storage:
s3://bucket-name/base-path/). If no base path is provided in the source, Foundry will set foundry-iceberg as the Iceberg base path. Do not modify the base path after configuring the source as an Iceberg storage location, as this may disrupt access to existing tables.Do not grant credentials to the storage bucket directly to Iceberg clients or other tools. Instead, leverage credential vending through the Foundry Iceberg catalog to provide scoped, short-lived access. See Access delegation & credential vending for more information.
After creating your Data Connection source, add the bucket to your Iceberg storage configuration in Control Panel. See Configuring storage locations for instructions.