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.1.tar.gz (64.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.1-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiohttp_aws_auth-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c1e51084e7955fd20f0ed64ebe0b19d613c77e3c88d03ed4d7964d0197959393
MD5 0bc5635e909bdb6452f20902dcb556b6
BLAKE2b-256 23b99e1b26d41c12aa3065f6b2bd81d7664db57bd4a7b3875eaa93852baf583d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohttp_aws_auth-0.0.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aiohttp_aws_auth-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e1247cbecb40cca26052c3e2dfd16e28300818ac23c666477d2f13315131ff9
MD5 17f03a3025b5b67c56e9ec3b83737956
BLAKE2b-256 bc475b4540a8e909aafaa2d77b4bc47d06927002c05bde1d7b84d7f3a7f00041

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohttp_aws_auth-0.0.1-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