'Is it possible to send a secure (signed) request to an Amazon API gateway using C#?

I would like to make use of Amazon API Gateway and the security and throttling features that are advertised.

Is is possible to access them from a C# application?

At present, the only way I can see to make a secure, signed request (using the AWS Signature version 4) is to use the SDK/librariess generated by Amazon itself - which seems to be limited to javascript, ios and Android versions.

Is it possible to make a request using other methods?

Any information about how to make a connection from a desktop Java application or C# application would be very much appreciated.

Thanks!



Solution 1:[1]

API Gateway requests are normal requests to RESTful API. You should deploy your API and then create an Access Key in the dashboard and assign this key to your deployment. You can then use this Access Key in the X-Api-Key header so the server can authorize your HTTP Requests.

Here's more information on how to Create and use API Keys for Amazon API Gateway.

If you're looking to authorize and authenticate your users, then you need to use both, the X-Api-Key and SigV4 request signing using IAM Credentials as described in various AWS documents. Ideally you generate API Gateway SDK for your API and observe it's functionality. There's also a nice example project Secure Pet Store describing how to use IAM Credentials from Cognito to authorize and authenticate and possibly invoke Lambda using caller credentials.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1