Skip to main content

httpx-aws-auth

Overview

This module provides AWS Signature Version 4 (SigV4) authentication for HTTPX, supporting both synchronous and asynchronous authentication flows. It includes two main classes:

  • AwsSigV4Auth: For direct AWS credential authentication
  • AwsSigV4AssumeRoleAuth: For authentication using AWS IAM Role assumption

Features

  • Simple integration with HTTPX
  • Support for both synchronous and asynchronous authentication
  • AWS SigV4 signing for API requests
  • IAM Role assumption with configurable duration
  • Credential expiration and automatic refresh
  • Flexible configuration options

Installation

Install the package using pip:

pip install httpx-aws-auth

Usage

Basic AWS Credentials Authentication

import httpx
from httpx_aws_auth import AwsSigV4Auth, AwsCredentials

# Create AWS credentials
credentials = AwsCredentials(
    access_key='YOUR_ACCESS_KEY',
    secret_key='YOUR_SECRET_KEY'
)

# Create an authenticated client
client = httpx.Client(
    auth=AwsSigV4Auth(
        credentials=credentials,
        region='us-west-2',
        service='execute-api'
    )
)

# Make a request
response = client.get('https://your-api-endpoint.com')

IAM Role Assumption (Synchronous)

import boto3
import httpx
from httpx_aws_auth import AwsSigV4AssumeRoleAuth

# Create AWS session
session = boto3.Session()

# Create an authenticated client with role assumption
client = httpx.Client(
    auth=AwsSigV4AssumeRoleAuth(
        region='us-west-2',
        role_arn='arn:aws:iam::123456789012:role/YourRole',
        session=session,
        duration=timedelta(hours=1)
    )
)

# Make a request
response = client.get('https://your-api-endpoint.com')

IAM Role Assumption (Asynchronous)

import aioboto3
import httpx
from httpx_aws_auth import AwsSigV4AssumeRoleAuth

# Create async AWS session
async_session = aioboto3.Session()

# Create an authenticated async client with role assumption
async_client = httpx.AsyncClient(
    auth=AwsSigV4AssumeRoleAuth(
        region='us-west-2',
        role_arn='arn:aws:iam::123456789012:role/YourRole',
        async_session=async_session,
        duration=timedelta(hours=1)
    )
)

# Make an async request
async with async_client as client:
    response = await client.get('https://your-api-endpoint.com')

Configuration Options

AwsSigV4Auth

  • credentials: AWS credentials object
  • region: AWS region
  • service: AWS service name (default: 'execute-api')

AwsSigV4AssumeRoleAuth

  • region: AWS region
  • role_arn: IAM Role ARN to assume
  • service: AWS service name (default: 'execute-api')
  • session: Synchronous boto3 session
  • async_session: Asynchronous aioboto3 session
  • duration: Credential validity duration (default: 1 hour)
  • refresh_buffer: Time before expiration to refresh credentials (default: 0 seconds)

Dependencies

  • HTTPX
  • boto3 (for synchronous authentication)
  • aioboto3 (for asynchronous authentication)

Metadata

Release files for httpx-aws-auth 4.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for httpx-aws-auth 4.2.0
File Size Uploaded Provenance Actions
httpx_aws_auth-4.2.0.tar.gz 4.1 kB With provenance Details for httpx_aws_auth-4.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for httpx-aws-auth 4.2.0
File Interpreter ABI Platform Actions
httpx_aws_auth-4.2.0-py3-none-any.whl Python 3 none any Details for httpx_aws_auth-4.2.0-py3-none-any.whl

Total release size: 8.9 kB

Release files / httpx_aws_auth-4.2.0.tar.gz

Download URL httpx_aws_auth-4.2.0.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
56a620f05559910160430204116e2598aae306142c49a5a35d170497833cdcba
BLAKE2b-256 checksum
How to use checksums
dd83041f76da6b305658f0d8467bef261444e862e567ec3f966c1a1993305f12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 22, 2026.

Transparency log

Release files / httpx_aws_auth-4.2.0-py3-none-any.whl

Download URL httpx_aws_auth-4.2.0-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4dd046eedad6d83af28e0f0267b48dabf9e19e2902d9a9ff306935a8f8fdafd6
BLAKE2b-256 checksum
How to use checksums
bd88e4c04ed74df342dd47d2bdc596feb5a8a9a69af907487baa780fd4126a20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 22, 2026.

Transparency log

Security for httpx-aws-auth 4.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for httpx_aws_auth-4.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page