Amazon Web Services ブログ
新機能 – VPC Ingress Routing – サードパーティアプライアンスの統合を簡素化
Architecting on AWS クラスを担当していたとき、お客様から、Amazon Virtual Private Cloud を設定して、オンプレミスと同じネットワークセキュリティポリシーをクラウドで実施する方法をよく尋ねられました。たとえば、侵入検知システム (IDS) アプライアンスを使用してすべての入力トラフィックをスキャンしたり、クラウドでオンプレミスと同じファイアウォールを使用したりするために。今日まで、私が提供できる唯一の答えは、すべてのトラフィックを VPC からオンプレミスのアプライアンスまたはファイアウォールにルーティングして、クラウドにルーティングする前に通常のネットワーク機器でトラフィックを検査することでした。これは明らかに理想的な設定ではなく、レイテンシーと複雑さが増します。
今日、新しい VPC ネットワーキングルーティングプリミティブを発表します。これにより、インターネットゲートウェイ (IGW) または仮想プライベートゲートウェイ (VGW) との間の送受信、または Amazon Elastic Compute Cloud (EC2) インスタンスの Elastic Network Interface へ送信されるすべてのトラフィックをルーティングできます。つまり、トラフィックがビジネスワークロードに到達する前にすべてのトラフィックを EC2 インスタンスに送信するように仮想プライベートクラウドを設定できるようになりました。通常、インスタンスはネットワークセキュリティツール (IDS/IPS または Firewall など) を実行して、疑わしいネットワークトラフィックを検査またはブロックするか、他の EC2 インスタンスにトラフィックを中継する前に他のネットワークトラフィック検査を実行します。
仕組み
その仕組みを学ぶために、この CDK スクリプトを作成して、アプライアンス用のサブネットとビジネスアプリケーション用のサブネットの 2 つのパブリックサブネットを持つ VPC を作成しました。このスクリプトは、パブリック IP アドレスを持つ 2 つの EC2 インスタンス (各サブネットに 1 つずつ) を起動します。スクリプトは以下のアーキテクチャを作成します。
これは通常の VPC であり、サブネットにはインターネットゲートウェイへのルーティングテーブルがあり、トラフィックは期待どおりに出入りします。アプリケーションインスタンスは静的なウェブサイトをホストし、どのブラウザーからもアクセスできます。EC2 コンソールからアプリケーションのパブリック DNS 名を取得できます (便宜上、CDK スクリプトのコメントに CLI バージョンも含めました)。
ルーティングの設定
ルーティングを設定するには、VPC ID、アプライアンスインスタンスにアタッチされている ENI の ENI ID、およびインターネットゲートウェイ ID を知る必要があります。提示した CDK スクリプトを使用してインフラストラクチャを作成したと仮定すると、これら 3 つの ID を見つけるために使用するコマンドは次のとおりです (お使いの AWS リージョンに合わせて調整してください)。
アプライアンスを介してすべての着信トラフィックをルーティングするには、次のように、インターネットゲートウェイのルーティングテーブルを作成し、すべてのトラフィックを EC2 インスタンス Elastic Network Interface (ENI) に転送するルールをアタッチします。
または、新しい Edge Associations タブで VPC コンソールを使用できます。
すべてのアプリケーション送信トラフィックをアプライアンスにルーティングするために、次のように、アプリケーションサブネットのデフォルトルートをアプライアンスの ENI を指すように置き換えます。
あるいは、VPC コンソールを使用できます。正しいルーティングテーブル内で、[ルート] タブを選択し、[ルートの編集] をクリックして、アプライアンスの ENI を指すようにデフォルトルート (0.0.0.0/0
を指しているルート) を置き換えます。
これで、ルーティング設定が準備できました。新しいルーティングは次のようになります。
アプライアンスインスタンスの設定
最後に、受信したすべてのトラフィックを転送するようにアプライアンスインスタンスを設定します。通常、ソフトウェアアプライアンスがこれを行います。AWS Marketplace アプライアンスを使用する場合、追加の手順は必要ありません。プレーン Linux インスタンスを使用する場合、次の 2 つの追加手順が必要です。
1.EC2 アプライアンスインスタンスに接続し、カーネルで IP トラフィック転送を設定します。
2.次のように、EC2 インスタンスを、それ自体とは異なる送信先へのトラフィックを受け入れるように設定します (送信先/送信元チェックとして知られています)。
これで、アプライアンスはトラフィックを他の EC2 インスタンスに転送する準備ができました。これをテストするには、ブラウザでアプリケーションインスタンスを指定します (または「cURL」を使用します)。
トラフィックがアプライアンスに実際に流れていることを確認するには、インスタンスで送信元/送信先チェックを再度有効にします (上記の modify-instance-attribute
CLI コマンドで -source-dest-check パラメータを使用します)。送信元/送信先チェックが有効な場合、トラフィックはブロックされます。
クリーンアップ
この記事で提示した CDK スクリプトを使用する場合は、終了したら必ず cdk destroy
を実行してください。これにより、このデモで使用する 2 つの EC2 インスタンスの料金が請求されなくなります。AWS CloudFormation の背後にあるルーティングテーブルを変更したため、ルーティングテーブル、サブネット、VPC を手動で削除する必要があります。最も簡単な方法は、VPC コンソールに移動し、VPC を選択してから [アクション]、次に [VPC の削除] をクリックすることです。コンソールは、すべてのコンポーネントを正しい順序で削除します。コンソールが VPC を削除できるようになるまで、cdk destroy
の終了後 5〜10 分待つ必要がある可能性があります。
パートナーから
これらの新しいルーティング機能のベータテスト中に、AWS パートナーに早期アクセスを付与しました。パートナーはたくさんの有益なフィードバックを提供してくれました。パートナーが書いたブログ記事の一部を以下に示し、経験を共有します (公開されているリンクを使用してこの記事を更新しています)。
- 128 Technology
- Aviatrix
- Checkpoint
- Cisco
- Citrix
- FireEye
- Fortinet
- HashiCorp
- IBM Security
- Lastline
- Netscout
- Palo Alto Networks
- ShieldX Networks
- Sophos
- Trend Micro
- Valtix
- Vectra AI
- Versa Networks
可用性
仮想プライベートクラウドイングレスルーティングを使用するための追加費用はありません。すべてのリージョン (AWS GovCloud (米国西部) を含む) で利用でき、今日からお使いいただけます。
更新された VPC ドキュメントで、ゲートウェイルーティングテーブルの詳細を確認できます。
この新しい VPC ルーティング機能をどのアプライアンスに使うことをお考えですか?