Requests IAMAuth
Use AWS SigV4 authorization with requests.
Accessing an API secured with IAM authorization in AWS API Gateway can be tricky.
This tool uses the built-in authorization strategy in requests to help you access your secured endpoints.
Installation
pip install requests-iamauth
Usage
Signing Version 4
AWS sigv4 is the current standard for signing requests bound for AWS services.
Use requests-iamauth to as an authorizer for the requests Python library:
import requests
from iamauth import Sigv4Auth
sigv4 = Sigv4Auth(
service_name="execute-api", # default
)
session = requests.Session()
session.auth = sigv4
session.get('https://abcdef0123.execute-api.us-east-2.amazonaws.com/my/api')
Override the default boto3 session by passing a custom one into the constructor for Sigv4Auth:
import boto3
sigv4 = Sigv4Auth(
boto3_session=boto3.Session(),
)
Signing Version 4a
AWS sigv4a is an extension to the sigv4 signing process that enables signing requests bound for more than one region.
Note — at the time of this writing, the only API Gateway API type that appears to support the new sigv4a are REST APIs.
Use requests-iamauth to as an authorizer for the requests Python library:
import requests
from iamauth import Sigv4aAuth
sigv4a = Sigv4aAuth(
service="execute-api", # default
region="*", # default
)
session = requests.Session()
session.auth = sigv4a
session.get('https://abcdef0123.execute-api.us-east-2.amazonaws.com/my/api')
Override the default AWS credentials provider by passing a custom one into the constructor for Sigv4aAuth:
from botocore.compat import awscrt
sigv4a = Sigv4aAuth(
credentials_provider=awscrt.auth.AwsCredentialsProvider.new_default_chain(),
)
Metadata
Release files for requests-iamauth 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| requests_iamauth-1.0.0.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| requests_iamauth-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.8 kB
Release files / requests_iamauth-1.0.0.tar.gz
| Download URL | requests_iamauth-1.0.0.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
499115cb6466e2dbd525c0e4577a81b1846efe88ce67171f46af491f75fbc49f
|
|
BLAKE2b-256 checksum How to use checksums |
115ee36ceb2524d2fe23905bd56f2e6ef7fbf545e75b73aaf65c51eac1c71707
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.3
|
Release files / requests_iamauth-1.0.0-py3-none-any.whl
| Download URL | requests_iamauth-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e732b1e4d94549702083793c9a030616b0d1d56714e1e825fbf0907eb2b0430d
|
|
BLAKE2b-256 checksum How to use checksums |
ee59e942841b887572693db49518ea8d18670d1fcb9323192ca2c2cf068fddc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.3
|