Konfigurace vynuceného tunelového propojení ve službě App Service Environment

Důležité

Tento článek se týká služby App Service Environment v2, která se používá s plány izolované služby App Service. Služba App Service Environment v2 bude vyřazena 31. srpna 2024. Existuje nová verze služby App Service Environment, která se snadněji používá a běží na výkonnější infrastruktuře. Další informace o nové verzi najdete v úvodu do služby App Service Environment. Pokud aktuálně používáte App Service Environment v2, postupujte podle kroků v tomto článku a proveďte migraci na novou verzi.

Od 29. ledna 2024 už nemůžete vytvářet nové prostředky služby App Service Environment verze 2 pomocí některé z dostupných metod, včetně šablon ARM/Bicep, webu Azure Portal, Azure CLI nebo rozhraní REST API. Před 31. srpnem 2024 musíte migrovat do služby App Service Environment v3 , abyste zabránili odstranění prostředků a ztrátě dat.

App Service Environment (ASE) je nasazení služby Azure App Service ve virtuální síti Azure zákazníka. Mnoho zákazníků konfiguruje své virtuální sítě Azure jako rozšíření svých místních sítí pomocí sítí VPN nebo připojení Azure ExpressRoute. Vynucené tunelování znamená, že provoz nesměrujete do internetu, ale do své sítě VPN nebo svého virtuálního zařízení. Virtuální zařízení se často používají ke kontrole a auditování odchozího síťového provozu.

Služba ASE má řadu externích závislostí popsaných v dokumentu Architektura sítě služby App Service Environment. Za normálních okolností musí veškerý odchozí provoz závislostí služby ASE procházet přes virtuální IP adresu zřízenou se službou ASE. Pokud změníte směrování provozu do nebo ze služby ASE, aniž byste se řídili níže uvedenými informacemi, vaše služba ASE přestane fungovat.

Ve virtuální síti Azure se směrování provádí na základě nejdelší shody předpony (LPM). Pokud existuje víc tras se stejnou shodou LPM, trasa se vybere na základě původu v tomto pořadí:

  • Trasa definovaná uživatelem (UDR)
  • Trasa protokolu BGP (pokud se používá služba ExpressRoute)
  • Systémová trasa

Další informace o směrování ve virtuální síti najdete v tématu Trasy definované uživatelem a předávání IP.

Pokud chcete směrovat odchozí provoz služby ASE někam jinam než přímo do internetu, máte následující možnosti:

  • Povolení přímého přístupu služby ASE k internetu
  • Konfigurace ignorování tras protokolu BGP v podsíti služby ASE
  • Konfigurace podsítě služby ASE pro používání koncových bodů služby pro SQL Azure a Azure Storage
  • Přidání vlastních IP adres do brány firewall SQL Azure pro službu ASE

Povolení přímého přístupu k internetu ve službě App Service Environment

Pokud chcete službě ASE povolit přímý přístup k internetu i v případě, že je ve vaší virtuální síti Azure nakonfigurované připojení ExpressRoute, můžete postupovat následovně:

  • Nakonfigurujte připojení ExpressRoute, aby inzerovalo adresu 0.0.0.0/0. Ve výchozím nastavení směruje veškerý odchozí provoz do místní sítě.
  • Vytvořte trasu UDR s předponou adresy 0.0.0.0/0 a dalším segmentem směrování typu internet a použijte ji pro podsíť služby ASE.

Pokud provedete tyto dvě změny, provoz směřující do internetu a pocházející z podsítě služby App Service Environment se nebude nuceně směrovat do připojení ExpressRoute.

Pokud už síť směruje provoz do místní sítě, musíte před pokusem o nasazení služby ASE vytvořit podsíť, která bude hostitelem služby ASE, a nakonfigurovat pro ni trasu UDR.

Důležité

Trasy definované v trase UDR musí být dost konkrétní, aby měly přednost před všemi trasami inzerovanými konfigurací ExpressRoute. V předchozím příkladu se používá široký rozsah adres 0.0.0.0/0. Může nechtěně dojít k jeho potlačení z důvodu inzerování tras, které používají konkrétnější rozsahy adres.

Služby App Service Environment nejsou podporované v konfiguracích ExpressRoute, které křížově inzerují trasy z cesty s veřejnými partnerskými uzly do cesty se soukromými partnerskými uzly. Konfigurace ExpressRoute s nakonfigurovanými veřejnými partnerskými uzly přijímají inzerci tras od Microsoftu. Tyto inzerce obsahují velkou sadu rozsahů adres Microsoft Azure. Pokud probíhá křížová inzerce rozsahů adres na cestě se soukromými partnerskými uzly, všechny odchozí síťové pakety z podsítě služby App Service Environment se směrují do místní síťové infrastruktury zákazníka. Služba App Service Environment tento tok sítí ve výchozím nastavení nepodporuje. Jedním řešením tohoto problému je ukončit křížovou inzerci tras z cesty s veřejnými partnerskými uzly do cesty se soukromými partnerskými uzly. Druhým řešením je povolit fungování služeb App Service Environment v konfiguraci s vynuceným tunelovým propojením.

Direct internet access

Konfigurace ignorování tras protokolu BGP v podsíti služby ASE

V podsíti služby ASE můžete nakonfigurovat ignorování všech tras protokolu BGP. Pokud je služba ASE nakonfigurovaná tak, aby ignorovala trasy protokolu BGP, bude mít přístup ke svým závislostem bez jakýchkoli problémů. Budete však muset vytvořit trasy definované uživatelem, abyste svým aplikacím umožnili přístup k místním prostředkům.

Konfigurace ignorování tras protokolu BGP v podsíti služby ASE:

  • Pokud jste to ještě neudělali, vytvořte trasu definovanou uživatelem a přiřaďte ji k vaší podsíti služby ASE.
  • Na webu Azure Portal otevřete uživatelské rozhraní pro směrovací tabulku přiřazenou k vaší podsíti služby ASE. Vyberte Konfigurace. Nastavte šíření trasy brány virtuální sítě na Zakázáno. Klikněte na Uložit. Dokumentaci k vypnutí této možnosti najdete v dokumentu Vytvoření směrovací tabulky.

Jakmile nakonfigurujete podsíť ASE tak, aby ignorovala všechny trasy protokolu BGP, nebudou se už vaše aplikace moct dostat do místního prostředí. Pokud chcete aplikacím umožnit přístup k prostředkům místně, upravte trasu definovanou uživatelem přiřazenou k podsíti ASE a přidejte trasy pro místní rozsahy adres. Typ dalšího segmentu směrování by měl být nastavený na bránu virtuální sítě.

Konfigurace služby ASE s použitím koncových bodů služby

Pokud chcete směrovat veškerý odchozí provoz ze služby ASE kromě provozu směřujícího do SQL Azure a služby Azure Storage, proveďte následující kroky:

  1. Vytvořte tabulku směrování a přiřaďte ji ke své podsíti služby ASE. Adresy odpovídající vaší oblasti najdete tady: Adresy pro správu služby App Service Environment. Vytvořte trasy pro tyto adresy nebo použijte značku služby AppServiceManagement s dalším segmentem směrování internetu. Tyto trasy jsou potřeba, protože příchozí provoz správy služby App Service Environment musí odpovídat ze stejné adresy, na kterou byl odeslán.

  2. Povolte koncové body služby s SQL Azure a službou Azure Storage v podsíti služby ASE. Po dokončení tohoto kroku můžete ve své virtuální síti nakonfigurovat vynucené tunelování.

Podrobnosti o nasazení služby ASE pomocí šablony najdete v tématu Vytvoření služby App Service Environment pomocí šablony.

Koncové body služby umožňují omezit přístup k víceklientským službám na sadu virtuálních sítí a podsítí Azure. Další informace o koncových bodech služby najdete v dokumentaci pro koncové body služby pro virtuální síť.

Když pro prostředek povolíte koncové body služby, vytvoří se trasy s vyšší prioritou než všechny ostatní trasy. Pokud použijete koncové body služby se službou ASE s vynuceným tunelováním, nebude se vynucovat tunelování provozu správy SQL Azure a služby Azure Storage. Provoz ostatních závislostí služby ASE se bude vynuceně tunelovat a nesmí se ztratit, jinak služba ASE nebude správně fungovat.

Pokud jsou koncové body služby povolené v podsíti s instancí SQL Azure, musí mít koncové body služby povolené i všechny instance SQL Azure, ke kterým se z této podsítě připojuje. Pokud chcete ze stejné podsítě přistupovat k několika instancím SQL Azure, není možné povolit koncové body služby v jedné instanci SQL Azure a v jiné ne. Služba Azure Storage se nechová stejně jako SQL Azure. Když povolíte koncové body služby se službou Azure Storage, uzamknete přístup k danému prostředku z vaší podsítě, ale stále budete mít přístup k ostatním účtům služby Azure Storage, a to i v případě, že nemají povolené koncové body služby.

Pokud konfigurujete vynucené tunelování s použitím zařízení síťového filtru, nezapomeňte, že služba ASE má závislosti mimo SQL Azure a službu Azure Storage. Pokud je provoz do těchto závislostí blokovaný, služba ASE nebude správně fungovat.

Forced tunnel with service endpoints

Přidání vlastních IP adres do brány firewall SQL Azure pro službu ASE

Pokud chcete tunelovat veškerý odchozí provoz ze služby ASE kromě provozu směřujícího do služby Azure Storage, proveďte následující kroky:

  1. Vytvořte tabulku směrování a přiřaďte ji ke své podsíti služby ASE. Adresy odpovídající vaší oblasti najdete tady: Adresy pro správu služby App Service Environment. Vytvořte pro tyto adresy trasy s dalším segmentem směrování do internetu. Tyto trasy jsou potřeba, protože příchozí provoz správy služby App Service Environment musí odpovídat ze stejné adresy, na kterou byl odeslán.

  2. Povolení koncových bodů služby se službou Azure Storage v podsíti služby ASE

  3. Získejte adresy, které se použijí pro veškerý odchozí provoz z vaší služby App Service Environment do internetu. Pokud provoz směrujete do místní sítě, tyto adresy jsou vaše IP adresy překladu adres nebo brány. Pokud chcete směrovat odchozí přenosy služby App Service Environment přes virtuální síťové zařízení, výstupní adresou je veřejná IP adresa tohoto virtuálního síťového zařízení.

  4. Pokud chcete nastavit výchozí adresy v existující službě App Service Environment: Přejděte na resources.azure.com a přejděte do části Subscription/<subscription id>/resourceGroups/<ase resource group>/providers/Microsoft.Web/hostingEnvironments/<ase name>. Uvidíte zápis JSON, který popisuje vaši službu App Service Environment. Zkontrolujte, jestli se nahoře píše Čtení/zápis. Vyberte položku Upravit. Posuňte se do dolní části. U položky userWhitelistedIpRanges změňte hodnotu null na podobnou hodnotu jako v následujícímu příkladu. Použijte adresy, které chcete nastavit jako výstupní rozsah adres.

    "userWhitelistedIpRanges": ["11.22.33.44/32", "55.66.77.0/24"]
    

    V horní části vyberte možnost PUT. Tato možnost spustí ve vaší službě App Service Environment operaci škálování a upraví bránu firewall.

Vytvoření služby ASE s výstupními adresami: Postupujte podle pokynů v tématu Vytvoření služby App Service Environment pomocí šablony a stáhněte příslušnou šablonu. V souboru azuredeploy.json upravte část resources (prostředky) a mimo blok properties (vlastnosti) do ní vložte řádek userWhitelistedIpRanges s vašimi hodnotami.

"resources": [
    {
        "apiVersion": "2015-08-01",
        "type": "Microsoft.Web/hostingEnvironments",
        "name": "[parameters('aseName')]",
        "kind": "ASEV2",
        "location": "[parameters('aseLocation')]",
        "properties": {
            "name": "[parameters('aseName')]",
            "location": "[parameters('aseLocation')]",
            "ipSslAddressCount": 0,
            "internalLoadBalancingMode": "[parameters('internalLoadBalancingMode')]",
            "dnsSuffix" : "[parameters('dnsSuffix')]",
            "virtualNetwork": {
                "Id": "[parameters('existingVnetResourceId')]",
                "Subnet": "[parameters('subnetName')]"
            },
            "userWhitelistedIpRanges":  ["11.22.33.44/32", "55.66.77.0/30"]
        }
    }
]

Díky těmto změnám se bude odesílat provoz do služby Azure Storage přímo ze služby ASE a umožní se přístup k SQL Azure i z jiných adres, než je virtuální IP adresa služby ASE.

Forced tunnel with SQL allowlist

Předcházení problémům

Pokud dojde k přerušení komunikace mezi službou ASE a jejími závislostmi, služba ASE přejde do špatného stavu. Pokud služba ASE zůstane ve špatném stavu příliš dlouho, zablokuje se. Pokud chcete zrušit zablokování služby ASE, postupujte podle pokynů na portálu služby ASE.

Kromě prostého přerušení komunikace můžete službu ASE nepříznivě ovlivnit zavedením příliš vysoké latence. K příliš vysoké latenci může docházet v případě, že je služba ASE příliš vzdálená od vaší místní sítě. Příkladem příliš velké vzdálenosti může být oddělení místní sítě oceánem nebo kontinentem. Příčinou latence může být také zahlcení intranetu nebo omezení šířky odchozího pásma.