🚶 ビルAの1F社員がビルCの2F社員を訪問したい
VPC-Aの AZ1 にあるインスタンスが、VPC-C の AZ2 にあるインスタンスと通信を開始します。通信はまず中央連絡通路(TGW)を経由し、セキュリティVPC(共有VPC)のファイアウォールでチェックされます。
ステートフルアプライアンスを使うなら必須の設定。たとえ話と図解で「なぜ必要か」「何が変わるか」をゼロから理解
Transit Gateway アタッチメントの設定オプション。有効にすると「同じ通信フローは常に同じアプライアンスを往復する」ことが保証されます。
同じ通信(行き・帰り)が必ず同じファイアウォールを通過。セッション情報の不整合によるパケット破棄を防止。
送信元と宛先が異なるAZにいても、トラフィックは一貫して同じAZのアプライアンスを経由する。
ステートフルアプライアンスが存在するVPCのTGWアタッチメントで設定する。VPC単位ではなくアタッチメント単位。
Transit Gateway のアプライアンスモードを「オフィスビルの入退館管理」にたとえて理解しましょう。
大きなビジネスパークに複数のオフィスビル(VPC)があり、ビル間の移動には中央の連絡通路(Transit Gateway)を通ります。連絡通路にはフロアごとにセキュリティゲート(ファイアウォール)が設置されています。
まず、アプライアンスモードを有効にしない場合のデフォルト動作を理解しましょう。
TGWはデフォルトで「同じAZ内にトラフィックを留めよう」とします。AZ1から発信されたトラフィックは、宛先VPCのAZ1へ到達します。
送信元がAZ1、宛先がAZ2の場合、TGWは最短パスを選びます。行きはAZ1の警備員を通り、帰りはAZ2の警備員を通る可能性があります。
実際のシナリオをオフィスビルのたとえで順を追って見てみましょう。
VPC-Aの AZ1 にあるインスタンスが、VPC-C の AZ2 にあるインスタンスと通信を開始します。通信はまず中央連絡通路(TGW)を経由し、セキュリティVPC(共有VPC)のファイアウォールでチェックされます。
トラフィックは共有VPCの AZ1 にあるファイアウォール(1Fの警備員)を通過。警備員はこの通信のセッション情報(送信元、宛先、ポート番号など)を記録し、「通過許可」を出します。
帰りのトラフィック(応答パケット)は宛先がAZ1ですが、TGWの最短パス選択により AZ2 のファイアウォール(2Fの警備員)を経由します。2Fの警備員にはこの通信の記録がないため、不正な通信として遮断(ドロップ)してしまいます。
アプライアンスモードを有効にすると、TGWは同じ通信フローを常に同じAZのアプライアンスにルーティングします。行きも帰りも必ず1Fの警備員を通るようになり、セッション情報が正しく照合されて通信が成功します。
アプライアンスモード無効時と有効時のトラフィックフローの違いを視覚的に比較します。
TGWがAZごとに最短パスを選ぶため、往路と復路で異なるファイアウォールを通過する。
AZ情報が保持され、同じフローのパケットは常に同じアプライアンスを往復する。
なぜ別のファイアウォールを通ってはいけないのか、ステートフル検査の仕組みから理解します。
ファイアウォールは通過するパケットの「誰が」「どこへ」「どのポートで」を記録。この記録はそのFWインスタンスのメモリ上にのみ存在する。
帰りのパケットが到着すると、FWは「行きの記録」と照合する。記録がなければ「不正な通信」と判断してドロップする。
各AZのFWインスタンスは独立して動作。AZ1のFWの記録をAZ2のFWは知らない。だから同じFWを通る必要がある。
アプライアンスモードは「ステートフルアプライアンスが存在するVPCのTGWアタッチメント」で有効にします。つまり共有VPC(セキュリティVPC)のアタッチメントで設定します。送信元VPCや宛先VPCではなく、ファイアウォールがデプロイされているVPCのアタッチメントが対象です。VPC全体ではなく、TGWアタッチメント単位の設定である点もポイントです。
AWS CLI と CloudFormation での有効化手順を確認します。
既存のTGW VPCアタッチメントに対してアプライアンスモードを有効にします。
# 共有VPC(ファイアウォールVPC)のTGWアタッチメントで有効化
aws ec2 modify-transit-gateway-vpc-attachment \
--transit-gateway-attachment-id tgw-attach-0abc123def456 \
--options ApplianceModeSupport=enable
テンプレートでTGWアタッチメントを定義する際に指定します。
SecurityVpcAttachment:
Type: AWS::EC2::TransitGatewayVpcAttachment
Properties:
TransitGatewayId: !Ref TransitGateway
VpcId: !Ref SecurityVpc
SubnetIds:
- !Ref SecuritySubnetAZ1
- !Ref SecuritySubnetAZ2
Options:
ApplianceModeSupport: enable
Created by SSuzuki1063
AWS SAP Learning Resources