Dela via


Skydda Azure Container Apps med brandväggen för webbprogram på Application Gateway

När du är värd för dina appar eller mikrotjänster i Azure Container Apps kanske du inte vill publicera dem direkt på Internet. I stället kanske du vill exponera dem via en omvänd proxy.

En omvänd proxy är en tjänst som finns framför en eller flera tjänster. Den fångar upp och dirigerar inkommande trafik till rätt mål.

Med omvända proxyservrar kan du placera tjänster framför dina appar som stöder övergripande funktioner, inklusive:

  • Routning
  • Cachelagring
  • Frekvensbegränsning
  • Belastningsutjämning
  • Säkerhetsnivåer
  • Filtrering av begäran

Den här artikeln visar hur du skyddar dina containerappar med hjälp av en brandvägg för webbprogram (WAF) på Azure Application Gateway med en intern Container Apps-miljö.

Mer information om nätverksbegrepp i Container Apps finns i Nätverksmiljö i Azure Container Apps.

Förutsättningar

  • Intern miljö med virtuellt nätverk: Ha en containerapp som finns i en intern miljö och integrerad med ett virtuellt nätverk. Mer information om hur du skapar en integrerad app för virtuellt nätverk finns i Tillhandahålla ett virtuellt nätverk till en intern Azure Container Apps-miljö.

  • Säkerhetscertifikat: Om du behöver använda TLS/SSL-kryptering till programgatewayen behöver du ett giltigt offentligt certifikat för att binda till din programgateway.

Hämta containerappens domän

Använd följande steg för att hämta värdena för standarddomänenoch den statiska IP-adressen för att konfigurera din Privat DNS Zone.

  1. I resursgruppens översiktsfönster i portalen väljer du din containerapp.

  2. I fönstret Översikt för din containerappresurs väljer du länken för Container Apps-miljön.

  3. I fönstret Översikt för containerappens miljöresurs väljer du JSON-vy i det övre högra hörnet på sidan för att visa JSON-representationen av containerappmiljön.

  4. Leta upp avsnittet properties i JSON-vyn och leta upp följande värden:

    • Standarddomän: Leta properties.defaultDomain efter eller properties.environmentFqdn

    • Statisk IP: Leta efter properties.staticIp

  5. Kopiera dessa värden och klistra in dem i en textredigerare. Du använder standarddomänvärdet när du skapar en privat DNS-zon i nästa avsnitt.

Skapa och konfigurera en Azure Privat DNS-zon

Utför följande steg för att skapa och konfigurera en privat DNS-zon i Azure:

  1. Gå till Azure-portalen.

  2. I sökfältet anger du Privat DNS-zon.

  3. Välj Privat DNS-zon i sökresultaten.

  4. Välj Skapa.

  5. Ange följande värden:

    Inställning Åtgärd
    Prenumeration Välj din Azure-prenumerationen.
    Resursgrupp Välj resursgruppen för containerappen.
    Namn Ange standarddomänegenskapen för Container Apps Environment från föregående avsnitt (antingen defaultDomain eller environmentFqdn).
    Plats för resursgrupp Lämna som standard. Du behöver inget värde eftersom privata DNS-zoner är globala.
  6. Välj Review + create. När valideringen är klar väljer du Skapa.

  7. När den privata DNS-zonen har skapats väljer du Gå till resurs.

  8. I fönstret Översikt väljer du +Record datamängd för att lägga till en ny datamängd.

  9. I fönstret Lägg till postuppsättning anger du följande värden:

    Inställning Åtgärd
    Namn Ange *.
    Typ Välj A-record.
    TTL Behåll standardvärdena.
    TTL-enhet Behåll standardvärdena.
    IP-adress Ange den statiska IP-egenskapen för Container Apps Environment från föregående avsnitt (staticIp).
  10. Välj OK för att skapa postuppsättningen.

  11. Välj +Datamängd igen för att lägga till en andra datamängd.

  12. I fönstret Lägg till postuppsättning anger du följande värden:

    Inställning Åtgärd
    Namn Ange @.
    Typ Välj A-record.
    TTL Behåll standardvärdena.
    TTL-enhet Behåll standardvärdena.
    IP-adress Ange den statiska IP-egenskapen för Container Apps Environment från föregående avsnitt (staticIp).
  13. Välj OK för att skapa postuppsättningen.

  14. Välj fönstret Länkar till virtuellt nätverk på menyn till vänster på sidan.

  15. Välj +Lägg till för att skapa en ny länk med följande värden:

    Inställning Åtgärd
    Länknamn Ange my-vnet-pdns-link.
    Jag vet resurs-ID:t för det virtuella nätverket Lämna den avmarkerad.
    Virtuellt nätverk Välj det virtuella nätverk som containerappen är integrerad med.
    Aktivera automatisk registrering Lämna den avmarkerad.
  16. Välj OK för att skapa länken för det virtuella nätverket.

Skapa och konfigurera Azure Application Gateway

Utför följande steg för att skapa och konfigurera en Azure Application Gateway:

  1. Gå till Azure-portalen.

  2. I sökfältet anger du Application Gateway.

  3. Välj Application Gateway i sökresultaten.

Ange nu nödvändig information under fliken Grundläggande , fliken Klientdelar , fliken Serverdelar och fliken Konfiguration .

Grundläggande-fliken

Utför följande steg:

  1. Ange följande värden i avsnittet Projektinformation .

    Inställning Åtgärd
    Prenumeration Välj din Azure-prenumerationen.
    Resursgrupp Välj resursgruppen för containerappen.
    Applikationsgatewayens namn Ange my-container-apps-agw.
    Region Välj den plats där du etablerade containerappen.
    Nivå Välj WAF V2. Du kan använda Standard V2 om du inte behöver WAF.
    Aktivera automatisk skalning Lämna som standard. För produktionsmiljöer rekommenderas automatisk skalning. Se Autoskalning av Azure Application Gateway.
    Tillgänglighetszon Välj Ingen. För produktionsmiljöer rekommenderas Tillgänglighetszoner för högre tillgänglighet.
    HTTP2 (på engelska) Behåll standardvärdet.
    WAF-policy Välj Skapa ny och ange namnet my-waf-policy för WAF-policy. Välj OK. Om du väljer Standard V2 för nivån hoppar du över det här steget.
    Virtuellt nätverk Välj det virtuella nätverk som containerappen är integrerad med.
    Undernät Välj Hantera undernätskonfiguration. Om du redan har ett undernät som du vill använda väljer du det undernätet och går vidare till avsnittet Klientdelar.
  2. I fönstret Undernät i my-vnet väljer du +Undernät och anger följande värden:

    Inställning Åtgärd
    Namn Ange appgateway-subnet.
    Adressintervall för undernätet Behåll standardvärdena.
  3. Behåll standardvärdena för resten av inställningarna.

  4. Välj Spara för att skapa det nya undernätet.

  5. Stäng fönstret Undernät för att återgå till fönstret Skapa programgateway .

  6. Välj följande värden:

    Inställning Åtgärd
    Undernät Välj det appgateway-undernät som du skapade.
  7. Välj Nästa: Frontend-gränssnitt för att fortsätta.

Frontend-fliken

Utför följande steg:

  1. På fliken Klientdelar anger du följande värden:

    Inställning Åtgärd
    Frontend IP-adresstyp Välj Offentlig.
    Offentlig IP-adress Välj Lägg till. Ange my-frontend som namn på klientdelen och välj OK

    Anteckning

    För Application Gateway v2 SKU behöver du en offentlig klientdels-IP. Mer information finns i Stöd för offentliga och privata IP-adresser och Hantera en offentlig IP-adress med en Azure Application Gateway.

  2. Välj Nästa: Backends.

Fliken Backend

Serverdelspoolen dirigerar begäranden till lämpliga serverdelsservrar. Du kan skapa serverdelspooler från valfri kombination av följande resurser:

  • Nätverkskort
  • Offentliga IP-adresser
  • Interna IP-adresser
  • Skala uppsättningar av virtuella maskiner
  • Fullständigt kvalificerade domännamn (FQDN)
  • Multitenant-backend som Azure App Service och Container Apps

I det här exemplet skapar du en serverdelspool som riktar sig mot din containerapp.

För att skapa en backend-pool, utför följande steg:

  1. Välj Lägg till en serverdelspool.

  2. Öppna en ny flik och gå till containerappen.

  3. I fönstret Översikt i containerappen letar du upp program-URL:en och kopierar den.

  4. Gå tillbaka till fliken Serverdelar och ange följande värden i fönstret Lägg till en serverdelspool :

    Inställning Åtgärd
    Namn Ange my-agw-backend-pool.
    Lägg till bakgrundspool utan målobjekt Välj Nej.
    Måltyp Välj IP-adress eller FQDN.
    Mål Ange Containerappens applikations-URL som du kopierade och ta bort prefixet https://. Den här platsen är FQDN för din containerapp.
  5. Markera Lägga till.

  6. På fliken Serverdelar väljer du Nästa: Konfiguration.

Konfigurationsflik

På fliken Konfiguration ansluter du klientdelen och serverdelspoolen som du skapade med hjälp av en routningsregel.

Utför följande steg för att ansluta frontend-poolen och backend-poolen:

  1. Välj Lägg till en routningsregel. Ange följande värden:

    Inställning Åtgärd
    Namn Ange my-agw-routing-rule.
    Prioritet Ange 1.
  2. Under fliken Lyssnare anger du följande värden:

    Inställning Åtgärd
    Lyssnarnamn Ange my-agw-listener.
    Frontend-IP Välj Offentlig.
    Protokoll Välj HTTPS. Om du inte har ett certifikat som du vill använda kan du välja HTTP
    Hamn Ange 443. Om du har valt HTTP för ditt protokoll anger du 80 och går vidare till standard-/anpassade domänavsnittet.
    Välj ett certifikat Välj Ladda upp ett certifikat. Om certifikatet lagras i nyckelvalvet kan du välja Välj ett certifikat från Key Vault.
    Certifikatnamn Ange ett namn på certifikatet.
    PFX-certifikatfil Välj ditt giltiga offentliga certifikat.
    Lösenord Ange certifikatlösenordet.

    Om du vill använda standarddomänen anger du följande värden:

    Inställning Åtgärd
    Lyssnartyp Välj Basic
    Url för felsida Lämna som nej

    Du kan också ange följande värden om du vill använda en anpassad domän:

    Inställning Åtgärd
    Lyssnartyp Välj Flera webbplatser
    Typ av värd Välj enskild
    Värdnamn Ange den anpassade domän som du vill använda.
    Url för felsida Lämna som nej
  3. Välj fliken Backend-mål och ange följande värden:

  4. Växla till fliken Backend-mål och ange följande värden:

    Inställning Åtgärd
    Måltyp Välj my-agw-backend-pool som du skapade tidigare.
    Back-end-inställningar Välj Lägg till.
  5. I fönstret Lägg till serverdelsinställning anger du följande värden:

    Inställning Åtgärd
    Namn på serverdelsinställningar Ange my-agw-backend-setting.
    Backend-protokoll Välj HTTPS.
    Serverdelsport Ange 443.
    Använda välkända CA-certifikat Välj Ja.
    Åsidosätt med nytt värdnamn Välj Ja.
    Åsidosättande av värdnamn Välj Hämta värdnamn från backend-målet.
    Skapa anpassade sonder Välj Nej.
  6. Under Skriv om begärandehuvud konfigurerar du följande inställningar:

    • Aktivera omskrivning av begärandehuvud: Välj Ja.
    • Lägg till en begäranderubrik:
      • Rubriknamn: X-Forwarded-Host
      • Värde: {http_req_host}

    Den här åtgärden säkerställer att det ursprungliga Host header från klientbegäran bevaras och är tillgänglig för backend-applikationen.

  7. Välj Lägg till för att lägga till serverdelsinställningarna.

  8. I fönstret Lägg till en routningsregel väljer du Lägg till igen.

  9. Välj Nästa: Taggar.

  10. Välj Nästa: Granska + skapa och välj sedan Skapa.

Du kan upprätta en säker anslutning till miljöer med endast interna containerappar med hjälp av en privat länk. Med en privat länk kan Application Gateway kommunicera med containerappen på serverdelen via det virtuella nätverket.

  1. När du har skapat Application Gateway väljer du Gå till resurs.

  2. På menyn till vänster väljer du Privat länk och sedan Lägg till.

  3. Ange följande värden:

    Inställning Åtgärd
    Namn Ange my-agw-private-link.
    Undernät för privat länk Välj det undernät som du vill använda för att skapa den privata länken.
    Frontend IP-konfiguration Välj klientdelens IP-adress för din Application Gateway.
  4. Under Inställningar för privat IP-adress väljer du Lägg till.

  5. Välj Lägg till längst ned i fönstret.

Bevara den ursprungliga värdrubriken för omdirigeringar och enkel inloggning

När du konfigurerar Azure Application Gateway som en omvänd proxy och aktiverar inställningen Host ändras rubriken. Att ändra huvudet kan störa program som förlitar sig på det ursprungliga värdvärdet för att generera omdirigerings-URL:er, absoluta länkar eller stöd för OIDC-autentiseringsflöden (OpenID Connect).

Om du vill vidarebefordra den ursprungliga värdrubriken kan du injicera den i X-Forwarded-Host-rubriken med hjälp av omskrivningsfunktionen för begärandehuvuden i Application Gateway.

Konfigurera X-Forwarded-Host injektion

För att aktivera X-Forwarded-Host injektion:

  1. Under fliken Konfiguration väljer du avsnittet Serverdelsinställningar i routningsregeln för Application Gateway:

    • Aktivera omskrivning av begärandehuvud.
    • Lägg till ett nytt begärandehuvud med följande värden:
      • Rubriknamn: X-Forwarded-Host
      • Värde: {http_req_host}

    Din serverdelsapp kan nu läsa den ursprungliga begärandevärden med hjälp av X-Forwarded-Host rubriken.

Anteckning

När du konfigurerar omskrivningsregler för sidhuvud ska du använda rätt variabelsyntax. Servervariabler måste använda lämpligt prefix, till exempel http_req_ för begärandehuvuden. För felsökning av konfigurationsfel i omskrivningsregler kan du se Skriva om HTTP-huvuden och URL med Application Gateway.

Verifiera container-appen

  1. Leta reda på den offentliga IP-adressen för programgatewayen på sidan Översikt , eller så kan du söka efter adressen. Om du vill söka väljer du Alla resurser och anger my-container-apps-agw-pip i sökrutan. Välj sedan IP-adressen i sökresultatet.

  2. Gå till den offentliga IP-adressen för programgatewayen.

  3. Din begäran dirigeras automatiskt till containerappen, som verifierar att programgatewayen har skapats.

Rensa resurser

När du inte längre behöver de resurser som du skapade tar du bort resursgruppen. När du tar bort resursgruppen tar du också bort alla relaterade resurser.

Så här tar du bort resursgruppen:

  1. På menyn Azure Portal väljer du Resursgrupper eller söker efter och väljer Resursgrupper.

  2. På sidan Resursgrupper söker du efter och väljer my-container-apps.

  3. Välj Ta bort resursgrupp på sidan Resursgrupp.

  4. Ange my-container-apps under SKRIV RESURSGRUPPENS NAMN och välj sedan Ta bort.

Nästa steg