RocketChatからOutgoing Webhookで呼び出されたAPI Gatewayでtokenをリクエスト検証する
本来はWAFでやったほうがよさそうですが、追加料金を発生させたくない場合にAPI Gatewayだけで検証してみました。
目次
RocketChatの設定
RocketChatのOutgoing Webhookでトークンを設定しました。
このトークンはリクエスト本文に含まれてPOSTされます。
API Gatewayの設定
APIのモデルを作成しました。
- RocketChatToken
|
1 2 3 4 5 |
{ "type" : "string", "enum" : [ "**********" ] } |
トークンの値です。
- RocketChatTokenCheck
|
1 2 3 4 5 6 7 8 9 10 |
{ "type" : "object", "properties" : { "token" : { "$ref":"https://apigateway.amazonaws.com/restapis/1j23j4k5j/models/RocketChatToken" } }, "required":["token"] } |
本文に含まれるキーから値を参照しています。
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入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
関連記事
-
-
AWS Systems Manager Run CommandでEC2 Linuxのユーザーとカレントディレクトリを確認
AWS Systems Manager Run CommandからEC2 Lin …
-
-
CloudTrailイベントのコストしか発生していないリージョンのコスト発生源を調査しました
調査のきっかけ ふと検証用AWSアカウントのCostExplorerを見てました …
-
-
「関西AWSスタートアップ勉強会」に行ってきました
第2回 関西スタートアップAWS勉強会に行ってきました。 akippa 拠点数コ …
-
-
AWSアカウントの解約
アカウント作成メニュー確認のために作成したAWSアカウントを解約しました。 使っ …
-
-
ヤマムギ vol.24 API GatewayでREST API作成と直接DynamoDB登録のデモをしました
2週間ぶりのヤマムギ勉強会デモなのでなんだか久しぶりな気がしました。 今日はポケ …
-
-
Amazon Connectから問い合わせ追跡レコード(CTR)をエクスポート
Amazon Connectから発信した電話に出たのか、出なかったのかを確認した …
-
-
cfn-signalの認証とネットワーク
AWS CloudFormationヘルパースクリプトのcfn-signalがC …
-
-
Amazon ECS Workshop for AWS Summit Online
INTRODUCTION TO AMAZON ECSに手順や必要なリンクがありま …
-
-
AWS Organizationsでタグポリシーを設定しようとしました
Organizationsで[タグポリシーを有効にする]ボタンを押下しました。 …
-
-
AWS OrganizatonsのRCP(リソースコントロールポリシー)を設定しました
2024/11月に発表されましたリソースコントロールポリシーを管理している組織に …




