LoginSignup
1
2

More than 5 years have passed since last update.

API Gateway + LambdaでJSONデータを受ける際に、認証/署名検証したい

Last updated at Posted at 2016-10-18

認証

API Key認証

API Gateway標準機能。呼び出し側でx-api-keyを付加する必要がある。詳しい方法は割愛

IAM認証

API Gateway標準機能。呼び出し側がさらにAWS依存となる。詳しい方法は割愛。

カスタム認証

API Gateway標準機能。OAuth等の情報をヘッダから読み取り認証を行う。詳しい方法は割愛。

Lambda側で認証

ソースIPで認証

Lambdaにcontext情報を受け渡して、source-ipを利用して認証する。
「メソッドリクエストのパススルー」で生成される標準のテンプレートで対応可能。

Basic認証

Lambdaにヘッダを受け渡して、Authorizationヘッダを用いて認証する。
「メソッドリクエストのパススルー」で生成される標準のテンプレートで対応可能。

署名検証

AWS API Gateway + AWS LambdaでWeb Hook等を受ける場合、パススルー接続するとJSONのパース結果がLambdaに渡される。通常はこれで問題ないが、署名検証する場合には不要なスペース等も含めた正確な入力文字列が必要となる。

そのような場合、結合リクエストのマッピングテンプレートで、生の入力をbase64エンコードすると、Lambdaないから正確な入力文字列を取得できる。

{
"body-raw-base64" : "$util.base64Encode($input.body)"
}

「メソッドリクエストのパススルー」で生成される標準のテンプレートに、上記のキーを追加して利用する。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2