Accessing Iceberg data securely
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.
Overview
- Obtain the ClickHouse Cloud service IAM role ARN.
- 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
IcebergS3table engine with role-based credentials.
Obtain the ClickHouse service IAM role 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 the AWS Console with permissions to manage IAM.
- Open IAM -> Roles -> Create role.
- Choose
Another AWS account, and enter the ClickHouse service role ARN from above. - Attach the trust policy:
- Attach an IAM policy with S3 and catalog permissions suited to your Iceberg workflow.
Read-only Iceberg S3 policy
Glue Data Catalog permissions (optional, if using Glue catalog)
- Create the role and copy the role ARN (
arn:aws:iam::<ACCOUNT_ID>:role/<RoleName>).
Configure Iceberg access in ClickHouse Cloud
Option A: Iceberg table function with role ARN
Use the icebergS3 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.
Validate access
- Run a simple query:
- Check for IAM errors like
AccessDeniedorInvalidAccessKeyId. - If you need stronger isolation, require requests to originate from ClickHouse Cloud VPC endpoints.
Advanced action control
For stricter access control, restrict access using conditions to ClickHouse Cloud VPC endpoints or IP ranges.
- Get ClickHouse Cloud static endpoints for your region:
- Add bucket policy condition:
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.
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.