Catalog connections
- Connect to Apache Polaris using OAuth client credentials
- Connect to Apache Polaris using a bearer token
- Connect to Apache Polaris using OAuth and separate S3 credentials
- Connect to Lakekeeper using no authentication
- Connect to Lakekeeper using a bearer token
- Connect to Lakekeeper using OAuth client credentials
- Connect to Project Nessie using no authentication
- Connect to Project Nessie using a bearer token
- Connect to Project Nessie using OAuth client credentials
- Connect to Unity Catalog Iceberg REST using OAuth client credentials
- Connect to Unity Catalog Iceberg REST using a bearer token
- Connect to Snowflake Open Catalog using OAuth client credentials
- Connect to Snowflake Open Catalog using a bearer token
- Connect to Snowflake Horizon using a bearer token
- Connect to Snowflake Horizon using OAuth client credentials
- Connect to Microsoft OneLake using a bearer token
- Connect to Microsoft OneLake using OAuth client credentials
- Connect to an Iceberg REST catalog using no authentication
- Connect to an Iceberg REST catalog using a bearer token
- Connect to an Iceberg REST catalog using OAuth client credentials
- Connect to an Iceberg REST catalog using AWS request signing
- Connect to the native Unity Catalog API using a bearer token
- Connect to AWS Glue native using the runtime AWS identity
- Connect to AWS Glue native using an assumed role
- Connect to AWS Glue native in another AWS account
- Connect to AWS Glue Iceberg REST using the runtime AWS identity
- Connect to AWS Glue Iceberg REST using an assumed role
- Connect to Amazon S3 Tables using the runtime AWS identity
- Connect to Amazon S3 Tables using an assumed role
- Connect to Google BigLake using application default credentials
File access
- Read S3 Parquet using an EC2 instance role
- Read S3 Parquet using an ECS task identity
- Read S3 Parquet using a named AWS profile
- Read S3 Parquet using an assumed role with an external ID
- Read S3 Parquet using temporary AWS keys
- Read MinIO Parquet using saved keys
- Read CSV with a header and explicit column types
- Read TSV with an explicit schema
- Read JSON files from a configured location
- Read matching CSV files from a folder
AWS identities
Google Cloud identities
- Connect to BigLake using a service-account document
- Connect to BigLake using Google workload identity federation
- Connect to BigLake by impersonating a service account
Azure identities
- Connect to OneLake using a managed identity
- Connect to OneLake using a user-assigned managed identity
- Connect to OneLake using Azure workload identity
- Connect to OneLake using an Azure client secret
- Connect to OneLake using an Azure client certificate
Secret providers
- Use Google Secret Manager for a saved credential
- Pin a Google Secret Manager secret version
- Use Azure Key Vault for a saved credential
- Pin an Azure Key Vault secret version
- Use HashiCorp Vault KV v2 for a saved credential
- Pin a HashiCorp Vault KV v2 secret version
- Use an environment-secret mapping for a saved credential
- Use a file-secret mapping for a saved credential
- Pin an AWS Secrets Manager secret version
- Pin an AWS Parameter Store secret version
More access recipes
- Store a secret and use it
- Use AWS Secrets Manager
- Use AWS Parameter Store
- Pin an external secret version
- Rotate a secret
- Move a local secret to an external provider
- Remove access resources after use
Credentials
- Read S3 using saved AWS keys
- Use the AWS credential chain or a profile
- Read S3 using EKS Pod Identity
- Read S3 using IRSA
- Assume an AWS role
- Use a bearer token
- Use OAuth client credentials
- Separate catalog and storage credentials
- Use multiple AWS identities
- Switch from saved keys to runtime identity
Running the SQL
Run statements in order in Workbench, or through another SQL client. Keep session-local views and their queries in the same session. Replace strings such as<access-key-id> and example service URLs before running a statement. Use
unused names for the resources created by a recipe. When changing an AWS Region,
update the S3 endpoint to match it. Give each storage connection its own
endpoint. A local MinIO endpoint does not provide access to an AWS bucket.
The engine must have its secrets and credentials services available. Local
secret values also need the encrypted secret store and its persistent
<storage_root>/secrets/master.key. See
Secrets configuration.
A recipe’s setup text describes work done outside SQL. This includes creating
AWS resources, granting permissions, installing identity bindings, and
configuring external secret-provider aliases. SQL creates the engine’s saved
resources and uses those existing services. It does not create AWS keys, IAM
roles, remote secrets, or Kubernetes identity associations.
Catalog recipes read an existing table selected by the reader. File recipes use
an existing configured input or the small fixture described on the page. Some
earlier access recipes use TPC-DS scale-factor 1 (SF1) data. These reads do not
write to the source dataset. A final SELECT checks actual data access. SHOW and
DESCRIBE show metadata, not secret plaintext or acquired tokens. Cleanup removes
only the local resources named in that recipe.