Použití privátních koncových bodů pro aplikace App Service

Důležité

Privátní koncový bod je k dispozici pro aplikace pro Windows a Linux, kontejnerizované nebo ne, hostované v těchto plánech služby App Service: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (někdy označovaný jako plán Elastic Premium).

Pomocí privátního koncového bodu pro aplikace App Service můžete klientům umístěným ve vaší privátní síti umožnit zabezpečený přístup k aplikaci přes Azure Private Link. Privátní koncový bod používá IP adresu z adresního prostoru virtuální sítě Azure. Síťový provoz mezi klientem ve vaší privátní síti a aplikací prochází přes virtuální síť a private Link v páteřní síti Microsoftu, čímž eliminuje riziko ohrožení veřejného internetu.

Použití privátního koncového bodu pro vaši aplikaci umožňuje:

  • Zabezpečte aplikaci tak, že nakonfigurujete privátní koncový bod a zakážete přístup k veřejné síti, aby se vyloučilo veřejné vystavení.
  • Bezpečně se připojte k aplikaci z místních sítí, které se připojují k virtuální síti pomocí privátního partnerského vztahu VPN nebo ExpressRoute.
  • Vyhněte se exfiltraci dat z vaší virtuální sítě.

Koncepční přehled

Privátní koncový bod je speciální síťové rozhraní (NIC) pro vaši aplikaci app Service v podsíti ve vaší virtuální síti. Když pro aplikaci vytvoříte privátní koncový bod, poskytuje zabezpečené připojení mezi klienty ve vaší privátní síti a vaší aplikací. Privátnímu koncovému bodu se přiřadí IP adresa z rozsahu IP adres vaší virtuální sítě. Připojení mezi privátním koncovým bodem a aplikací používá zabezpečenou službu Private Link. Privátní koncový bod se používá jenom pro příchozí provoz do vaší aplikace. Odchozí provoz nebude používat tento privátní koncový bod. Odchozí provoz do sítě můžete vkládat do jiné podsítě prostřednictvím funkce integrace virtuální sítě.

Každý slot aplikace je nakonfigurovaný samostatně. Pro každý slot můžete připojit až 100 privátních koncových bodů. Mezi sloty nemůžete sdílet privátní koncový bod. Název dílčího prostředku slotu je sites-<slot-name>.

Podsíť, do které připojíte privátní koncový bod, může obsahovat další prostředky, a proto nepotřebujete vyhrazenou prázdnou podsíť. Privátní koncový bod můžete také nasadit v jiné oblasti, než je vaše aplikace.

Poznámka:

Funkce integrace virtuální sítě nemůže používat stejnou podsíť jako privátní koncový bod. Jde o omezení funkce integrace virtuální sítě.

Z hlediska zabezpečení:

  • Privátní koncový bod a veřejný přístup můžou v aplikaci existovat společně. Další informace najdete v přehledu omezení přístupu.
  • Když pro aplikaci povolíte privátní koncové body, zajistěte, aby byl přístup k veřejné síti zakázaný, aby se zajistila izolace.
  • V jiných virtuálních sítích a podsítích můžete povolit několik privátních koncových bodů, včetně virtuální sítě v jiných oblastech.
  • Pravidla omezení přístupu vaší aplikace se nevyhodnocují pro provoz prostřednictvím privátního koncového bodu.
  • Riziko exfiltrace dat z virtuální sítě můžete eliminovat odebráním všech pravidel NSG, kde cíl označuje internet nebo služby Azure.

Ve webových protokolech HTTP vaší aplikace najdete zdrojovou IP adresu klienta. Tato funkce se implementuje pomocí protokolu TCP Proxy, který předává vlastnost IP klienta do aplikace. Další informace naleznete v tématu Získání informací o připojení pomocí proxy protokolu TCP v2.

Globální přehled privátního koncového bodu aplikace App Service

DNS

Pokud používáte privátní koncový bod pro aplikace služby App Service, musí požadovaná adresa URL odpovídat názvu vaší aplikace. Ve výchozím nastavení mywebappname.azurewebsites.net.

Ve výchozím nastavení je veřejný název vaší webové aplikace bez privátního koncového bodu kanonický název clusteru. Překlad názvů je například následující:

Name Typ Hodnota
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154

Když nasadíte privátní koncový bod, aktualizujeme položku DNS tak, aby odkazovat na kanonický název mywebapp.privatelink.azurewebsites.net. Překlad názvů je například následující:

Name Typ Hodnota Poznámka
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154 <– Tato veřejná IP adresa není vaším privátním koncovým bodem, zobrazí se chyba 403.

Musíte nastavit privátní server DNS nebo privátní zónu Azure DNS. U testů můžete upravit položku hostitele testovacího počítače. Zóna DNS, kterou potřebujete vytvořit, je: privatelink.azurewebsites.net. Zaregistrujte záznam aplikace pomocí záznamu A a IP adresy privátního koncového bodu. Překlad názvů je například následující:

Name Typ Hodnota Poznámka
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Azure vytvoří tuto položku CNAME ve službě Azure Public DNS pro nasměrování adresy aplikace na adresu privátního koncového bodu.
mywebapp.privatelink.azurewebsites.net A 10.10.10.8 <- Tuto položku v systému DNS spravujete tak, aby odkazovat na IP adresu privátního koncového bodu.

Po této konfiguraci DNS se můžete k aplikaci soukromě připojit s výchozím názvem mywebappname.azurewebsites.net. Tento název je nutné použít, protože výchozí certifikát je vydaný pro *.azurewebsites.net.

Pokud potřebujete použít vlastní název DNS, musíte do aplikace přidat vlastní název a pomocí veřejného překladu DNS musíte ověřit vlastní název jako jakýkoli vlastní název. Další informace najdete v tématu vlastní ověření DNS.

Pro konzolu Kudu nebo rozhraní Kudu REST API (nasazení s agenty v místním prostředí Azure DevOps) musíte například vytvořit dva záznamy odkazující na IP adresu privátního koncového bodu ve vaší privátní zóně Azure DNS nebo na vlastní server DNS. První je pro vaši aplikaci, druhá je pro SCM vaší aplikace.

Name Typ Hodnota
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

Zvláštní aspekty služby App Service Environment v3

Pokud chcete povolit privátní koncový bod pro aplikace hostované v plánu IsolatedV2 (App Service Environment v3), musíte povolit podporu privátních koncových bodů na úrovni služby App Service Environment. Funkci můžete aktivovat na webu Azure Portal v podokně konfigurace služby App Service Environment nebo pomocí následujícího rozhraní příkazového řádku:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Specifické požadavky

Pokud je virtuální síť v jiném předplatném než aplikace, musíte zajistit, aby předplatné s virtuální sítí bylo zaregistrované pro Microsoft.Web poskytovatele prostředků. Poskytovatele můžete explicitně zaregistrovat podle této dokumentace, ale při vytváření první webové aplikace v předplatném ho také automaticky zaregistrujete.

Ceny

Podrobnosti o cenách najdete v tématu s cenami služby Azure Private Link.

Omezení

  • Pokud používáte funkci Azure Functions v plánu Elastic Premium s privátním koncovým bodem ke spuštění nebo spuštění funkce na webu Azure Portal, musíte mít přímý síťový přístup nebo se zobrazí chyba HTTP 403. Jinými slovy, váš prohlížeč musí mít přístup k privátnímu koncovému bodu, aby funkci spustil z webu Azure Portal.
  • Ke konkrétní aplikaci můžete připojit až 100 privátních koncových bodů.
  • Funkce vzdáleného ladění není dostupná prostřednictvím privátního koncového bodu. Doporučuje se nasadit kód do slotu a vzdáleně ho tam ladit.
  • Přístup ftp se poskytuje prostřednictvím příchozí veřejné IP adresy. Privátní koncový bod nepodporuje přístup FTP k aplikaci.
  • Privátní koncové body nepodporují protokol SSL založený na PROTOKOLU IP.
  • Aplikace, které konfigurujete s privátními koncovými body, nemůžou přijímat veřejný provoz přicházející z podsítí s povoleným Microsoft.Web koncovým bodem služby a nemůžou používat pravidla omezení přístupu na základě koncových bodů služby.
  • Pojmenování privátního koncového bodu musí dodržovat pravidla definovaná pro prostředky typu Microsoft.Network/privateEndpoints. Pravidla pojmenování najdete tady.

Pravidelně vylepšujeme funkci Azure Private Link a privátní koncový bod. V tomto článku najdete aktuální informace o omezeních.

Další kroky