次の方法で共有


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

適用対象: 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

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

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

Windows Server コンテナー

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

  • 既定の発信: ALLOW ALL
  • 既定の着信: ALLOW ALL (TCP、UDP、ICMP、IGMP) の未承諾ネットワーク トラフィック
    • これらのプロトコルからではなく、他のすべてのネットワーク トラフィックを拒否する

手記

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

Hyper-V 分離

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

  • Windows ファイアウォール (ユーティリティ VM で実行) と VFP の両方に、既定で ALLOW ALL に設定されています。

ファイアウォールHyper-V isolation with firewallHyper-V isolation with firewallを使用したHyper-V の分離

Kubernetes ポッド

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

Kubernetes ポッドのネットワーク

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

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

手記

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

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