[AWS]NLBでTLS利用した時のソースIPについて調べたらなるほどでした[小ネタ]

NLBがTLS Terminationをサポートしました!またアクセスログの取得可能になっています!
2019.03.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ、千葉です。小ネタです。

以前、こんな記事がありました。

AWS Network Load Balancer(NLB)のソースIPとターゲットのセキュリティグループ留意点まとめ

ターゲットグループの種類によって、EC2で見えるIPがクライアントのIPなのかNLBのIPなのかがことなりました。 で、最近NLBにTLSの機能が追加されています。

静的なIPアドレスを持つNLBがTLS Terminationに対応してアクセスログも出力可能に!

そこで気になったのがTLSを有効にした場合、EC2ではどのIPでアクセスログが残るのか?でした。ということで早速試して確認しました。

やってみた

実際やってみました

  • NLBにてTLSを有効
  • EC2にApacheを設定し、アクセスログで表示されるIPを確認する

では、早速環境を構築しました。

NLBにてTLSを有効化します

Apacheを設定してブラウザでアクセスできる環境を用意しました

ではさっそくどんなログが表示されるかみてみます。

TLSを無効状態でのログ

念の為、TLSをオフの状態でのApacheのアクセスログです。

xx.xx.xx.xx - - [29/Mar/2019:08:25:17 +0000] "GET / HTTP/1.1" 403 3630 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"

予想通り、私のパソコンのグローバルIPが表示されました。

TLSを有効状態でのログ

では、TLSを有効状態にしたApacheのアクセスログです。

xx.xx.xx.xx - - [29/Mar/2019:08:36:19 +0000] "GET / HTTP/1.1" 403 3630 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"

TLSを有効化した場合も 私のパソコンのグローバルIP が表示されました。 TLSあり/TLSなし共に同じ挙動でした。なるほどです。

さいごに

TLSの有無にかかわらず、EC2から見えるのはクライアントIPアドレスでした。結果、挙動かわらないようでした。

現場からは以上です。