ネットワーク分離とセキュリティ

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016

ネットワーク名前空間を使用した分離

各コンテナーのエンドポイントは、自身のネットワーク名前空間内に置かれます。 管理ホスト仮想ネットワーク アダプターとホスト ネットワーク スタックは、既定のネットワーク名前空間にあります。 同じホスト上のコンテナー間でネットワーク分離を適用するために、Windows Server コンテナーごとにネットワーク名前空間が作成され、コンテナーは Hyper-V 分離の下で実行され、コンテナーのネットワーク アダプターがインストールされます。 Windows Server コンテナーでは、ホスト仮想ネットワーク アダプターを使用して仮想スイッチに接続します。 Hyper-V 分離では、合成 VM ネットワーク アダプター (ユーティリティ VM には公開されません) を使用して仮想スイッチに接続します。

合成 VM ネットワーク アダプターを使用した Hyper-V の分離

次の Powershell コマンドレットを実行して、プロトコル スタック内のすべてのネットワーク コンパートメントを取得します。

Get-NetCompartment

ネットワークのセキュリティ

使用されるコンテナーとネットワーク ドライバーに応じて、Windows ファイアウォールと Azure Virtual Filtering Platform (VFP) の組み合わせによってポート ACL が適用されます。

Windows Server コンテナー

次の値は、Windows ホストのファイアウォール (ネットワーク名前空間で対応) と VFP を使用します。

  • 既定の発信: ALLOW ALL
  • 既定の着信: (TCP、UDP、ICMP、IGMP の) 未承諾ネットワーク トラフィックに対して ALLOW ALL
    • これらのプロトコル以外のネットワーク トラフィックに対して DENY ALL

注意

Windows Server バージョン 1709 および Windows 10 Fall Creators Update より前のバージョンでは、既定の受信規則は DENY all でした。 これらの古いリリースを実行しているユーザーは、 (ポート転送) を使用して docker run -p 受信 ALLOW ルールを作成できます。

Hyper-V による分離

Hyper-V 分離で実行されているコンテナーには、独自の分離カーネルがあるため、次の構成で Windows ファイアウォールの独自のインスタンスを実行します。

  • Windows ファイアウォール (ユーティリティ VM で実行) と VFP の両方の既定の ALLOW ALL。

ファイアウォールを使用した Hyper-V 分離

Kubernetes のポッド

Kubernetes ポッドでは、エンドポイントがアタッチされているインフラストラクチャ コンテナーが最初に作成されます。 インフラストラクチャやワーカー コンテナーなど、同じポッドに属するコンテナーは、共通のネットワーク名前空間 (同じ IP やポート空間など) を共有します。

Kubernetes ポッドのネットワーク

既定のポート ACL のカスタマイズ

既定のポート ACL を変更する場合は、ポートを変更する前に ホスト ネットワーク サービス に関するトピックを確認してください。 次のコンポーネント内のポリシーを更新する必要があります。

Note

Transparent モードと NAT モードでの Hyper-V 分離の場合、現在、次の表の "X" によって反映される既定のポート ACL を再構成することはできません。

ネットワーク ドライバー Windows Server コンテナー Hyper-V による分離
透明 Windows ファイアウォール x
NAT Windows ファイアウォール X
L2Bridge 両方 VFP
L2Tunnel 両方 VFP
オーバーレイ 両方 VFP