AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

WAF→CLOUDFRONT→ALB→EC2経由のREMOTE_PORTが知りたい

0

サービスを WAF→CLOUDFRONT→ALB→EC2 で構築しています。 EC2へ投稿を行ったユーザーのREMOTE_PORTを取得したいのですが、ALBの「クライアントポートの保持 」設定以外にどこの設定が必要でしょうか。

2回答
1
承認された回答

以下のブログが参考になると思います。
CloudFront-Viewer-Addressヘッダーを使用すれば見れるようになります。
https://dev.classmethod.jp/articles/amazon-cloudfront-client-ip-address-connection-port-header/
https://tech.medpeer.co.jp/entry/cloudfront_viewer_address

profile picture
エキスパート
回答済み 19日前
1

WAF→CloudFront→ALB→EC2の構成で、EC2へ投稿を行ったユーザーのREMOTE_PORTを取得するには、ALBの「クライアントポートの保持」設定だけでは不十分です。この構成では、CloudFrontがリクエストを中継するため、追加の設定が必要です。

以下の手順を実施することで、オリジナルのクライアントポート情報を保持できます:

  1. CloudFrontの設定: CloudFrontでカスタムヘッダーを追加し、オリジナルのクライアント情報を転送するように設定します。具体的には、X-Forwarded-For、X-Forwarded-Proto、X-Forwarded-Portヘッダーを追加し、ALBに転送するようにします。

  2. ALBの設定: ALBで「クライアントポートの保持」を有効にすることに加えて、CloudFrontからのカスタムヘッダーを信頼するように設定します。

  3. EC2インスタンスの設定: EC2インスタンス上のアプリケーションで、X-Forwarded-Portヘッダーを読み取るように設定します。このヘッダーにオリジナルのクライアントポートが含まれています。

  4. セキュリティグループの設定: ALBのセキュリティグループで、CloudFrontのIPアドレス範囲からの通信のみを許可するように設定します。これにより、CloudFrontを経由しない直接のアクセスを防ぎ、正確なクライアント情報を維持できます。

これらの設定を適切に行うことで、WAF→CloudFront→ALB→EC2の構成でも、オリジナルのクライアントのREMOTE_PORTを正確に取得することが可能になります。

Sources
WAF on ALB or CloudFront ? | AWS re:Post
AWS Application Load Balancer announces CloudFront integration with built-in WAF - AWS

profile picture
回答済み 19日前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ