Używanie prywatnych punktów końcowych dla aplikacji usługi App Service
Uwaga
Od 1 czerwca 2024 r. wszystkie nowo utworzone aplikacje usługi App Service będą miały możliwość wygenerowania unikatowej domyślnej nazwy hosta przy użyciu konwencji <app-name>-<random-hash>.<region>.azurewebsites.net
nazewnictwa . Istniejące nazwy aplikacji pozostaną niezmienione.
Przykład: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Aby uzyskać więcej informacji, zapoznaj się z unikatową domyślną nazwą hosta zasobu usługi App Service.
Ważne
Prywatny punkt końcowy jest dostępny dla aplikacji systemu Windows i Linux, konteneryzowanych lub nie hostowanych w tych planach usługi App Service: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (czasami nazywany planem Elastic Premium).
Możesz użyć prywatnego punktu końcowego dla aplikacji usługi App Service, aby umożliwić klientom znajdującym się w sieci prywatnej bezpieczny dostęp do aplikacji za pośrednictwem usługi Azure Private Link. Prywatny punkt końcowy używa adresu IP z przestrzeni adresowej sieci wirtualnej platformy Azure. Ruch sieciowy między klientem w sieci prywatnej a aplikacją przechodzi przez sieć wirtualną i usługę Private Link w sieci szkieletowej firmy Microsoft, eliminując narażenie z publicznego Internetu.
Korzystanie z prywatnego punktu końcowego dla aplikacji umożliwia:
- Zabezpiecz aplikację, konfigurując prywatny punkt końcowy i wyłączając dostęp do sieci publicznej w celu wyeliminowania ujawnienia publicznego.
- Bezpiecznie nawiąż połączenie z aplikacją z sieci lokalnych łączących się z siecią wirtualną przy użyciu prywatnej komunikacji równorzędnej sieci VPN lub usługi ExpressRoute.
- Unikaj eksfiltracji danych z sieci wirtualnej.
Omówienie pojęć
Prywatny punkt końcowy to specjalny interfejs sieciowy dla aplikacji usługi App Service w podsieci w sieci wirtualnej. Podczas tworzenia prywatnego punktu końcowego dla aplikacji zapewnia ona bezpieczną łączność między klientami w sieci prywatnej i aplikacji. Prywatny punkt końcowy ma przypisany adres IP z zakresu adresów IP sieci wirtualnej. Połączenie między prywatnym punktem końcowym a aplikacją używa bezpiecznego łącza prywatnego. Prywatny punkt końcowy jest używany tylko dla ruchu przychodzącego do aplikacji. Ruch wychodzący nie używa tego prywatnego punktu końcowego. Możesz wstrzyknąć ruch wychodzący do sieci w innej podsieci za pomocą funkcji integracji sieci wirtualnej.
Każde miejsce aplikacji jest konfigurowane oddzielnie. Możesz podłączyć maksymalnie 100 prywatnych punktów końcowych na miejsce. Nie można udostępnić prywatnego punktu końcowego między miejscami. Nazwa podźródła miejsca to sites-<slot-name>
.
Podsieć, w której podłączasz prywatny punkt końcowy, może mieć w nim inne zasoby, nie potrzebujesz dedykowanej pustej podsieci. Prywatny punkt końcowy można również wdrożyć w innym regionie niż aplikacja.
Uwaga
Funkcja integracji sieci wirtualnej nie może używać tej samej podsieci co prywatny punkt końcowy. Jest to ograniczenie funkcji integracji sieci wirtualnej.
Z punktu widzenia zabezpieczeń:
- Prywatny punkt końcowy i dostęp publiczny mogą współistnieć w aplikacji. Aby uzyskać więcej informacji, zobacz omówienie ograniczeń dostępu
- Po włączeniu prywatnych punktów końcowych w aplikacji upewnij się, że dostęp do sieci publicznej jest wyłączony w celu zapewnienia izolacji.
- W innych sieciach wirtualnych i podsieciach można włączyć wiele prywatnych punktów końcowych, w tym sieci wirtualnej w innych regionach.
- Reguły ograniczeń dostępu aplikacji nie są oceniane pod kątem ruchu za pośrednictwem prywatnego punktu końcowego.
- Można wyeliminować ryzyko eksfiltracji danych z sieci wirtualnej, usuwając wszystkie reguły sieciowej grupy zabezpieczeń, w których miejsce docelowe jest oznaczane internetem lub usługami platformy Azure.
W dziennikach protokołu HTTP sieci Web aplikacji znajduje się źródłowy adres IP klienta. Ta funkcja jest implementowana przy użyciu protokołu TCP Proxy, przekazując właściwość IP klienta do aplikacji. Aby uzyskać więcej informacji, zobacz Uzyskiwanie informacji o połączeniu przy użyciu serwera proxy TCP w wersji 2.
DNS
Jeśli używasz prywatnego punktu końcowego dla aplikacji usługi App Service, żądany adres URL musi być zgodny z nazwą aplikacji. Domyślnie <app-name>.azurewebsites.net
. Jeśli używasz unikatowej domyślnej nazwy hosta, nazwa aplikacji ma format <app-name>-<random-hash>.<region>.azurewebsites.net
. W poniższych przykładach aplikacja mywebapp może również reprezentować pełną regionalną unikatową nazwę hosta.
Domyślnie bez prywatnego punktu końcowego publiczna nazwa aplikacji internetowej jest nazwą kanoniczną klastra. Na przykład rozpoznawanie nazw to:
Nazwisko | Typ | Wartość |
---|---|---|
mywebapp.azurewebsites.net | CNAME | clustername.azurewebsites.windows.net |
clustername.azurewebsites.windows.net | CNAME | cloudservicename.cloudapp.net |
cloudservicename.cloudapp.net | A | 40.122.110.154 |
Podczas wdrażania prywatnego punktu końcowego aktualizujemy wpis DNS, aby wskazywał nazwę kanoniczną mywebapp.privatelink.azurewebsites.net. Na przykład rozpoznawanie nazw to:
Nazwisko | Typ | Wartość | Uwaga |
---|---|---|---|
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 | <--Ten publiczny adres IP nie jest prywatnym punktem końcowym, zostanie wyświetlony błąd 403 |
Należy skonfigurować prywatny serwer DNS lub prywatną strefę usługi Azure DNS. W przypadku testów można zmodyfikować wpis hosta maszyny testowej. Strefa DNS, którą należy utworzyć, to: privatelink.azurewebsites.net. Zarejestruj rekord aplikacji przy użyciu rekordu A i prywatnego adresu IP punktu końcowego. Na przykład rozpoznawanie nazw to:
Nazwisko | Typ | Wartość | Uwaga |
---|---|---|---|
mywebapp.azurewebsites.net | CNAME | mywebapp.privatelink.azurewebsites.net | <--Platforma Azure tworzy ten wpis CNAME w publicznej usłudze Azure DNS, aby wskazać adres aplikacji na prywatny adres punktu końcowego |
mywebapp.privatelink.azurewebsites.net | A | 10.10.10.8 | <— Zarządzasz tym wpisem w systemie DNS, aby wskazywał prywatny adres IP punktu końcowego |
Po wykonaniu tej konfiguracji DNS możesz prywatnie uzyskać dostęp do aplikacji przy użyciu nazwy domyślnej mywebapp.azurewebsites.net. Należy użyć tej nazwy, ponieważ certyfikat domyślny jest wystawiony dla *.azurewebsites.net.
Jeśli musisz użyć niestandardowej nazwy DNS, musisz dodać niestandardową nazwę w aplikacji i musisz zweryfikować niestandardową nazwę, taką jak dowolna nazwa niestandardowa, przy użyciu publicznego rozpoznawania nazw DNS. Aby uzyskać więcej informacji, zobacz niestandardową walidację DNS.
W przypadku konsoli Kudu lub interfejsu API REST Kudu (wdrożenie z własnymi agentami usług Azure DevOps Services) należy utworzyć dwa rekordy wskazujące prywatny adres IP punktu końcowego w strefie prywatnej usługi Azure DNS lub niestandardowym serwerze DNS. Pierwsza dotyczy twojej aplikacji, a druga dotyczy menedżera SCM aplikacji.
Nazwisko | Typ | Wartość |
---|---|---|
mywebapp.privatelink.azurewebsites.net | A | PrivateEndpointIP |
mywebapp.scm.privatelink.azurewebsites.net | A | PrivateEndpointIP |
Specjalne kwestie dotyczące środowiska App Service Environment w wersji 3
Aby włączyć prywatny punkt końcowy dla aplikacji hostowanych w planie izolowanego środowiska V2 (App Service Environment w wersji 3), należy włączyć obsługę prywatnego punktu końcowego na poziomie środowiska App Service Environment. Funkcję można aktywować w witrynie Azure Portal w okienku konfiguracji środowiska App Service Environment lub za pomocą następującego interfejsu wiersza polecenia:
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
Określone wymagania
Jeśli sieć wirtualna znajduje się w innej subskrypcji niż aplikacja, musisz upewnić się, że subskrypcja z siecią wirtualną jest zarejestrowana dla Microsoft.Web
dostawcy zasobów. Możesz jawnie zarejestrować dostawcę , postępując zgodnie z tą dokumentacją , ale także automatycznie rejestrować dostawcę podczas tworzenia pierwszej aplikacji internetowej w ramach subskrypcji.
Cennik
Aby uzyskać szczegółowe informacje o cenach, zobacz Cennik usługi Azure Private Link.
Ograniczenia
- Jeśli używasz funkcji platformy Azure w planie Elastic Premium z prywatnym punktem końcowym, aby uruchomić lub wykonać funkcję w witrynie Azure Portal, musisz mieć bezpośredni dostęp do sieci lub zostanie wyświetlony błąd HTTP 403. Innymi słowy przeglądarka musi mieć możliwość uzyskania dostępu do prywatnego punktu końcowego w celu wykonania funkcji z witryny Azure Portal.
- Możesz połączyć maksymalnie 100 prywatnych punktów końcowych z określoną aplikacją.
- Funkcja debugowania zdalnego nie jest dostępna za pośrednictwem prywatnego punktu końcowego. Zaleca się wdrożenie kodu na produkcji i zdalne debugowanie go tam.
- Dostęp ftp jest udostępniany za pośrednictwem przychodzącego publicznego adresu IP. Prywatny punkt końcowy nie obsługuje dostępu FTP do aplikacji.
- Protokół SSL oparty na protokole IP nie jest obsługiwany w przypadku prywatnych punktów końcowych.
- Aplikacje konfigurowane za pomocą prywatnych punktów końcowych nie mogą odbierać ruchu publicznego pochodzącego z podsieci z
Microsoft.Web
włączonym punktem końcowym usługi i nie mogą używać reguł ograniczeń dostępu opartych na punkcie końcowym usługi. - Nazewnictwo prywatnego punktu końcowego musi być zgodne z regułami zdefiniowanymi dla zasobów typu
Microsoft.Network/privateEndpoints
. Reguły nazewnictwa można znaleźć tutaj.
Regularnie ulepszamy funkcję usługi Azure Private Link i prywatny punkt końcowy. Zapoznaj się z tym artykułem , aby uzyskać aktualne informacje o ograniczeniach.
Następne kroki
- Aby wdrożyć prywatny punkt końcowy aplikacji za pośrednictwem portalu, zobacz Jak połączyć się prywatnie z aplikacją za pomocą witryny Azure Portal
- Aby wdrożyć prywatny punkt końcowy dla aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure, zobacz Jak połączyć się prywatnie z aplikacją za pomocą interfejsu wiersza polecenia platformy Azure
- Aby wdrożyć prywatny punkt końcowy dla aplikacji przy użyciu programu PowerShell, zobacz How to connect privately to an app with PowerShell (Jak połączyć się prywatnie z aplikacją przy użyciu programu PowerShell)
- Aby wdrożyć prywatny punkt końcowy dla aplikacji przy użyciu szablonu platformy Azure, zobacz Jak połączyć się prywatnie z aplikacją przy użyciu szablonu platformy Azure
- Przykład kompleksowego połączenia aplikacji frontonu z zabezpieczoną aplikacją zaplecza z integracją sieci wirtualnej i prywatnym punktem końcowym za pomocą szablonu usługi ARM. Zobacz ten przewodnik Szybki start
- Przykład kompleksowego połączenia aplikacji frontonu z zabezpieczoną aplikacją zaplecza z integracją sieci wirtualnej i prywatnym punktem końcowym za pomocą narzędzia terraform, zobacz ten przykład