APIリクエスト時にCloudFrontでエラーとなった
Route53 ― CloudFront — ALB — ECS(Fargate)構成のアプリケーション開発中、バックエンドエンジニアより下記連絡が来ました。
「APIでGETリクエストをしたが、Cloudfrontエラーが出ている」と。
ブラウザ表示は下記。CloudFront構成ではよく見る、CloudFrontのエラーです。
下記のようなリクエストを送ったようです。
curl --location --request GET 'https://xxx.co.jp/api' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "e-mail address"
}'
調査結果
Cloudfrontのビューワーの変更や色々試しましたが改善しませんでした。
すると、公式に下記のようにありました。
GET requests that include a body
If a viewer GET request includes a body, CloudFront returns an HTTP status code 403 (Forbidden) to the viewer.
ビューアのGETリクエストに本文が含まれている場合、CloudFront は HTTP ステータス コード 403 (Forbidden) をビューアに返す仕様のようです。
▼公式サイトは下記
確認
公式サイト通り、bodyを外して確認してみました。
curl --location --request GET 'https://xxx.co.jp/api/user/env' \
無事APIが返ってきました。
AWSの効果的な学習方法は?

最後に、AWSの効果的な学習方法をご紹介します。
自学自習はUdemy講座
オンラインプラットフォームであるUdemyは安価で手軽にAWSの学習が可能です。
しかし、上記で紹介したような実際のAWSエンジニアが実施している構築スキルまでは教えてくれません。初心者~中級者向けの講座が多くなっています。
私も受講した、初心者向けAWS講座を下記記事でまとめています。ご参考ください。
1人で学習が難しい場合はオンラインレッスン
1人で学習が難しい場合はオンラインレッスンがおすすめです。
最近では、AWS講座を提供するオンラインレッスンも増えてきました。
料金は高くなりますが、現役エンジニアからAWSについて学ぶことができます。
本ブログ執筆者のメンタリングも受付中
本ブログを執筆している[KAITech]もメンタリングを受け付けています。
オンラインレッスンは高くて手が出せないという方は私までお気軽にご相談ください。
下記から承っております。