Skip to main content

AWS auth v4 plugin for HTTPie.

Project description

httpie-aws-authv4

AWS / Amazon Signature v4 Signing Process authentication plugin for HTTPie.

Installation

$ pip install --upgrade httpie-aws-authv4

You should now see aws4 under --auth-type / -A in $ http --help output.

Simple Usage

Credentials in default profile/environment variables/instance profile

This authentication plugin looks for credentials in the same precedence that the AWS CLI tool does.

$ http --auth-type aws4 https://asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com/dev/test

Extra arguments

Using the --auth parameter, you can specify explicit parameters to be used in the calculation of the Sigv4 signature.

$ http --auth-type aws4 --auth access_key=AWSACCESSKEYXXX,secret_key=AWSSECRETKEYXXX,service=execute-api,region=ap-southeast-2 https://asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com/dev/test

Auth options

The following arguments are supported via the --auth flag. They can be referenced via their full or short name for convenience.

  • access_key (ak) - AWS Access Key.
  • secret_key (sk) - AWS Secret Key.
  • profile (p) - AWS profile to use.
  • domain (d) - Domain name to use when signing the request.
  • service (s) - AWS service name to use when signing the request (ie, execute-api).
  • region (r) - AWS region the endpoint is located in.

Specify credentials profile on the CLI

You can specify another profile than the default profile:

$ http --auth-type aws4 --auth profile=XXX https://asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com/dev/test

Specify service and region

If for some reason you are not hitting the AWS endpoint directly (common with API Gateway), you will need to specify the AWS provided service and region:

$ http --auth-type aws4 --auth s=execute-api,r=eu-west-1 https://api.awesomeservice.net/dev/test
$ http --auth-type aws4 --auth service=execute-api,region=eu-west-1 https://api.awesomeservice.net/dev/test

Specify endpoint

Instead of specifying service and region you can specify domain which is then parsed.

$ http --auth-type aws4 --auth d=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test
$ http --auth-type aws4 --auth domain=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test

Specify credentials and endpoint

$ http --auth-type aws4 --auth ak=ACCESSKEYXXX,sk=AWSSECRETKEYXXX,d=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test
$ http --auth-type aws4 --auth access_key=ACCESSKEYXXX,secret_key=AWSSECRETKEYXXX,domain=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test

Specify credentials profile and endpoint

$ http --auth-type aws4 --auth p=XXX,d=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test
$ http --auth-type aws4 --auth profile=XXX,domain=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test

Calling AWS services that require extra information

Many AWS services do not require any extra information to be passed other than the URL, such as the following call to the S3 service which will list all S3 Buckets in the given AWS account:

http -A aws4 s3.us-east-1.amazonaws.com

However, some AWS services will require extra information to be passed using query string parameters. By default, httpie passes extra parameters as a JSON body. httpie can be told to pass extra parameters as form fields using the -f flag like so:

$ http -f -A aws4 ec2.us-east-1.amazonaws.com Action=DescribeVpcs Version=2015-10-01

where the Action and Version parameters were passed to the EC2 service to call the DescribeVpcs API.

Alternatively instead of using the -f flag, == can be used for each parameter like so:

$ http -A aws4 ec2.us-east-1.amazonaws.com Action==DescribeVpcs Version==2015-10-01

Credits

All of the heavy lifting (the signing process) is handled by aws-requests-auth

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

httpie-aws-authv4-0.3.0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

httpie_aws_authv4-0.3.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file httpie-aws-authv4-0.3.0.tar.gz.

File metadata

  • Download URL: httpie-aws-authv4-0.3.0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for httpie-aws-authv4-0.3.0.tar.gz
Algorithm Hash digest
SHA256 93ba313e1fb8e19f6ce31f90d8e45a027ca29d15ac73913aff9c5fc10130676d
MD5 aaf10c7433f94da8f1f779dd1644c931
BLAKE2b-256 7c088360fb69d1c924c7452cfb04523a179006ab79f3ca29cd28aa0ee9e213ee

See more details on using hashes here.

File details

Details for the file httpie_aws_authv4-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for httpie_aws_authv4-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa752aac99d084eb8f52a00b000d17f45fe186bca1797b1d2e3c5601d08fea29
MD5 6b5b22c72d38371370b79b489936836c
BLAKE2b-256 02b5433e1c79c76cc646158090338b904f7db7a053e1d6c116ace22f1043dc65

See more details on using hashes here.

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