The AWS API Gateway supports signed requests as follows. The API Gateway client can use IAM credentials to sign a request in two steps:
- The original request headers and body are signed using the SDK supplied by AWS and the credentials
- The signature sets the
X-Amz-SignedHeaders
header
In practice, there are two ways for signing from a Ruby client using the AWS SDK: (1) signing with a Faraday plugin, (2) creating a Specific Gateway client using the Seahorse API declaration.
Here is a code snippet for the more quick and dirty Faraday solution.