ヤマムギ

growing hard days.

*

RocketChatからOutgoing Webhookで呼び出されたAPI Gatewayでtokenをリクエスト検証する

   

本来はWAFでやったほうがよさそうですが、追加料金を発生させたくない場合にAPI Gatewayだけで検証してみました。

RocketChatの設定

RocketChatのOutgoing Webhookでトークンを設定しました。
このトークンはリクエスト本文に含まれてPOSTされます。

API Gatewayの設定

APIのモデルを作成しました。

  • RocketChatToken

トークンの値です。

  • RocketChatTokenCheck

本文に含まれるキーから値を参照しています。

APIリソースのメソッドリクエストの設定で、リクエストの検証を本文にして、作成したモデルを指定しました。

検証のテスト

RocketChatから投稿してAPIにPOSTしてみます。
API GatewayではCloudWatch Logsへの出力を設定しています。

Method request body before transformations:
の次に
Request validation succeeded for content type application/json
のログが出力されていました。
成功しました。

検証に失敗するテストのために、POSTMANから適当なトークンの値でPOSTしてみました。

Request body does not match model schema for content type application/json: [instance value (“abcdefghi”) not found in enum (possible values: [“***********”])]
このログが出力されていました。
値が違ったので400 Bad Requestエラーになりました。
requiredを指定しているのでtokenキーが本文にない場合もエラーになります。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

  関連記事

Amazon Connectから問い合わせ追跡レコード(CTR)をエクスポート

Amazon Connectから発信した電話に出たのか、出なかったのかを確認した …

Amazon EC2 インスタンスメタデータサービス(IMDS) v2のみにしました

今さらながらですが、EC2 インスタンスメタデータサービス(IMDS) v2を確 …

よくあるサーバーレスアーキテクチャで質問フォーム

この記事はServerless2 Advent Calendar 2018に参加 …

AWS コスト最適化ハブを有効にしました

新しいコスト最適化ハブは、推奨アクションを一元化してコストを節約します 2023 …

静的と動的って何ですか?と営業さんに聞かれたので端的に説明してみました

AWS認定クラウドプラクティショナーの勉強をしている営業さんに、「S3で静的オブ …

AWS Client VPNの接続ログを確認しました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …

Azure AD SSOからAWS SSOに統合するための提供情報

Azure AD SSO担当者に送る情報をこちらの記事を見て確認しました。 チュ …

S3リクエストメトリクスをプレフィックスを指定して有効化

検証でどのリクエストがどれぐらい発生しているのか、さっと知りたくなったので、特定 …

Amazon Linux2のジャンボフレーム

ユーザーガイドのEC2 インスタンスのネットワークの最大送信単位 (MTU)を試 …

JAWS-UG関西「AI で人を笑わせてみよう!ハンズオン」に参加しました

AI で人を笑わせてみよう!ハンズオン 灼熱の7月最終日にJAWS-UG関西のオ …