Skip to content

Multiple AWS credential pairs (per-client auth) #13

Description

@ServerSideHannes

Summary

Support multiple AWS access key / secret key pairs so different clients can authenticate with their own credentials.

Problem

Currently, s3proxy uses a single set of AWS credentials (AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY) for both client authentication and upstream S3 access. All clients must share the same credentials, making it impossible to:

  • Revoke access for a single client
  • Audit which client performed which operation
  • Apply per-client rate limits or permissions

Proposal

  • Support a credential mapping: multiple client credential pairs that all map to the upstream S3 credentials
  • Configuration via environment variable, config file, or external auth provider
  • Each client keypair is independently revocable
  • Log which client credential was used per request (for audit trail)

Example config

credentials:
  - access_key: "client-a-key"
    secret_key: "client-a-secret"
    name: "backup-service"
  - access_key: "client-b-key"
    secret_key: "client-b-secret"
    name: "analytics"
upstream:
  access_key: "real-s3-key"
  secret_key: "real-s3-secret"

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions