ヤマムギ

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 ,

  関連記事

AWSアカウント ルートユーザーのMFAが使えなくなったので復旧

AWSのルートユーザーどころか、MFAが使えるログインすべてが使えなくなって焦り …

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」を執筆いたしました

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」という本の第 …

AWS AmplifyでTodoアプリを作るハンズオンをやってみました

【お手軽ハンズオンで AWS を学ぶ】AWS Amplify で Todo アプ …

WordPress、プラグインのアップデートしてBlue/Greenデプロイ

現在のブログの構成です。 WordPressとプラグインのアップデートをして、デ …

Amazon ECSサービスでAWS App Meshを使用

AWS App MeshユーザーガイドのAWS App Mesh とAmazon …

前からできましたっけ??CloudWatch Logsの保持設定を複数まとめて設定

AWSの個人アカウントで要らなさそうなリソースの断捨離をしてます。 CloudW …

EFSのマウントターゲットがデフォルトで作成されるようになってました

ひさしぶりにAmazon EFSファイルシステムを作成しました。 作成手順がすご …

PyCharmにAWS CloudFormationプラグインをインストールして入力補完してみる

JetBrainsのPython統合開発環境(IDE)のPyCharmを1年ちょ …

EC2インスタンスの起動で、–cli-input-jsonと–cli-input-yamlを使いました

AWS CloudShellから実行しました。 JSON実行 [crayon-6 …

Cloud9環境を共有した際の環境認証

Cloud9を環境を構築したIAMユーザー以外に共有したとき、その環境から実行す …