Sichern eines benutzerdefinierten VNET in Azure-Container-Apps mit Netzwerksicherheitsgruppen
Die Netzwerksicherheitsgruppen (NSGs), die zum Konfigurieren virtueller Netzwerke erforderlich sind, ähneln den von Kubernetes benötigten Einstellungen stark.
Sie können ein Netzwerk über NSGs mit restriktiveren Regeln sperren als die Standardmäßigen NSG-Regeln, um den gesamten eingehenden und ausgehenden Datenverkehr für die Container-Apps-Umgebung auf Abonnementebene zu steuern.
In der Umgebung für Workloadprofile werden benutzerdefinierte Routen (USER-Defined Routes, UDRs) und das Sichern von ausgehendem Datenverkehr mit einer Firewall unterstützt. Wenn Sie eine umgebung für externe Workloadprofile verwenden, werden eingehender Datenverkehr zu Azure-Container-Apps über die öffentliche IP weitergeleitet, die in der verwalteten Ressourcengruppe vorhanden ist, anstatt über Ihr Subnetz. Dies bedeutet, dass das Sperren eingehender Datenverkehr über NSG oder Firewall in einer umgebung für externe Workloadprofile nicht unterstützt wird. Weitere Informationen finden Sie unter Networking in Azure Container Apps-Umgebungen.
In der Umgebung "Nur Verbrauch" werden Expressrouten nicht unterstützt, und benutzerdefinierte benutzerdefinierte benutzerdefinierte Routen (UDRs) unterstützen nur eingeschränkt. 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 erforderlichen Regeln hängen vom Umgebungstyp ab.
Eingehend
Hinweis
Bei Verwendung von Workloadprofilen gelten eingehende NSG-Regeln nur für Datenverkehr, der über Ihr virtuelles Netzwerk läuft. Wenn Ihre Container-Apps so eingestellt sind, dass Datenverkehr aus dem öffentlichen Internet akzeptiert wird, durchläuft eingehender Datenverkehr den öffentlichen Endpunkt anstelle des virtuellen Netzwerks.
Protokoll | Quelle | Quellports | Destination | Zielports | Beschreibung |
---|---|---|---|---|---|
TCP | Ihre Client-IPs | * | Subnetz1 Ihrer Container-App | 80 , 31080 |
Erlauben Sie Ihren Client-IPs, bei Verwendung von HTTP auf Azure-Container-Apps zuzugreifen. 31080 ist der Port, an dem der Edgeproxy der Container-Apps-Umgebung auf den HTTP-Datenverkehr reagiert. Es liegt hinter dem internen Lastenausgleichsmodul. |
TCP | Ihre Client-IPs | * | Subnetz1 Ihrer Container-App | 443 , 31443 |
Ermöglichen Sie Ihren Client-IPs den Zugriff auf Azure-Container-Apps bei Verwendung von HTTPS. 31443 ist der Port, an dem der Container-Apps-Edgeproxy auf den HTTPS-Datenverkehr reagiert. Es liegt hinter dem internen Lastenausgleichsmodul. |
TCP | AzureLoadBalancer | * | Subnetz Ihrer Container-App | 30000-32767 2 |
Ermöglichen Sie Azure Load Balancer, Back-End-Pools zu untersuchen. |
1 Diese Adresse wird beim Erstellen einer Umgebung als Parameter übergeben. Beispiel: 10.0.0.0/21
.
2 Der vollständige Bereich ist erforderlich, wenn Sie Ihre Azure-Container-Apps als Port innerhalb des Bereichs erstellen, indem sie dynamisch zugeordnet werden. Nach der Erstellung sind die erforderlichen Ports zwei unveränderliche, statische Werte, und Sie können Ihre NSG-Regeln aktualisieren.
Ausgehend
Protokoll | Quelle | Quellports | Destination | Zielports | Beschreibung |
---|---|---|---|---|---|
TCP | Subnetz Ihrer Container-App | * | MicrosoftContainerRegistry |
443 |
Dies ist das Diensttag für die Microsoft-Containerregistrierung für Systemcontainer. |
TCP | Subnetz Ihrer Container-App | * | AzureFrontDoor.FirstParty |
443 |
Dies ist eine Abhängigkeit des MicrosoftContainerRegistry Diensttags. |
Any | Subnetz Ihrer Container-App | * | Subnetz Ihrer Container-App | * | Zulassen der 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 |
Nur erforderlich bei Verwendung von Azure Monitor. Ermöglicht ausgehende Aufrufe an Azure Monitor |
TCP und UDP | Subnetz Ihrer Container-App | * | 168.63.129.16 |
53 |
Ermöglicht der Umgebung die Verwendung von Azure DNS zum Auflösen des Hostnamens. Hinweis: Die DNS-Kommunikation mit Azure DNS unterliegt nicht NSGs, es sei denn, sie verwenden das AzurePlatformDNS Diensttag. 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 | Dies ist erforderlich, um mit Ihrer Containerregistrierung zu kommunizieren. Wenn Sie z. B. ACR verwenden, benötigen AzureContainerRegistry Sie und AzureActiveDirectory für das Ziel, und der Port ist der Port Ihrer Containerregistrierung, es sei denn, sie verwenden private Endpunkte.2 |
TCP | Subnetz Ihrer Container-App | * | Storage.<Region> |
443 |
Nur erforderlich, wenn Azure Container Registry Sie Ihre Bilder hosten. |
1 Diese Adresse wird beim Erstellen einer Umgebung als Parameter übergeben. Beispiel: 10.0.0.0/21
.
2 Wenn Sie Azure Container Registry (ACR) mit NSGs verwenden, die in Ihrem virtuellen Netzwerk konfiguriert sind, erstellen Sie einen privaten Endpunkt auf Ihrem ACR, damit Azure Container-Apps Bilder über das virtuelle Netzwerk abrufen können. Sie müssen keine NSG-Regel für ACR hinzufügen, wenn sie mit privaten Endpunkten konfiguriert ist.
Überlegungen
- Bei Verwendung von HTTP-Servern müssen ggf. die Ports
80
und443
hinzugefügt werden. - Verweigern Sie die Azure DNS-Adresse
168.63.129.16
nicht explizit in den ausgehenden NSG-Regeln, oder Ihre Container-Apps-Umgebung funktioniert nicht.