Skip to content

Python library extending requests with AWS Signature V4 authentication.

License

Notifications You must be signed in to change notification settings

cleardataeng/requests-sigv4

Repository files navigation

requests-sigv4

Python library for making AWS4-HMAC-SHA256 signed calls with requests.

Usage


from requests_sigv4 import Sigv4Request

request = Sigv4Request(region="us-west-2")
response = request.get(
    url='{}/pets/1234'.format(API_PATH),
    headers={'X-Custom-Header': 'foo-bar'},
)
# Constructor options.
# role_arn can be provided to STS with the current credential context.
Sigv4Request(
  region=None,
  access_key=None,
  secret_key=None,
  session_token=None,
  session_expires=3600,
  profile=None,
  role_arn=None,
  role_session_name='awsrequest',
  service='execute-api')

AWS Credentials


In the background, the credential provider being used is from boto3.

Credentials from environment variables and the AWS shared credential file will work in the same manner they do with boto3 and the AWS command line.

More about boto3 credentials.

Testing


Tests are run using tox. These aren't run as part of the CI due to the AWS credential requirements, so the tests are validated locally.