Udostępnij za pośrednictwem


Używanie prywatnych punktów końcowych dla aplikacji usługi Azure App Service

Możesz użyć prywatnego punktu końcowego dla aplikacji usługi Azure App Service. Prywatny punkt końcowy umożliwia 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. Ta konfiguracja eliminuje narażenie z publicznego Internetu.

Jeśli używasz prywatnego punktu końcowego dla aplikacji, możesz:

  • Zabezpiecz aplikację podczas konfigurowania prywatnego punktu końcowego i wyłączania dostępu do sieci publicznej, co eliminuje publiczne ujawnienie.
  • Bezpiecznie nawiąż połączenie z aplikacją z sieci lokalnych łączących się z siecią wirtualną przy użyciu VPN lub prywatnego peeringu ExpressRoute.
  • Unikaj eksfiltracji danych z sieci wirtualnej.

Ważne

Prywatne punkty końcowe są dostępne dla aplikacji systemu Windows i Linux, konteneryzowanych lub nie hostowanych w następujących planach usługi App Service: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (czasami nazywanym planem Elastic Premium).

Omówienie pojęć

Prywatny punkt końcowy to interfejs sieci dla aplikacji w usłudze App Service znajdujący się w podsieci twojej 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 prywatnego punktu końcowego. Możesz skierować ruch wychodzący do sieci w inną podsieć za pomocą funkcji integracji sieci wirtualnej.

Każdy slot aplikacji jest konfigurowany oddzielnie. Możesz użyć maksymalnie 100 prywatnych punktów końcowych na gniazdo. Nie można udostępnić prywatnego punktu końcowego między slotami. Nazwa subresource miejsca to sites-<slot-name>.

Podsieć używana do podłączania prywatnego punktu końcowego może mieć 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.

Zagadnienia dotyczące zabezpieczeń

Prywatne punkty końcowe i dostęp publiczny mogą współistnieć w aplikacji. Aby uzyskać więcej informacji, zobacz to omówienie ograniczeń dostępu.

Aby zapewnić izolację, po włączeniu prywatnych punktów końcowych w aplikacji należy wyłączyć dostęp do sieci publicznej. W innych sieciach wirtualnych i podsieciach można włączyć wiele prywatnych punktów końcowych, w tym sieci wirtualnych 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 można wyeliminować z sieci wirtualnej. Usuń wszystkie reguły sieciowej grupy zabezpieczeń, w których obiekt docelowy oznacza internet lub usługi platformy Azure.

Źródłowy adres IP klienta można znaleźć w internetowych dziennikach HTTP aplikacji. Ta funkcja jest implementowana przy użyciu serwera proxy protokołu TCP (Transmission Control Protocol), który przekazuje 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.

Diagram przedstawiający globalne omówienie prywatnych punktów końcowych usługi App Service.

System Nazw Domenowych (DNS)

Jeśli używasz prywatnego punktu końcowego dla aplikacji usługi App Service, żądany adres URL musi być zgodny z adresem aplikacji. Domyślnie, bez prywatnego punktu końcowego, publiczna nazwa aplikacji webowej jest kanoniczną nazwą klastra. Na przykład rozwiązywanie 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 192.0.2.13

Podczas wdrażania prywatnego punktu końcowego metoda aktualizuje wpis systemu nazw domen (DNS), aby wskazywał nazwę kanoniczną: mywebapp.privatelink.azurewebsites.net. Na przykład rozwiązywanie 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 192.0.2.13 <- 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 dla Twojej aplikacji przy użyciu A rekordu i prywatnego adresu IP punktu końcowego. W przypadku grup prywatnych stref DNS platformy Azure rekordy DNS są automatycznie dodawane do prywatnej strefy DNS.

Na przykład rozwiązywanie nazw to:

Nazwisko Typ Wartość Uwaga
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Platforma Azure tworzy ten CNAME wpis w publicznej usłudze Azure DNS, aby wskazywał 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 skonfigurowaniu tej konfiguracji DNS możesz prywatnie uzyskać dostęp do aplikacji przy użyciu nazwy mywebapp.azurewebsites.netdomyślnej . Należy użyć tej nazwy, ponieważ certyfikat domyślny jest wystawiany dla programu *.azurewebsites.net.

Nazwa domeny niestandardowej

Jeśli musisz użyć niestandardowej nazwy domeny, dodaj nazwę niestandardową w aplikacji. Należy zweryfikować nazwę niestandardową, tak jak każdą inną nazwę niestandardową, przy użyciu publicznego rozpoznawania DNS. Aby uzyskać więcej informacji, zapoznaj się z niestandardową walidacją DNS.

W niestandardowej strefie DNS należy zaktualizować rekord DNS, aby wskazywał prywatny punkt końcowy. Jeśli aplikacja jest już skonfigurowana z rozpoznawaniem nazw DNS dla domyślnej nazwy hosta, preferowanym sposobem jest dodanie CNAME rekordu dla domeny niestandardowej wskazującej na mywebapp.azurewebsites.net. Jeśli chcesz, aby nazwa domeny niestandardowej była przypisana bezpośrednio do prywatnego punktu końcowego, możesz dodać rekord A z prywatnym adresem IP tego punktu końcowego.

Punkt końcowy kudu/scm

W przypadku konsoli Kudu lub interfejsu API REST Kudu (na przykład do wdrożenia przy użyciu własnych agentów usługi Azure DevOps Services) należy utworzyć drugi rekord wskazujący prywatny adres IP punktu końcowego w strefie prywatnej usługi Azure DNS lub niestandardowym serwerze DNS. Pierwsza dotyczy twojej aplikacji, a druga dotyczy programu SCM (zarządzania kontrolą źródła) aplikacji. W przypadku grup prywatnej strefy DNS platformy Azure punkt końcowy scm jest dodawany automatycznie.

Nazwisko Typ Wartość
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

Specjalne kwestie dotyczące wersji 3 środowiska App Service Environment

Aby włączyć prywatny punkt końcowy dla aplikacji hostowanych w planie izolowanego środowiska V2 (App Service Environment w wersji 3), włącz obsługę prywatnego punktu końcowego na poziomie środowiska App Service Environment. Funkcję można aktywować przy użyciu Azure Portal w okienku konfiguracji środowiska App Service Environment lub za pomocą następującego CLI.

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, upewnij się, że subskrypcja z siecią wirtualną Microsoft.Web jest zarejestrowana dla dostawcy zasobów. Aby jawnie zarejestrować dostawcę, zobacz Rejestrowanie dostawcy zasobów. Dostawca jest automatycznie rejestrowany 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, musisz mieć bezpośredni dostęp sieciowy, aby uruchomić funkcję w witrynie Azure Portal. W przeciwnym razie zostanie wyświetlony błąd HTTP 403. Aby można było uruchomić funkcję z witryny Azure Portal, przeglądarka musi mieć dostęp do prywatnego punktu końcowego.
  • Możesz połączyć maksymalnie 100 prywatnych punktów końcowych z określoną aplikacją.
  • Funkcja zdalnego debugowania nie jest dostępna za pośrednictwem prywatnego punktu końcowego. Zalecamy wdrożenie kodu do slotu i zdalne debugowanie 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ół TLS 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 włączonym Microsoft.Web 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 Microsoft.Network/privateEndpoints typu. Aby uzyskać więcej informacji, zobacz Reguły i ograniczenia nazewnictwa.

Aby uzyskać informacje o ograniczeniach dotyczących up-to, zobacz tę dokumentację.