ClickHouse Cloud supports secure role-based access to Iceberg data stored in object storage (typically S3) by using an ARN-based AWS IAM trust relationship. This guide follows the same secure-setup pattern as Accessing S3 data securely, and adds Iceberg-specific configuration in ClickHouse.Documentation Index
Fetch the complete documentation index at: https://private-7c7dfe99-page-updates.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
- Obtain the ClickHouse Cloud service role ID (IAM).
- Create an IAM role in your AWS account that ClickHouse can assume.
- Attach Iceberg-specific object and catalog policies to the role.
- Use Iceberg table functions or the IcebergS3 table engine with role-based credentials.
Obtain the ClickHouse service role ID (ARN)
- Login to your ClickHouse Cloud account.
- Select the ClickHouse service where you want to query Iceberg data.
- Go to the Settings tab.
- Scroll to Network security information.
- Copy the Service role ID (IAM) value.
This ARN is required for the trust policy on the AWS IAM role that will access your Iceberg data.Set up IAM assume role
- Login to AWS and go to the IAM service.
- Select Roles then Create role.
Select Trusted entity type as Custom trust policy and enter values based on step 3.
- Add the Trust and IAM policies.
Replace {service-role-id} with the Service Role ID (IAM) from your ClickHouse instance.For read/write workloads, the IAM policy must include
s3:PutObject, s3:DeleteObject, and metadata-modifying actions for Iceberg. The above sample is conservative read-only.If you need stronger isolation, require requests to originate from ClickHouse Cloud VPC endpoints. For more information on this option, review Secure S3 advanced action control.
- Finish role creation.
a. Click Next, then Next again through the permission assignment screen.b. Add a name (e.g. iceberg-role-for-clickhouse) and description.c. Add tags (optional).d. Review the policies.e. Select Create role.
- Copy the new IAM Role Arn after creation.
Configure Iceberg access in ClickHouse Cloud
Option A: Iceberg table function with role ARN
Use theicebergS3 table function with the NOSIGN option and role-based credentials. ClickHouse Cloud will call STS to assume the role.
Option B: Persistent Iceberg table engine
Option C: Glue catalog + IcebergS3
Note: When using Glue catalog, ensure your IAM role has both S3 and Glue read/list permissions.
Option D: DataLake Catalog for Glue
DataLake Catalog for Glue is coming in version 26.2.
Validate access
- Run a simple query:
- Check for IAM errors like
AccessDeniedorInvalidAccessKeyId.
Troubleshooting
- Verify the role ARN from ClickHouse Cloud service settings.
- Ensure your bucket/objects are in the same region as the Iceberg queries to reduce latency and cost.
- Confirm Iceberg table path points to a valid Iceberg metadata location (
metadata/v1/...files under the table root). - For catalog mode, check Glue metadata and partition visibility with AWS Glue console.