Skip to main content

Provides AWS authentication middlewares to be used with aiohttp

Project description

aiohttp-aws-auth

Overview

This module provides AWS Signature Version 4 (SigV4) authentication for aiohttp through two primary middleware classes:

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

Features

  • Simple integration with aiohttp
  • 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 aiohttp-aws-auth

Usage

Basic AWS Credentials Authentication

import aiohttp
from aiohttp_aws_auth import AwsSigV4Auth, AwsCredentials

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

# Create an authentication middleware
aws_auth_middleware = AwsSigV4Auth(
    credentials=credentials,
    region='us-west-2',
    service='execute-api',
)


# Make a request
async with ClientSession(middlewares=(aws_auth_middleware,)) as session:
    resp = await session.get("https://your-api-endpoint.com")

IAM Role Assumption

import aioboto3
from aiohttp_aws_auth import AwsSigV4AssumeRoleAuth

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

# Create an authentication middleware
aws_auth_middleware = AwsSigV4AssumeRoleAuth(
    region='us-west-2',
    role_arn='arn:aws:iam::123456789012:role/YourRole',
    session=session,
    duration=timedelta(hours=1),
)

# Make an async request
async with ClientSession(middlewares=(aws_auth_middleware,)) as session:
    resp = await session.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

  • aiohttp
  • aioboto3 (only needed when using AwsSigV4AssumeRoleAuth)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp_aws_auth-0.0.3.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiohttp_aws_auth-0.0.3-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp_aws_auth-0.0.3.tar.gz.

File metadata

  • Download URL: aiohttp_aws_auth-0.0.3.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aiohttp_aws_auth-0.0.3.tar.gz
Algorithm Hash digest
SHA256 1f6ec3078ab7a96998340a2266c5265b06af4e72a4557913756155714dc8a048
MD5 af2a1e09e2a85815a763ff8ac057f6dd
BLAKE2b-256 4446ff23276027a7c084f474431fe89f58a33dee04d8fe853014440350c0e4b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohttp_aws_auth-0.0.3.tar.gz:

Publisher: release.yml on jammymalina/aiohttp-aws-auth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aiohttp_aws_auth-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for aiohttp_aws_auth-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bd3c2a052876dad29c1c30f7f7fc85649f2f95bc0365012abaa572c704727aa4
MD5 0b48d16cae89f70a07a3b2680d2d94be
BLAKE2b-256 749c5ad77d95982f62fc506b57ed024e742bfb0a2416463a85fe69df59702c31

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohttp_aws_auth-0.0.3-py3-none-any.whl:

Publisher: release.yml on jammymalina/aiohttp-aws-auth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page