Netzwerksicherheitsgruppen zum Konfigurieren eines virtuellen Netzwerks in Azure Container Apps

Netzwerksicherheitsgruppen (Network Security Groups, NSGs), die Sie für die Konfiguration virtueller Netzwerke benötigen, ähneln genau den Einstellungen, die Kubernetes erfordert.

Sie können ein Netzwerk über NSGs mit restriktiveren Regeln sichern als die Standardregeln für NSG, um den gesamten eingehenden und ausgehenden Datenverkehr für die Azure Container Apps Umgebung auf Abonnementebene zu steuern.

In der Workloadprofilumgebung werden benutzerdefinierte Routen (USER-Defined Routes, UDRs) und das Sichern von ausgehendem Datenverkehr mit einer Firewall unterstützt. Eine Anleitung zum Einrichten eines UDR für Container-Apps zum Einschränken ausgehender Datenverkehrs mit Azure Firewall finden Sie unter Control outbound traffic in Azure Container Apps with user-defined routes.

Wenn Sie eine externe Workloadprofilumgebung verwenden, leitet eingehender Datenverkehr an Container-Apps über die öffentliche IP, die in der verwalteten Ressourcengruppe vorhanden ist, statt über Ihr Subnetz weiter. Diese Einschränkung bedeutet, dass das Sperren eingehender Datenverkehr über NSG oder Firewall in einer externen Workloadprofilumgebung nicht unterstützt wird.

In der legacy-Umgebung "Nur Verbrauch" wird Azure ExpressRoute nicht unterstützt, und benutzerdefinierte UDRs haben eingeschränkte Unterstützung. Weitere Informationen zur Ebene der UDR-Unterstützung, die in einer Nur-Verbrauch-Umgebung verfügbar ist, finden Sie in den häufig gestellten Fragen (FAQ).

NSG-Zulassungsregeln

In den folgenden Tabellen wird beschrieben, wie Sie eine Sammlung von NSG-Zulassungsregeln konfigurieren. Die spezifischen Regeln, die Sie benötigen, sind von Ihrem Umgebungstyp abhängig.

Eingehend

Hinweis

Wenn Sie Arbeitsauslastungsprofile verwenden, gelten eingehende NSG-Regeln nur für Datenverkehr, der über Ihr virtuelles Netzwerk geht. Wenn Sie Ihre Container-Apps so festlegen, dass Datenverkehr aus dem öffentlichen Internet akzeptiert wird, durchläuft eingehender Datenverkehr den öffentlichen Endpunkt anstelle des virtuellen Netzwerks.

Protokoll Quelle Quellports Bestimmungsort Zielports Beschreibung
TCP Ihre Client-IPs * Subnetz1 Ihrer Container-App 80, 31080 Ermöglichen Sie Ihren Client-IPs den Zugriff auf Container-Apps, wenn Sie HTTP verwenden. 31080 ist der Port, an dem der Edgeproxy der Container-Apps-Umgebung auf den HTTP-Datenverkehr reagiert. Sie liegt hinter dem internen Lastenausgleichsmodul.
TCP Ihre Client-IPs * Subnetz1 Ihrer Container-App 443, 31443 Ermöglichen Sie Ihren Client-IPs den Zugriff auf Container-Apps, wenn Sie HTTPS verwenden. 31443 ist der Port, an dem der Edgeproxy der Container-Apps-Umgebung auf den HTTPS-Datenverkehr reagiert. Sie liegt hinter dem internen Lastenausgleichsmodul.
TCP Azure-Lastenausgleich * Subnetz Ihrer Container-App 30000-32767 2 Ermöglichen Sie Azure Load Balancer, Back-End-Pools zu untersuchen.
TCP Ihre Client-IPs * Subnetz Ihrer Container-App Verfügbar gemachte Ports und 30000-327672 Diese Regel gilt nur für TCP-Apps. Sie ist für HTTP-Apps nicht erforderlich.

1 Sie übergeben diese Adresse als Parameter, wenn Sie eine Umgebung erstellen. Beispiel: 10.0.0.0/21.

2 Sie benötigen den vollständigen Bereich, wenn Sie Ihre Container-Apps als Port innerhalb des Bereichs erstellen, dynamisch zugewiesen wird. Nachdem Sie die Container-Apps erstellt haben, sind die erforderlichen Ports zwei unveränderliche, statische Werte, und Sie können Ihre NSG-Regeln aktualisieren.

Ausgehend

Protokoll Quelle Quellports Bestimmungsort Zielports Beschreibung
TCP Subnetz Ihrer Container-App * MicrosoftContainerRegistry 443 Dieses Diensttag stellt Microsoft Artefaktregistrierung für Systemcontainer dar.
TCP Subnetz Ihrer Container-App * AzureFrontDoor.FirstParty 443 Dieses Diensttag ist eine Abhängigkeit des MicrosoftContainerRegistry Diensttags.
Beliebig Subnetz Ihrer Container-App * Subnetz Ihrer Container-App * Diese Regel ermöglicht die Kommunikation zwischen IPs im Subnetz Ihrer Container-App.
TCP Subnetz Ihrer Container-App * AzureActiveDirectory 443 Wenn Sie eine verwaltete Identität verwenden, ist dies erforderlich.
TCP Subnetz Ihrer Container-App * AzureMonitor 443 Diese Regel ist nur erforderlich, wenn Sie Azure Monitor verwenden. Es ermöglicht ausgehende Anrufe, Azure Monitor.
TCP und UDP Subnetz Ihrer Container-App * 168.63.129.16 53 Mit dieser Regel kann die Umgebung Azure DNS verwenden, um den Hostnamen aufzulösen.

Die DNS-Kommunikation an Azure DNS unterliegt nicht NSGs, es sei denn, sie wird über das AzurePlatformDNS-Diensttag adressiert. Um DEN DNS-Datenverkehr zu blockieren, erstellen Sie eine ausgehende Regel, um den Datenverkehr an das AzurePlatformDNS Diensttag zu verweigern.
TCP Subnetz1 Ihrer Container-App * Ihre Containerregistrierung Port der Containerregistrierung Diese Regel ist erforderlich, um mit Ihrer Containerregistrierung zu kommunizieren. Wenn Sie z. B. Azure Container Registry verwenden, benötigen Sie AzureContainerRegistry und AzureActiveDirectory für das Ziel. Der Port ist der Port Ihrer Containerregistrierung, es sei denn, Sie verwenden private Endpunkte. 2
TCP Subnetz Ihrer Container-App * Storage.<Region> 443 Diese Regel ist nur erforderlich, wenn Sie die Containerregistrierung verwenden, um Ihre Images zu hosten.

1 Sie übergeben diese Adresse als Parameter, wenn Sie eine Umgebung erstellen. Beispiel: 10.0.0.0/21.

2 Wenn Sie die Containerregistrierung mit NSGs verwenden, die in Ihrem virtuellen Netzwerk konfiguriert sind, erstellen Sie einen privaten Endpunkt in Ihrer Containerregistrierung, damit Container-Apps Bilder über das virtuelle Netzwerk abrufen können. Sie müssen keine NSG-Regel für die Containerregistrierung hinzufügen, wenn sie mit privaten Endpunkten konfiguriert ist.

Überlegungen

  • Bei Verwendung von HTTP-Servern müssen ggf. die Ports 80 und 443 hinzugefügt werden.
  • Verweigern Sie nicht explizit die Azure DNS Adresse 168.63.129.16 in den ausgehenden NSG-Regeln. Wenn Sie dies tun, funktioniert Ihre Container-Apps-Umgebung nicht.