lakekeeper/lakekeeper

Apache Iceberg REST Catalog in Rust — access control, credential vending and audit for every engine and AI agent. Apache 2.0.

What it solves

Lakekeeper provides a secure, centralized way to manage Apache Iceberg tables across different compute engines. It eliminates the need to duplicate access control rules for every engine (like Spark, Trino, or Starrocks), ensuring that security policies are defined once in the catalog and enforced consistently across the entire data lakehouse.

How it works

It is a Rust-based implementation of the Apache Iceberg REST Catalog specification. Lakekeeper acts as a gateway that checks every request against a defined policy before data is read. It manages storage access using vended credentials and remote signing for major cloud providers (AWS, Azure, GCP) and on-premise S3 stores. It integrates with OpenID providers for authentication and uses OpenFGA by default for fine-grained access control.

Who it’s for

Data engineers and platform architects building open lakehouses who need a unified, scalable, and secure catalog to manage table metadata and access permissions across multiple query engines.

Highlights

  • Unified Access Control: Define security policies once and enforce them across all connected compute engines.
  • Rust-powered: Delivered as a single binary without requiring a JVM or Python environment.
  • Storage Agnostic: Supports S3, Azure ADLS Gen2, Google Cloud Storage, and Microsoft OneLake.
  • Extensible Architecture: Provides traits for customizing the database implementation, secret stores, authorizers, and event backends.
  • Change Tracking: Built-in support for emitting CloudEvents to react to table changes.
  • Multi-tenant: A single deployment can serve multiple projects and warehouses.

Related

  • Project
  • Project
  • Project
  • Project
  • Project