Použití privátních koncových bodů pro aplikace App Service
Poznámka:
Od 1. června 2024 můžou nově vytvořené aplikace App Service vygenerovat jedinečný výchozí název hostitele, který používá zásady <app-name>-<random-hash>.<region>.azurewebsites.net
vytváření názvů . Stávající názvy aplikací zůstávají beze změny. Příklad:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Další informace najdete v tématu Jedinečný výchozí název hostitele pro prostředek služby App Service.
Důležité
Privátní koncové body jsou dostupné 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).
Pro aplikace app Service můžete použít privátní koncový bod. Privátní koncový bod umožňuje klientům umístěným ve vaší privátní síti 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. Tato konfigurace eliminuje vystavení z 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 nepoužívá 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 použít až 100 privátních koncových bodů. Mezi sloty nemůžete sdílet privátní koncový bod. Název podsourcu slotu je sites-<slot-name>
.
Podsíť, do které připojíte privátní koncový bod, může obsahovat další prostředky. 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žít stejnou podsíť jako privátní koncový bod.
Z hlediska zabezpečení:
- Privátní koncový bod a veřejný přístup můžou existovat společně v aplikaci. Další informace najdete v tomto přehledu omezení přístupu.
- Pokud chcete zajistit izolaci, při povolení privátních koncových bodů pro vaši aplikaci se ujistěte, že je zakázaný přístup k veřejné síti.
- 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 skupiny zabezpečení sítě (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.
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í . <app-name>.azurewebsites.net
Pokud použijete jedinečný výchozí název hostitele, název aplikace má formát <app-name>-<random-hash>.<region>.azurewebsites.net
. V následujících příkladech může mywebapp také představovat úplný název místního jedinečného hostitele.
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 | 192.0.2.13 |
Když nasadíte privátní koncový bod, přístup aktualizuje 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 | 192.0.2.13 | <– 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 dostat soukromě s výchozím názvem mywebapp.azurewebsites.net. Tento název je nutné použít, protože výchozí certifikát je vydán pro *.azurewebsites.net
.
Pokud potřebujete použít vlastní název DNS, přidejte do aplikace 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 Services), 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 a 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), povolte podporu privátního koncového bodu 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, ujistěte se, že je předplatné s virtuální sítí zaregistrované pro Microsoft.Web
poskytovatele prostředků. Pokud chcete poskytovatele explicitně zaregistrovat, přečtěte si téma Registrace poskytovatele prostředků. Poskytovatele automaticky zaregistrujete při vytváření první webové aplikace v předplatném.
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í funkce na webu Azure Portal, musíte mít přímý přístup k síti. V opačném případě se zobrazí chyba HTTP 403. Aby se funkce spustila z webu Azure Portal, musí být váš prohlížeč schopný kontaktovat privátní koncový bod.
- 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čujeme nasadit kód do slotu a vzdáleně ho ladit tam.
- 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 TLS založený na PROTOKOLU IP.
- Aplikace, které konfigurujete s privátními koncovými body, nemůžou přijímat veřejný provoz pochá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
. Další informace najdete v tématu Pravidla a omezení pojmenování.
Aktuální informace o omezeních najdete v tématu Omezení.
Související obsah
- Pokud chcete nasadit privátní koncový bod pro vaši aplikaci prostřednictvím portálu, přečtěte si, jak se soukromě připojit k aplikaci pomocí webu Azure Portal.
- Pokud chcete nasadit privátní koncový bod pro vaši aplikaci pomocí Azure CLI, přečtěte si téma Jak se soukromě připojit k aplikaci pomocí Azure CLI.
- Pokud chcete nasadit privátní koncový bod pro vaši aplikaci pomocí PowerShellu, přečtěte si, jak se soukromě připojit k aplikaci pomocí PowerShellu.
- Pokud chcete nasadit privátní koncový bod pro vaši aplikaci pomocí šablony Azure, přečtěte si, jak se soukromě připojit k aplikaci pomocí šablony Azure.
- Pokud se chcete podívat na ucelený příklad připojení front-endové aplikace k zabezpečené back-endové aplikaci s integrací virtuální sítě a privátním koncovým bodem pomocí šablony ARM, podívejte se na tento rychlý start.
- Pokud se chcete podívat na kompletní příklad připojení front-endové aplikace k zabezpečené back-endové aplikaci s integrací virtuální sítě a privátním koncovým bodem s terraformem, podívejte se na tuto ukázku.