Skip to main content

dbt Artifact Storage: AWS S3 Configuration

This guide walks you through configuring AWS S3 as the artifact storage layer for dbt Core + OpenMetadata integration. After completing this guide, your dbt artifacts will automatically sync to OpenMetadata for metadata extraction and lineage tracking.

Prerequisites Checklist

Step 1: AWS S3 Setup

1.1 Create S3 Bucket

Expected output:

1.2 Create IAM Policy for dbt (Write Access)

Your Airflow/dbt environment needs permission to write to S3. Save this as dbt-s3-write-policy.json:
Create and attach the policy:

1.3 Create IAM Policy for OpenMetadata (Read Access)

OpenMetadata needs permission to read from S3. Save this as collate-s3-read-policy.json:
Create the policy:

1.4 Verify S3 Access

Step 2: Upload Artifacts from dbt

2.1 Understanding dbt Artifacts

OpenMetadata requires these dbt-generated files: Generate all artifacts:

2.2 Complete Airflow DAG Example

This is a complete, working DAG for uploading dbt artifacts to S3. Save as dbt_with_collate.py in your Airflow DAGs folder:

2.3 Verify DAG Deployment

Expected S3 output:

Step 3: Configure OpenMetadata

Configuration

  1. Go to Settings → Services → Database Services
  2. Click on your database service (e.g., “production-snowflake”)
  3. Go to the Ingestion tab
  4. Click Add Ingestion
  5. Select dbt from the dropdown
Configure dbt Source (S3): AWS Credentials (choose one): Option A: Using Access Keys Option B: Using IAM Role (if OpenMetadata runs on AWS) Configure dbt Options: Test & Deploy:
  1. Click Test Connection
  2. If successful, click Deploy
  3. Click Run to trigger immediately

Verification

After running the full pipeline, verify:

Troubleshooting

Next Steps

See other storage options: GCS | Azure | HTTP | Local | dbt Cloud