ちょっと話題の記事

[新サービス]セキュリティ製品等の新しい展開方法が可能なAWS Gateway Load Balancerが発表されたので調査してみた

AWS Gateway Load Balancerという名前からは少し分かりづらいですが、セキュリティ製品をシンプルに利用しやすくなるアップデートです。
2020.11.13

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

こんにちは、臼田です

みなさん、セキュリティ対策してますか?(挨拶

今回は新サービスの紹介です。AWS Gateway Load Balancer(GWLB)というサービスが登場しました。

私はRSSで流れてきたこの名前を見て、「新しいロードバランサーが出てきたのか、へー」と思ってしばらく流していたのですが、いざ中身を読んでみたらめっちゃセキュリティに関係するアップデートでした!以下がリリースです。

Introducing AWS Gateway Load Balancer

概要

さっくり説明すると、サードパーティのセキュリティ製品などをAWS上で利用する場合、従来ではNLBを挟んだり、VPC PeeringやTransit Gatewayなどでネットワークをつないでルーティングしたり、NATして連携したりしていたところを、GWLBとGateway Load Balancer Endpoint(GWLBE)を利用することによりシンプルにスケール・可用性・サービス提供のしやすさを向上することが可能になります。

字面では分かりづらいので以下の図を見ていただくといいでしょう。

引用: Getting started with Gateway Load Balancers - Elastic Load Balancing

右側がセキュリティ製品があるVPCで、左側がアプリケーションサーバーとIGWがあるVPCです。この2つをGateway Load BalancerとそのEndpointがつなぎます。この接続はPrivateLinkで提供されるため、VPC同士の直接の繋がりは必要ありません。つまりCIDRが重複してもOKです!

そしてこの間の通信はGeneve(Generic Network Virtualization Encapsulation)プロトコルを利用してレイヤー3でカプセル化され、元のトラフィックを加工せずにセキュリティ製品に転送します。パケットを加工しないためセキュリティ製品を透過的に挿入できます。

もちろんLoad Balancerなのでセキュリティ製品の死活監視やAutoScalingにも対応しています。

各ベンダーのドキュメント

ここまでの情報でなんとなくは理解できたような気もしますが、私はいまいちピンと来なかったので各ベンダーのリリースやドキュメントも見てみました。AWSのリリースでは以下13ベンダーの名前が乗っていました。

いくつか馴染みのあるところを見ていきましょう。

Palo Alto Networksのドキュメント

Palo Altoの場合下記で技術的な解説がされています。

How VM-Series Integrates with AWS Gateway Load Balancer - Palo Alto Networks Blog

Before / Afterの図が非常にわかりやすいです。

以下はBefore。Transit Gatewayを用いて構成しています。インバウンド用VPCの中に展開したVM-SeriesのところでSNAT + DNATが必要であったり、East-WestやアウトバウンドのVM-Seciesではスケールとスループットをトレードオフする必要がありました。

以下はAfter。まず圧倒的に構成がシンプルになります。インバウンドは各VPCに設置したエンドポイントからGWLBを経由してVM-Seriesに送ることが可能で、透過的に送られるためSNATの必要がありません。Transig Gateway経由の通信も含めすべての通信をGWLB経由とすることにより適切なスケーリングが可能となり、IPSecトンネルが不要になるためオーバーヘッドも減ります。そしてインスタンスをまとめることにより数を減らしてコストパフォーマンスがよくなります。

CheckPointのドキュメント

個人的にはこのドキュメントが一番GWLBの理解を深めることができました。

Check Point CloudGuard integrates with AWS Gateway Load Balancer at Launch - Check Point Software

以下の図でフローが説明されています。

Geneveプロトコルを利用することにより透過的にセキュリティ製品を挟むことができ、GWLBがヘルスチェックやスケーリングを簡単に実現してくれます。

トレンドマイクロのドキュメント

トレンドマイクロでは、Cloud One Network Securityという製品でGWLBをサポートしています。

Gateway Load Balancer deployment options - Network Security | Trend Micro Cloud One™ Documentation

以下のような構成でインプット/アウトプットのトラフィックをチェックすることが可能です。

仮想パッチ、脆弱性シールド、エクスプロイトブロッキング、高精度の防御オプションを含む攻撃を検出および防止などが提供されます。具体的な構成方法も書かれています。

ちょっとやってみた

残念ながらセキュリティ製品と連携してバッチリ動かすのが、詳細なドキュメントが出ていなくて簡単にできそうになかったので、Gateway Load BalancerとGateway Load Balancer Endpointを作るところだけやってみました。

ちなみに対応リージョンは米国東部(バージニア州北部)、米国西部(オレゴン州)、EU(アイルランド)、アジア太平洋(シドニー)、および南米(サンパウロ)となり、東京はまだ対応していません。(かなしみ

まずはロードバランサーの作成から。作成画面にGateway Load Balancerが追加されています。旧来のClassic Load Balancerの位置にあったため一瞬CLBが無くなったかと思いましたが左下にちゃっかり生きていました。

適当な名前をつけてVPCやサブネットを選びます。このあたりは普段のロードバランサーと同じですね。

ターゲットグループもいつもどおり、ただしプロトコルはGENEVEとなりポートは6081です。

そのまま作成まで進めます。作成したら「統合サービス」からエンドポイントサービスの作成へ飛びます。

「エンドポイントサービスの作成」を押します。

対象となるGWLBを選択して作成します。

作成したらサービス名が生成されるのでこれをコピーします。

今度はエンドポイントの作成へ。通常であればこれを別VPCや別アカウントで作業することが多いでしょう。同一のVPCでも可能です。

「サービスを名前で検索」から先ほど控えたサービス名を入れて検証します。問題なければエンドポイントを作成するVPCとサブネットを1つ選んで作成します。

承認待ちになるため、作成したエンドポイントサービス側で「エンドポイント接続」から対象を選択して「アクション」から承認します。

これでエンドポイントが使用可能になりました。接続したいAZの数だけ作成するといいでしょう。

ちょっとやってみたはここまでです。本来であれば、AMIから起動したセキュリティ製品をターゲットグループに追加して、ルーティングを適切に書き換えて利用できるところまでやりたかったのですが、もう少し詳細な情報が出てきたら再チャレンジしてみたいと思います。

まとめ

名前からはぱっとイメージしづらいですが、セキュリティ製品のゲートウェイとなってシンプルに可用性やスケールを実現できるのがAWS Gateway Load Balancerでした。

透過的に利用でき、既存の構成よりもかなりシンプルに利用できると思います。

また、PrivateLinkで利用することができるので、利用者のVPCとセキュリティ製品のVPCが別の会社でも安心して利用できそうです。マネージドセキュリティサービスを提供する方法としても活躍しそうです。

可能性が広がるAWS Gateway Load Balancerを是非チェックしてみてください!