ネットワークのセグメント化のソリューションを設計する
セグメント化のための Azure の機能
Azure で運用する場合、多くのセグメント化オプションがあります。
- サブスクリプション:高レベルのコンストラクト。プラットフォームを利用するエンティティ間の分離が提供されます。 これは、社内の大規模な組織間の境界を分割することを目的としており、異なるサブスクリプションのリソース間の通信を明示的にプロビジョニングする必要があります。
- 仮想ネットワーク (VNet):サブスクリプション内のプライベート アドレス空間に作成されます。 これにより、既定で 2 つの仮想ネットワーク間でトラフィックが許可されないため、リソースのネットワーク レベルの封じ込めを実現できます。 サブスクリプションと同様に、仮想ネットワーク間の通信は明示的にプロビジョニングする必要があります。
- ネットワーク セキュリティ グループ (NSG):仮想ネットワーク内のリソース間のトラフィックを制御するためのアクセス制御メカニズムです。外部ネットワーク (インターネットや他の仮想ネットワークなど) も使用されます。 NSG を使用すると、サブネット、VM、または VM のグループの境界を作成することにより、セグメント化戦略をより細かく制御できるようになります。 Azure のサブネットで可能な操作については、サブネット (Azure Virtual Network) に関するページを参照してください。
- アプリケーション セキュリティ グループ (ASG):NSG に似ていますが、アプリケーションのコンテキストで参照されます。 これにより、アプリケーション タグの下にある一連の VM をグループ化し、基になる各 VM に適用されるトラフィック ルールを定義できます。
- Azure Firewall:サービスとしてのクラウド ネイティブ ステートフル ファイアウォールです。これは、クラウド リソース、インターネット、オンプレミス間を流れるトラフィックをフィルター処理するために、VNet または Azure Virtual WAN ハブ デプロイでデプロイできます。 ルールまたはポリシーを (Azure Firewall または Azure Firewall Manager を使用して) 作成し、レイヤー 3 からレイヤー 7 の制御を使用してトラフィックを許可するか拒否するかを指定します。 また、Azure Firewall とサード パーティの両方を使用して、インターネットへのトラフィックをフィルター処理することもできます。その場合、高度なフィルター処理とユーザー保護を行うために、サードパーティのセキュリティ プロバイダーを介して一部またはすべてのトラフィックを送信します。
セグメント化のパターン
ネットワークの観点から見た Azure でワークロードをセグメント化するための一般的なパターンを次に示します。 各パターンには、異なる種類の分離と接続が使用されています。 組織のニーズに基づいてパターンを選択してください。
パターン 1:1 つの VNet
ワークロードのすべてのコンポーネントは、1 つの VNet 内に配置されています。 VNet は複数のリージョンにまたがることができないため、このパターンは 1 つのリージョンで運用する場合に適しています。
サブネットやアプリケーション グループなどのセグメントを保護するための一般的な方法は、NSG と ASG を使用することです。 また、Azure Marketplace のネットワーク仮想アプライアンス (NVA) または Azure Firewall を使用して、このセグメント化を実施し、セキュリティで保護することもできます。
この画像では、Subnet1 にデータベース ワークロードがあります。 Subnet2 には Web ワークロードがあります。 Subnet1 が Subnet2 とのみ通信し、Subnet2 がインターネットとのみ通信できるように NSG を構成できます。
別々のサブネットに配置された複数のワークロードがあるユース ケースを考えてみましょう。 あるワークロードが別のワークロードのバックエンドと通信できるように管理することができます。
パターン 2:ピアリングを介して通信する複数の VNet
リソースは、複数の VNet に分散またはレプリケートされます。 VNet はピアリングを介して通信できます。 このパターンは、アプリケーションを個別の VNet にグループ化する必要がある場合に適しています。 または、複数の Azure リージョンが必要な場合です。 利点の 1 つは、組み込みのセグメント化です。1 つの VNet を別の VNet に明示的にピアリングする必要があるためです。 仮想ネットワーク ピアリングは推移的ではありません。 パターン 1 に示すように、NSG および ASG を使用して、VNet 内でさらにセグメント化できます。
パターン 3:ハブ アンド スポーク モデルの複数の VNet
1 つの VNet が特定のリージョンの "ハブ" として指定され、他のすべての VNet はそのリージョンの "スポーク" になります。 ハブとそのスポークはピアリングを介して接続されています。 すべてのトラフィックは、異なるリージョンにある他のハブへのゲートウェイとして動作する機能を持つハブを通過します。 このパターンでは、セキュリティ制御がハブに設定されているため、他の VNet 間のトラフィックをスケーラブルな方法でセグメント化および管理できます。 このパターンの利点の 1 つは、ネットワーク トポロジが増えるにつれ、セキュリティ体制のオーバーヘッドが増大することはないことです (新しいリージョンに展開する場合を除く)。
推奨されるネイティブ オプションは Azure Firewall です。 このオプションは、VNet とサブスクリプションの両方で機能し、レイヤー 3 からレイヤー 7 の制御を使用してトラフィック フローを管理できます。 通信規則を定義し、それらを一貫して適用できます。 次に例をいくつか示します。
- VNet 1 は VNet 2 と通信できませんが、VNet 3 とは通信できます。
- VNet 1 は、*.github.com 以外のパブリック インターネットにアクセスできません。
Azure Firewall Manager プレビューを使用すると、複数の Azure Firewall にわたるポリシーを一元的に管理し、DevOps チームがローカル ポリシーをさらにカスタマイズできるようにすることができます。
パターンの比較
考慮事項 | パターン 1 | パターン 2 | パターン 3 |
---|---|---|---|
接続とルーティング: 各セグメントの相互通信方法 | システム ルーティングでは、任意のサブネット内の任意のワークロードへの既定の接続が提供されます。 | パターン 1 と同じ。 | スポーク ネットワーク間の既定の接続はありません。 接続を有効にするには、ハブで Azure Firewall などのレイヤー 3 ルーターが必要です。 |
ネットワーク レベルのトラフィックのフィルター処理 | トラフィックは既定で許可されます。 NSG、ASG を使用してトラフィックをフィルター処理します。 | パターン 1 と同じ。 | 既定では、スポーク仮想ネットワーク間のトラフィックは拒否されます。 選択したパスを開いて、Azure Firewall の構成を通過するトラフィックを許可します。 |
一元化されたログ記録 | 仮想ネットワークの NSG、ASG ログ。 | すべての仮想ネットワークにわたる NSG、ASG ログを集計します。 | Azure Firewall により、ハブを介して送信されたすべての承認済みまたは拒否済みトラフィックがログに記録されます。 Azure Monitor でログを表示します。 |
意図せず開かれたパブリック エンドポイント | DevOps で誤って、正しくない NSG、ASG 規則を使用してパブリック エンドポイントが開かれる場合があります。 | パターン 1 と同じ。 | スポークでパブリック エンドポイントが誤って開かれた場合、リターン パケットはステートフル ファイアウォール (非対称ルーティング) を介してドロップされるため、アクセスは有効になりません。 |
アプリケーション レベルの保護 | NSG または ASG では、ネットワーク レイヤーのサポートのみが提供されます。 | パターン 1 と同じ。 | Azure Firewall では、送信トラフィックと仮想ネットワーク間での HTTP/S および MSSQL の FQDN フィルター処理がサポートされます。 |