0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エンドツーエンドの暗号化はNLB

Posted at

概要

AWS ANS試験の勉強にあたり、エンドツーエンドの暗号化について理解するための備忘録です。

なぜ Network Load Balancer (NLB) を選ぶのか?

ALB (Application Load Balancer) は HTTPS ターミネーションを行うため、ALB では「エンドツーエンドの暗号化」は実現できない。

image.png

NLB (Network Load Balancer) は TCP レベルで動作し、SSL ターミネーションをしないため、クライアントから EC2 までの完全な暗号化を維持できる。

ALB では クッキーを使ったスティッキーセッション をサポートするが、NLB では ソース IP を使ったスティッキーセッション を設定できる。

TCP レベルの負荷分散でスティッキーセッションを実現するには NLB が適している。

HTTPS のリクエストはどう処理するのか?

NLB は L4 (Transport Layer) の負荷分散 を行うため、TCP 443 のリクエストをそのまま EC2 に転送するだけ。

EC2 側で SSL/TLS の処理を行うので、エンドツーエンドの暗号化が維持される。

つまり、NLB 自体は HTTPS を「理解」しないが、TCP 443 のトラフィックをそのまま EC2 に渡すため、HTTPS 通信が維持される。

エンドツーエンドの実装例

  1. NLB を作成する
  2. ターゲットグループを作成
    プロトコル: TCP
    ポート: 443
  3. スティッキーセッション (セッションアフィニティ) を有効化
  4. EC2 インスタンスをターゲットグループに登録
  5. リスナーを作成
    プロトコル: TCP
    ポート: 443
  6. EC2 インスタンスに SSL 証明書をデプロイ
  7. EC2 側で HTTPS (SSL/TLS) を終端する
  8. エンドツーエンドの暗号化を実現!

ALBではだめなのか?

ALB を使うと、通常は ALB で HTTPS を終端 して、その後は HTTP で EC2 に転送される。
しかし、要件は「エンドツーエンドの暗号化」なので、ALB では不適切。
ALB に SSL パススルーの機能はない ため、HTTPS を維持するなら NLB を使うしかない。

まとめ

  • HTTPS は「L7 (アプリケーション層) のプロトコル」なので、NLB は「理解しない」が、TCP 443 のトラフィックをそのまま転送できる。
  • EC2 側で SSL/TLS を処理することでエンドツーエンドの暗号化が実現できる。
  • スティッキーセッション (セッションアフィニティ) を IP ベースで実現するためには NLB が適している。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?