Skip to content

Signing AWS API requests

  • When you call the AWS HTTP API, you sign the request so that AWS can identify you, using your AWS credentials (access key & secret key)
  • Note: some requests to Amazon S3 don't need to be signed
  • If you use the SDK or CLI, the HTTP requests are signed for you
  • You should sign an AWS HTTP request using Signature v4 (SigV4)

SigV4 Request examples

  • HTTP HEADER Option
GET https://iam.amazonaws.com/?Action=ListUsers&Version=2010-05-08 HTTP/1.1
Authorization: AWS4-HMAC-SHA256 Credential=..., SignedHeaders=content-type;host;x-amz-date, Signature-...
  • Query String Option (ex: S3 pre-signed URLs)
GET https://iam.amazonaws.com/?Action=ListUsers&Version=2010-05-08&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...&X-Amz-Date=...&X-Amz-Signature=...