aws-request-signer
A python library to sign AWS requests using AWS Signature V4.
What it is and what it does
aws-request-signer is a lightweight Python library that handles AWS Signature V4 request signing for HTTP requests. It generates the cryptographic signatures and authorization headers needed to authenticate requests to AWS services and AWS-compatible endpoints like MinIO. The library is intentionally unopinionated—it works with any HTTP client (requests, aiohttp, etc.) and requires no external dependencies, making it easy to integrate into existing projects.
The package supports three signing workflows: adding authorization headers directly to requests, pre-signing URLs for temporary access, and signing S3 POST policies for HTML form uploads. It includes an optional authentication helper for the requests library but can be used standalone with any HTTP transport. The codebase is actively maintained, supports Python 3.6.1 and newer, and has no known security vulnerabilities.
Use it for:
- Sign requests to upload or download files from S3 or MinIO buckets programmatically
- Generate pre-signed URLs for temporary, shareable access to S3 objects without exposing credentials
- Authenticate API calls to AWS services (DynamoDB, Lambda, etc.) from custom HTTP clients
- Sign S3 POST policies for browser-based file uploads directly to S3
- Integrate AWS request signing into async applications using aiohttp or similar libraries
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Signs HTTP requests using AWS Signature V4, generating authorization headers, pre-signed URLs, and S3 POST policies for AWS and compatible services.
Yes. The package solves a specific, well-defined problem (AWS Signature V4 signing) with zero dependencies, active maintenance, and no security issues. Install it if you need to sign AWS requests outside the official SDK or in environments where the full boto3 library is overkill.
Install
aws-request-signer on PyPI
pip
pip install aws-request-signeruv
uv add aws-request-signerpoetry
poetry add aws-request-signerInstalling aws-request-signer
Before you install
Low friction: pure Python, no runtime dependencies, and actively maintained with recent commits. Supports Python 3.6.1 through current versions.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute freely provided you retain the license notice.
Quickstart
pip install aws-request-signer
from aws_request_signer import AwsRequestSigner
import hashlib
signer = AwsRequestSigner('us-east-1', 'access_key', 'secret_key', 's3')
headers = signer.sign_with_headers('PUT', 'http://s3.example.com/bucket/key', {}, hashlib.sha256(b'data').hexdigest())
Verify before relying
- Whether the library works with all AWS services or only S3-compatible endpoints
- Performance characteristics when signing high volumes of requests
- Compatibility with async HTTP clients beyond the aiohttp mention in the description
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.6.1,<4.0.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1,271 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 148,038/month — #11,046 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aws_request_signer-1.2.0-py3-none-any.whl
Tags
More Cryptography packages
Certifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
cryptographycryptography provides cryptographic recipes and…
permissive · top 100 on PyPI
rsaPure-Python RSA encryption, decryption,…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
azure-identityProvides Microsoft Entra ID token-based…
unclear · top 1,000 on PyPI
PyNaClPyNaCl provides Python bindings to libsodium…
permissive · top 1,000 on PyPI
aws-requests-authAdds AWS Signature Version 4 authentication to…
permissive · top 1,000 on PyPI
awscurlA curl-like command-line tool that…
permissive · top 15,000 on PyPI
mastercard-oauth1-signerGenerates OAuth 1.0a-compliant signatures for…
permissive · top 15,000 on PyPI
mohawkMohawk implements the Hawk HTTP authorization…
copyleft · top 5,000 on PyPI
aws-cdk.aws-signerProvides AWS CDK constructs for defining…
permissive · top 15,000 on PyPI
cassandra-sigv4Adds AWS Signature Version 4 authentication to…
permissive · top 15,000 on PyPI
veracode-api-signingSigns HTTP requests destined for the Veracode…
permissive · top 15,000 on PyPI
py-builder-signing-sdkGenerates cryptographically signed HTTP headers…
permissive · top 15,000 on PyPI
requests-aws-signAdds AWS V4 request signing to the requests…
permissive · top 5,000 on PyPI
docusign-esignOfficial Python client SDK for the Docusign…
unclear · top 5,000 on PyPI