Używanie prywatnych punktów końcowych dla aplikacji 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 będzie 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 zasobu podrzędnego 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.
  • Ryzyko eksfiltracji danych z sieci wirtualnej można wyeliminować, usuwając wszystkie reguły sieciowej grupy zabezpieczeń, w których miejsce docelowe oznacza internet lub usługi 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.

Omówienie globalnego prywatnego punktu końcowego aplikacji usługi App Service

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 mywebappname.azurewebsites.net.

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 mywebappname.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 (na przykład wdrożenie z własnymi agentami usługi Azure DevOps) 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 zarejestrować 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. Zaleceniem jest wdrożenie kodu w miejscu 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