Udostępnij za pośrednictwem


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

Uwaga

Od 1 czerwca 2024 r. nowo utworzone aplikacje usługi App Service mogą wygenerować unikatową domyślną nazwę hosta, która używa konwencji <app-name>-<random-hash>.<region>.azurewebsites.netnazewnictwa . Istniejące nazwy aplikacji pozostają niezmienione. Na przykład:

myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Aby uzyskać więcej informacji, zobacz Unikatowa domyślna nazwa hosta zasobu usługi App Service.

Ważne

Prywatne punkty końcowe są dostępne 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 nazywanym planem Elastic Premium).

Możesz użyć prywatnego punktu końcowego dla aplikacji usługi 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.

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 użyć 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.

Z punktu widzenia zabezpieczeń:

  • Prywatny punkt końcowy 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 upewnij się, że dostęp do sieci publicznej jest wyłączony.
  • 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.

Diagram przedstawia 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 . <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 192.0.2.13

Podczas wdrażania prywatnego punktu końcowego metoda aktualizuje 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 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 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 wystawiany dla programu *.azurewebsites.net.

Jeśli musisz użyć niestandardowej nazwy DNS, dodaj niestandardową nazwę w aplikacji i musisz zweryfikować nazwę niestandardową, taką jak dowolną niestandardową nazwę, 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, na przykład), 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), włącz 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, 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, aby uruchomić funkcję w witrynie Azure Portal, musisz mieć bezpośredni dostęp do sieci. 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 debugowania zdalnego nie jest dostępna za pośrednictwem prywatnego punktu końcowego. Zalecamy 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ół 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 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. Aby uzyskać więcej informacji, zobacz Reguły i ograniczenia nazewnictwa.

Aby uzyskać aktualne informacje o ograniczeniach, zobacz Ograniczenia.