Nätverkssäkerhetsgrupper för att konfigurera ett virtuellt nätverk i Azure Container Apps

Nätverkssäkerhetsgrupper (NSG:er) som du behöver för att konfigurera virtuella nätverk liknar de inställningar som Kubernetes kräver.

Du kan skydda ett nätverk via NSG:er med mer restriktiva regler än NSG-standardreglerna för att styra all inkommande och utgående trafik för den Azure Container Apps miljön på prenumerationsnivå.

I arbetsbelastningsprofilmiljön stöds användardefinierade vägar (UDR) och skydd av utgående trafik med en brandvägg . En guide om hur du konfigurerar en UDR för Container Apps för att begränsa utgående trafik med Azure Firewall finns i Control utgående trafik i Azure Container Apps med användardefinierade vägar.

När du använder en extern arbetsbelastningsprofilmiljö dirigeras inkommande trafik till Container Apps via den offentliga IP-adressen som finns i den hanterade resursgruppen i stället för via ditt undernät. Den här begränsningen innebär att låsning av inkommande trafik via NSG eller brandvägg i en extern arbetsbelastningsprofilmiljö inte stöds.

I den äldre förbrukningsmiljön stöds inte Azure ExpressRoute och anpassade UDR:er har begränsat stöd. Mer information om nivån för UDR-stöd som är tillgängligt i en miljö med endast förbrukning finns i Vanliga frågor och svar.

NSG-tillåtna regler

I följande tabeller beskrivs hur du konfigurerar en samling NSG-tillåtna regler. De specifika regler som du behöver beror på din miljötyp.

Inkommande

Kommentar

När du använder arbetsbelastningsprofiler gäller inkommande NSG-regler endast för trafik som går via ditt virtuella nätverk. Om du anger att dina containerappar ska acceptera trafik från det offentliga Internet går inkommande trafik via den offentliga slutpunkten i stället för det virtuella nätverket.

Protokoll Källa Källportar Mål Målportar beskrivning
TCP Dina klient-IP-adresser * Containerappens undernät1 80, 31080 Tillåt dina klient-IP-adresser att komma åt Container Apps när du använder HTTP. 31080 är porten där containerappens miljöproxy svarar på HTTP-trafiken. Den finns bakom den interna lastbalanseraren.
TCP Dina klient-IP-adresser * Containerappens undernät1 443, 31443 Tillåt dina klient-IP-adresser att komma åt Container Apps när du använder HTTPS. 31443 är porten där containerappens miljöproxy svarar på HTTPS-trafiken. Den finns bakom den interna lastbalanseraren.
TCP Azure Load Balancer (belastningsutjämnare) * Containerappens undernät 30000-32767 2 Tillåt att Azure Load Balancer avsöker serverdelspooler.
TCP Dina klient-IP-adresser * Containerappens undernät Exponerade portar och 30000-327672 Den här regeln gäller endast för TCP-appar. Det krävs inte för HTTP-appar.

1 Du skickar den här adressen som en parameter när du skapar en miljö. Exempel: 10.0.0.0/21

2 Du behöver hela intervallet när du skapar dina containerappar som en port inom intervallet allokeras dynamiskt. När du har skapat containerapparna är de nödvändiga portarna två oföränderliga, statiska värden och du kan uppdatera dina NSG-regler.

Utgående

Protokoll Källa Källportar Mål Målportar beskrivning
TCP Containerappens undernät * MicrosoftContainerRegistry 443 Den här tjänsttaggen representerar Microsoft Artifact Registry för systemcontainrar.
TCP Containerappens undernät * AzureFrontDoor.FirstParty 443 Den här tjänsttaggen är ett beroende av MicrosoftContainerRegistry tjänsttaggen.
Alla Containerappens undernät * Containerappens undernät * Den här regeln tillåter kommunikation mellan IP-adresser i containerappens undernät.
TCP Containerappens undernät * AzureActiveDirectory 443 Om du använder en hanterad identitet krävs det.
TCP Containerappens undernät * AzureMonitor 443 Den här regeln krävs bara när du använder Azure Monitor. Det gör att utgående anrop kan Azure Monitor.
TCP och UDP Containerappens undernät * 168.63.129.16 53 Med den här regeln kan miljön använda Azure DNS för att matcha värdnamnet.

DNS-kommunikation till Azure DNS omfattas inte av NSG:er om den inte är riktad via tjänsttaggen AzurePlatformDNS. Om du vill blockera DNS-trafik skapar du en regel för utgående trafik för att neka trafik till AzurePlatformDNS tjänsttaggen.
TCP Containerappens undernät1 * Ditt containerregister Containerregistrets port Den här regeln krävs för att kommunicera med containerregistret. När du till exempel använder Azure Container Registry behöver du AzureContainerRegistry och AzureActiveDirectory för målet. Porten är containerregistrets port om du inte använder privata slutpunkter. 2
TCP Containerappens undernät * Storage.<Region> 443 Den här regeln krävs bara när du använder Container Registry som värd för dina avbildningar.

1 Du skickar den här adressen som en parameter när du skapar en miljö. Exempel: 10.0.0.0/21

2 Om du använder Container Registry med NSG:er konfigurerade i ditt virtuella nätverk skapar du en privat slutpunkt i containerregistret så att Container Apps kan hämta avbildningar via det virtuella nätverket. Du behöver inte lägga till en NSG-regel för Container Registry när den konfigureras med privata slutpunkter.

Att tänka på

  • Om du kör HTTP-servrar kan du behöva lägga till portar 80 och 443.
  • Neka inte uttryckligen Azure DNS-adressen 168.63.129.16 i de utgående NSG-reglerna. Om du gör det fungerar inte containerappmiljön.