Skip to content

Support authenticated remote config (private S3/GCS/Azure Blob) #26

@ezqy

Description

@ezqy

Context

v0.3.1 added remote config loading (-c s3://..., -c gs://..., -c az://...), but currently only supports public (unauthenticated) endpoints. Private buckets return 403.

Problem

Polling private buckets requires cloud-provider-specific authentication:

  • AWS S3: SigV4 request signing
  • GCS: Bearer token from metadata server (1h expiry, needs refresh)
  • Azure Blob: Managed Identity token or SAS token

A plain reqwest::get() can't handle any of these without additional logic.

Options to explore

Approach Pros Cons
CONFIG_AUTH_HEADER env var Simple, works for GCS/Azure Bearer tokens and custom HTTP endpoints Doesn't work for AWS SigV4; token expiry not handled
Cloud SDK dependencies (aws-sdk-s3, google-cloud-storage) Full support including token refresh Heavy deps, conflicts with lightweight goal
Metadata server token refresh No new deps, covers GCS/Azure MSI AWS still needs SigV4; platform-specific code
Presigned/SAS URL support in docs Zero implementation URLs expire (S3 max 7 days), not suitable for long-running polling

Current workarounds

  1. Init container: Copy config from private bucket to shared volume at startup, use local path
  2. Internal HTTP endpoint: Serve config from an authenticated internal service, use https://...
  3. Public bucket with restricted network: Use VPC endpoints / firewall rules instead of bucket-level auth

Acceptance criteria

  • Decide on approach (likely CONFIG_AUTH_HEADER + metadata server token refresh)
  • Support at least AWS and GCP private buckets
  • Token refresh for long-running polling
  • Document setup for each cloud provider

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions