Zero Config for catalog

Chris Lu committed 2026-02-16 14:04:56 -08:00
1 parent ff2c131a32
commit a25f3457af
3 files changed
+32

No files matched your search

+1
@@ -264,5 +264,6 @@ See [[Amazon IAM API]] for detailed IAM usage.
- [[Amazon S3 API]] - S3 API compatibility reference
- [[Amazon IAM API]] - IAM API support (embedded in S3)
- [[AWS IAM CLI]] - AWS CLI examples for IAM
- [[SeaweedFS-Iceberg-Catalog]] - Iceberg REST Catalog documentation
- [[Admin UI]] - Web-based credential management
+6
@@ -6,6 +6,12 @@ SeaweedFS S3 Tables implementation supports fine-grained access control using IA
Permissions are defined using JSON policy documents similar to AWS IAM. Policies are attached to the **Table Bucket** using the `PutTableBucketPolicy` API.
### Default Permission Behavior
If no policy is attached to a Table Bucket:
- **Zero Configuration**: Access is **Allowed** by default (simplifies development).
- **IAM Configured**: Access is **Denied** by default (security best practice).
### Policy Structure
A policy document consists of a list of statements:
+25
@@ -147,3 +147,28 @@ When configuring the catalog, the `warehouse` location typically points to a spe
- **Trino**: `iceberg.rest-catalog.prefix=my-table-bucket` (optional, can also be part of warehouse path)
SeaweedFS treats the Table Bucket as the root for that catalog instance. You can have multiple catalogs pointing to different table buckets.
---
## Anonymous Access (Zero Config)
If SeaweedFS is running in **Zero Configuration** mode (no `-s3.config` or `-iam.config` provided), the Iceberg Catalog allows anonymous access by default. This is useful for local development and testing.
### Spark Configuration for Anonymous Access
To connect without credentials, disable SigV4 signing in the Spark configuration:
```bash
spark-sql \
--packages "org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.7.2,org.apache.iceberg:iceberg-aws-bundle:1.7.2" \
--conf "spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions" \
--conf "spark.sql.defaultCatalog=iceberg" \
--conf "spark.sql.catalog.iceberg=org.apache.iceberg.spark.SparkCatalog" \
--conf "spark.sql.catalog.iceberg.type=rest" \
--conf "spark.sql.catalog.iceberg.uri=http://localhost:8333" \
--conf "spark.sql.catalog.iceberg.warehouse=s3tablescatalog/my-table-bucket" \
--conf "spark.sql.catalog.iceberg.io-impl=org.apache.iceberg.aws.s3.S3FileIO" \
--conf "spark.sql.catalog.iceberg.s3.endpoint=http://localhost:8333" \
--conf "spark.sql.catalog.iceberg.s3.path-style-access=true" \
--conf "spark.sql.catalog.iceberg.rest.sigv4-enabled=false"
```