CloudFrontで接続元のクライアントIPアドレスと使用ポート番号が取得できるCloudFront-Viewer-Addressヘッダが利用可能になりました。policyで設定する点に注意しましょう。CloudFront#AWS清水俊也2021.10.26835この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。CloudFrontでクライアントのIPアドレスと接続ポート情報を確認できるCloudFront-Viewer-Addressヘッダが利用可能になりました。2021/10/25付でポストされたアップデート内容になります。headerCloudFront-Viewer-Addressヘッダをオリジンサーバに転送するようCloudFrontを設定することで、オリジンサーバ側でクライアントのIPアドレスならびに接続ポート情報の確認がリアルタイムに行えます。これまでだと接続元IPアドレスの確認はX-Forwarded-Forヘッダの解析が必要、接続ポートまで含めた情報はアクセスログの解析が必要な状況でした。poilcyとして設定する必要がある点に注意しましょう。policyに設定して動作を確認してみたのでまとめてみます。CloudFront-Viewer-Addressヘッダを確認するそれでは実際にCloudFrontにCloudFront-Viewer-Addressヘッダをオリジンに転送するよう設定、このヘッダ内容を確認してみます。policyを作成作成します。policy]ボタンから進みます。headerの項目ではCloudFront-Viewer-Addressを選択します。policyで作成したポリシー(今回は「Custom-CloudFrontViewerAddressHeader」という名称)を選択します。policyは「CachingDisabled」としました。以上でCloudFront側の設定は完了です。PHPの環境を準備、以下のindex.phpのコードを配置してヘッダの内容を出力するようにします。DistributionのDeployが完了したら、実際にCloudFrontドメインにアクセスしてみます。CloudFront-Viewer-Addressのヘッダとして、202.XXX.XXX.50:5399という情報が取得できていますね。クライアントはIPアドレス202.XXX.XXX.50、ポート5399で接続していることがわかります。以下はIPv6環境から接続した例です。クライアントのIPアドレスは240b:XXXXXXXXXX:8ef3、ポート6097で接続していることが確認できます。CloudFrontで新たに追加されたCloudFront-Viewer-Addressヘッダを確認してみました。これまで確認や利用に一手間二手間かかっていたクライアントのIPアドレスと接続ポートの情報が1つのヘッダでシンプルに取得できます。うれしいアップデートだなと思いました。Functionsでも利用可能とのことです、こちらでも活用の幅が広がりそうですね。