Udostępnij za pośrednictwem


Zabezpieczanie usługi Azure Functions

Na wiele sposobów planowanie bezpiecznego programowania, wdrażania i działania funkcji bezserwerowych jest bardzo takie samo jak w przypadku dowolnej aplikacji internetowej lub hostowanej w chmurze. usługa aplikacja systemu Azure udostępnia infrastrukturę hostingu dla aplikacji funkcji. Ten artykuł zawiera strategie zabezpieczeń dotyczące uruchamiania kodu funkcji oraz sposób, w jaki usługa App Service może pomóc w zabezpieczeniu funkcji.

Składniki platformy App Service, w tym maszyny wirtualne platformy Azure, magazyn, połączenia sieciowe, struktury internetowe oraz funkcje zarządzania i integracji, są aktywnie zabezpieczone i wzmocnione. Usługa App Service przeprowadza intensywne kontrole zgodności w sposób ciągły, aby upewnić się, że:

  • Zasoby aplikacji są zabezpieczone przed zasobami platformy Azure innych klientów.
  • Wystąpienia maszyn wirtualnych i oprogramowanie uruchomieniowe są regularnie aktualizowane w celu rozwiązania nowo wykrytych luk w zabezpieczeniach.
  • Komunikacja wpisów tajnych (takich jak parametry połączenia) między aplikacją a innymi zasobami platformy Azure (takimi jak usługa SQL Database) pozostaje na platformie Azure i nie przekracza żadnych granic sieci. Wpisy tajne są zawsze szyfrowane podczas przechowywania.
  • Cała komunikacja za pośrednictwem funkcji łączności usługi App Service, takich jak połączenie hybrydowe, jest szyfrowana.
  • Połączenia z narzędziami do zarządzania zdalnego, takimi jak program Azure PowerShell, interfejs wiersza polecenia platformy Azure, zestawy AZURE SDK, interfejsy API REST, są szyfrowane.
  • 24-godzinne zarządzanie zagrożeniami chroni infrastrukturę i platformę przed złośliwym oprogramowaniem, rozproszoną odmową usługi (DDoS), man-in-the-middle (MITM) i innymi zagrożeniami.

Aby uzyskać więcej informacji na temat zabezpieczeń infrastruktury i platformy na platformie Azure, zobacz Centrum zaufania Platformy Azure.

Aby uzyskać zestaw zaleceń dotyczących zabezpieczeń, które są zgodne z testem porównawczym zabezpieczeń w chmurze firmy Microsoft, zobacz Punkt odniesienia zabezpieczeń platformy Azure dla usługi Azure Functions.

Bezpieczna operacja

Ta sekcja zawiera instrukcje dotyczące konfigurowania i uruchamiania aplikacji funkcji tak bezpiecznie, jak to możliwe.

Defender dla Chmury

Defender dla Chmury integruje się z aplikacją funkcji w portalu. Zapewnia bezpłatnie szybką ocenę potencjalnych luk w zabezpieczeniach związanych z konfiguracją. Aplikacje funkcji działające w dedykowanym planie mogą również korzystać z rozszerzonych funkcji zabezpieczeń Defender dla Chmury w celu uzyskania dodatkowych kosztów. Aby dowiedzieć się więcej, zobacz Ochrona aplikacji internetowych i interfejsów API usługi aplikacja systemu Azure Service.

Rejestrowanie i monitorowanie

Jednym ze sposobów wykrywania ataków jest monitorowanie działań i analiza rejestrowania. Funkcje integrują się z usługą Application Insights w celu zbierania danych dziennika, wydajności i błędów aplikacji funkcji. Usługa Application Insights automatycznie wykrywa anomalie wydajności i zawiera zaawansowane narzędzia analityczne, które ułatwiają diagnozowanie problemów i zrozumienie sposobu korzystania z funkcji. Aby dowiedzieć się więcej, zobacz Monitorowanie usługi Azure Functions.

Funkcje integrują się również z dziennikami usługi Azure Monitor, aby umożliwić konsolidację dzienników aplikacji funkcji z zdarzeniami systemowymi w celu łatwiejszej analizy. Możesz użyć ustawień diagnostycznych, aby skonfigurować eksport strumieniowy dzienników platformy i metryk dla funkcji do wybranego miejsca docelowego, takiego jak obszar roboczy usługi Logs Analytics. Aby dowiedzieć się więcej, zobacz Monitorowanie usługi Azure Functions za pomocą dzienników usługi Azure Monitor.

W przypadku automatyzacji wykrywania zagrożeń i reagowania na poziomie przedsiębiorstwa przesyłaj strumieniowo dzienniki i zdarzenia do obszaru roboczego usługi Logs Analytics. Następnie możesz połączyć usługę Microsoft Sentinel z tym obszarem roboczym. Aby dowiedzieć się więcej, zobacz Co to jest usługa Microsoft Sentinel.

Aby uzyskać więcej zaleceń dotyczących zabezpieczeń na potrzeby obserwacji, zobacz Punkt odniesienia zabezpieczeń platformy Azure dla usługi Azure Functions.

Zabezpieczanie punktów końcowych HTTP

Punkty końcowe HTTP, które są udostępniane publicznie, zapewniają wektor ataku dla złośliwych podmiotów. Podczas zabezpieczania punktów końcowych HTTP należy użyć podejścia zabezpieczeń warstwowych. Te techniki mogą służyć do zmniejszenia luk w zabezpieczeniach publicznie uwidocznionych punktów końcowych HTTP uporządkowanych od najbardziej podstawowych do najbardziej bezpiecznych i restrykcyjnych:

Wymagaj protokołu HTTPS

Domyślnie klienci mogą łączyć się z punktami końcowymi funkcji przy użyciu protokołu HTTP lub HTTPS. Należy przekierować protokół HTTP do protokołu HTTPS, ponieważ protokół HTTPS używa protokołu SSL/TLS w celu zapewnienia bezpiecznego połączenia, które jest szyfrowane i uwierzytelniane. Aby dowiedzieć się, jak to zrobić, zobacz Wymuszanie protokołu HTTPS.

Jeśli potrzebujesz protokołu HTTPS, należy również wymagać najnowszej wersji protokołu TLS. Aby dowiedzieć się, jak to zrobić, zobacz Wymuszanie wersji protokołu TLS.

Aby uzyskać więcej informacji, zobacz Bezpieczne połączenia (TLS).

Klucze dostępu funkcji

Usługa Functions umożliwia używanie kluczy, aby utrudnić dostęp do punktów końcowych funkcji. Jeśli poziom dostępu HTTP w funkcji wyzwalanej przez protokół HTTP jest ustawiony na anonymouswartość , żądania muszą zawierać klucz dostępu w żądaniu. Aby uzyskać więcej informacji, zobacz Praca z kluczami dostępu w usłudze Azure Functions.

Chociaż klucze dostępu mogą zapewnić pewne środki zaradcze w przypadku niepożądanego dostępu, jedynym sposobem na naprawdę zabezpieczenie punktów końcowych funkcji jest zaimplementowanie pozytywnego uwierzytelniania klientów, którzy uzyskują dostęp do funkcji. Następnie możesz podejmować decyzje dotyczące autoryzacji na podstawie tożsamości.

W przypadku najwyższego poziomu zabezpieczeń można również zabezpieczyć całą architekturę aplikacji wewnątrz sieci wirtualnej przy użyciu prywatnych punktów końcowych lub przez uruchomienie w izolacji.

Wyłączanie punktów końcowych administracyjnych

Aplikacje funkcji mogą obsługiwać administracyjne punkty końcowe w /admin ramach trasy, które mogą być używane na potrzeby operacji, takich jak uzyskiwanie informacji o stanie hosta i wykonywanie wywołań testowych. W przypadku uwidocznienia żądania względem tych punktów końcowych muszą zawierać klucz główny aplikacji. Operacje administracyjne są również dostępne za pośrednictwem interfejsu API usługi Azure Resource ManagerMicrosoft.Web/sites, który oferuje kontrolę dostępu opartą na rolach platformy Azure. Punkty końcowe można wyłączyć /admin , ustawiając functionsRuntimeAdminIsolationEnabled właściwość witryny na true. Nie można ustawić tej właściwości dla aplikacji uruchomionych w jednostce SKU Zużycie systemu Linux i nie można jej ustawić dla aplikacji działających w wersji 1.x usługi Azure Functions. Jeśli używasz wersji 1.x, musisz najpierw przeprowadzić migrację do wersji 4.x.

Włączanie uwierzytelniania/autoryzacji usługi App Service

Platforma App Service umożliwia uwierzytelnianie klientów przy użyciu identyfikatora Entra firmy Microsoft i kilku dostawców tożsamości innych firm. Ta strategia umożliwia zaimplementowanie niestandardowych reguł autoryzacji dla funkcji i pracę z informacjami o użytkowniku z poziomu kodu funkcji. Aby dowiedzieć się więcej, zobacz Uwierzytelnianie i autoryzacja w usłudze aplikacja systemu Azure i Praca z tożsamościami klientów.

Uwierzytelnianie żądań przy użyciu usługi Azure API Management (APIM)

Usługa APIM udostępnia różne opcje zabezpieczeń interfejsu API dla żądań przychodzących. Aby dowiedzieć się więcej, zobacz Zasady uwierzytelniania usługi API Management. Za pomocą usługi APIM możesz skonfigurować aplikację funkcji tak, aby akceptowała żądania tylko z adresu IP wystąpienia usługi APIM. Aby dowiedzieć się więcej, zobacz Ograniczenia adresów IP.

Uprawnienia

Podobnie jak w przypadku dowolnej aplikacji lub usługi, celem jest uruchomienie aplikacji funkcji z najniższymi możliwymi uprawnieniami.

Uprawnienia do zarządzania użytkownikami

Usługa Functions obsługuje wbudowaną kontrolę dostępu opartą na rolach (RBAC) platformy Azure. Role platformy Azure obsługiwane przez funkcje to Współautor, Właściciel i Czytelnik.

Uprawnienia są skuteczne na poziomie aplikacji funkcji. Rola Współautor jest wymagana do wykonywania większości zadań na poziomie aplikacji funkcji. Potrzebna jest również rola Współautor wraz z uprawnieniem Czytelnik monitorowania, aby móc wyświetlać dane dziennika w usłudze Application Insights. Tylko rola Właściciel może usunąć aplikację funkcji.

Organizowanie funkcji według uprawnień

Parametry połączenia i inne poświadczenia przechowywane w ustawieniach aplikacji dają wszystkim funkcjom w aplikacji funkcji ten sam zestaw uprawnień w skojarzonym zasobie. Rozważ zminimalizowanie liczby funkcji z dostępem do określonych poświadczeń przez przeniesienie funkcji, które nie używają tych poświadczeń do oddzielnej aplikacji funkcji. Zawsze można używać technik, takich jak łączenie łańcuchów funkcji w celu przekazywania danych między funkcjami w różnych aplikacjach funkcji.

Tożsamości zarządzane

Tożsamość zarządzana firmy Microsoft Entra ID umożliwia aplikacji łatwy dostęp do innych chronionych zasobów firmy Microsoft, takich jak Azure Key Vault. Tożsamość jest zarządzana przez platformę Azure i nie wymaga aprowizacji ani rotacji żadnych wpisów tajnych. Aby uzyskać więcej informacji na temat tożsamości zarządzanych w usłudze Microsoft Entra ID, zobacz Tożsamości zarządzane dla zasobów platformy Azure.

Aplikacja może mieć korzystać z dwóch typów tożsamości:

  • Tożsamość przypisana przez system jest powiązana z aplikacją i jest usuwana, jeśli aplikacja zostanie usunięta. Aplikacja może mieć tylko jedną tożsamość przypisaną przez system.
  • Tożsamość przypisana przez użytkownika to autonomiczny zasób platformy Azure, który można przypisać do aplikacji. Aplikacja może mieć wiele tożsamości przypisanych przez użytkownika, a jedna tożsamość przypisana przez użytkownika może być przypisana do wielu zasobów platformy Azure, takich jak dwie aplikacje usługi App Service.

Tożsamości zarządzane mogą być używane zamiast wpisów tajnych dla połączeń z niektórych wyzwalaczy i powiązań. Zobacz Połączenia oparte na tożsamościach.

Aby uzyskać więcej informacji, zobacz How to use managed identities for App Service and Azure Functions (Jak używać tożsamości zarządzanych dla usług App Service i Azure Functions).

Ograniczanie dostępu za pomocą mechanizmu CORS

Współużytkowanie zasobów między źródłami (CORS) to sposób zezwalania aplikacjom internetowym działającym w innej domenie na wykonywanie żądań do punktów końcowych wyzwalacza HTTP. Usługa App Service zapewnia wbudowaną obsługę przekazywania wymaganych nagłówków CORS w żądaniach HTTP. Reguły CORS są definiowane na poziomie aplikacji funkcji.

Chociaż kuszące jest użycie symbolu wieloznakowego, który umożliwia wszystkim witrynom uzyskiwanie dostępu do punktu końcowego, powoduje to pokonanie celu mechanizmu CORS, co ma pomóc w zapobieganiu atakom skryptowym między witrynami. Zamiast tego dodaj oddzielny wpis CORS dla domeny każdej aplikacji internetowej, która musi uzyskać dostęp do punktu końcowego.

Zarządzanie wpisami tajnymi

Aby móc łączyć się z różnymi usługami i zasobami potrzebnymi do uruchomienia kodu, aplikacje funkcji muszą mieć dostęp do wpisów tajnych, takich jak parametry połączenia i klucze usług. W tej sekcji opisano sposób przechowywania wpisów tajnych wymaganych przez funkcje.

Nigdy nie przechowuj wpisów tajnych w kodzie funkcji.

Ustawienia aplikacji

Domyślnie parametry połączenia i wpisy tajne używane przez aplikację funkcji i powiązania są przechowywane jako ustawienia aplikacji. Dzięki temu te poświadczenia są dostępne zarówno dla kodu funkcji, jak i różnych powiązań używanych przez funkcję. Nazwa ustawienia aplikacji (klucza) służy do pobierania rzeczywistej wartości, która jest wpisem tajnym.

Na przykład każda aplikacja funkcji wymaga skojarzonego konta magazynu, które jest używane przez środowisko uruchomieniowe. Domyślnie połączenie z tym kontem magazynu jest przechowywane w ustawieniu aplikacji o nazwie AzureWebJobsStorage.

Ustawienia aplikacji i parametry połączenia są przechowywane zaszyfrowane na platformie Azure. Są one odszyfrowywane dopiero przed wstrzyknięciem do pamięci procesu aplikacji po uruchomieniu aplikacji. Klucze szyfrowania są regularnie obracane. Jeśli wolisz zarządzać bezpiecznym magazynem wpisów tajnych, ustawienia aplikacji powinny zamiast tego odwoływać się do wpisów tajnych usługi Azure Key Vault.

Ustawienia można również szyfrować domyślnie w local.settings.json pliku podczas opracowywania funkcji na komputerze lokalnym. Aby uzyskać więcej informacji, zobacz Szyfrowanie pliku ustawień lokalnych.

Odwołania do usługi Key Vault

Chociaż ustawienia aplikacji są wystarczające dla większości funkcji, możesz chcieć udostępnić te same wpisy tajne w wielu usługach. W takim przypadku nadmiarowy magazyn wpisów tajnych powoduje zwiększenie potencjalnych luk w zabezpieczeniach. Bezpieczniejszym podejściem jest użycie centralnej usługi magazynu wpisów tajnych i użycie odwołań do tej usługi zamiast samych wpisów tajnych.

Azure Key Vault to usługa, która zapewnia scentralizowane zarządzanie wpisami tajnymi z pełną kontrolą nad zasadami dostępu i historią inspekcji. Odwołanie do usługi Key Vault można użyć zamiast parametry połączenia lub klucza w ustawieniach aplikacji. Aby dowiedzieć się więcej, zobacz Use Key Vault references for App Service and Azure Functions (Używanie odwołań usługi Key Vault dla usług App Service i Azure Functions).

Połączenia oparte na tożsamościach

Tożsamości mogą być używane zamiast wpisów tajnych do nawiązywania połączenia z niektórymi zasobami. Jest to zaleta braku konieczności zarządzania wpisem tajnym i zapewnia bardziej szczegółową kontrolę dostępu i inspekcję.

Podczas pisania kodu, który tworzy połączenie z usługami platformy Azure obsługującymi uwierzytelnianie firmy Microsoft Entra, możesz użyć tożsamości zamiast wpisu tajnego lub parametry połączenia. Szczegółowe informacje dotyczące obu metod połączenia zostały omówione w dokumentacji dla każdej usługi.

Niektóre rozszerzenia powiązań usługi Azure Functions można skonfigurować do uzyskiwania dostępu do usług przy użyciu połączeń opartych na tożsamościach. Aby uzyskać więcej informacji, zobacz Konfigurowanie połączenia opartego na tożsamościach.

Ustawianie przydziałów użycia

Rozważ ustawienie limitu przydziału użycia dla funkcji uruchomionych w planie Zużycie. Po ustawieniu dziennego limitu GB na łączne wykonywanie funkcji w aplikacji funkcji jest zatrzymywane po osiągnięciu limitu. Może to potencjalnie pomóc w ograniczeniu ryzyka złośliwego kodu wykonującego funkcje. Aby dowiedzieć się, jak oszacować zużycie funkcji, zobacz Szacowanie kosztów planu zużycia.

Sprawdzanie poprawności danych

Wyzwalacze i powiązania używane przez funkcje nie zapewniają dodatkowej weryfikacji danych. Kod musi zweryfikować wszystkie dane odebrane z wyzwalacza lub powiązania wejściowego. Jeśli naruszono bezpieczeństwo usługi nadrzędnej, nie chcesz, aby nie walidowane dane wejściowe przepływały przez funkcje. Jeśli na przykład funkcja przechowuje dane z kolejki usługi Azure Storage w relacyjnej bazie danych, musisz zweryfikować dane i parametryzować polecenia, aby uniknąć ataków polegających na wstrzyknięciu kodu SQL.

Nie zakładaj, że dane przychodzące do funkcji zostały już zweryfikowane lub oczyszczone. Warto również sprawdzić, czy dane zapisywane w powiązaniach wyjściowych są prawidłowe.

Obsługa błędów

Chociaż wydaje się to podstawowe, ważne jest, aby napisać dobrą obsługę błędów w funkcjach. Błędy nieobsługiwane są bąbelkowe do hosta i są obsługiwane przez środowisko uruchomieniowe. Różne powiązania obsługują przetwarzanie błędów inaczej. Aby dowiedzieć się więcej, zobacz Obsługa błędów usługi Azure Functions.

Wyłączanie zdalnego debugowania

Upewnij się, że debugowanie zdalne jest wyłączone, z wyjątkiem przypadków aktywnego debugowania funkcji. Zdalne debugowanie można wyłączyć na karcie Ustawienia ogólne konfiguracji aplikacji funkcji w portalu.

Ograniczanie dostępu za pomocą mechanizmu CORS

Usługa Azure Functions obsługuje współużytkowanie zasobów między źródłami (CORS). Mechanizm CORS jest skonfigurowany w portalu i za pośrednictwem interfejsu wiersza polecenia platformy Azure. Lista dozwolonych źródeł mechanizmu CORS ma zastosowanie na poziomie aplikacji funkcji. Po włączeniu Access-Control-Allow-Origin mechanizmu CORS odpowiedzi zawierają nagłówek. Aby uzyskać więcej informacji, zobacz temat Współużytkowanie zasobów między źródłami.

Nie używaj symboli wieloznacznych na liście dozwolonych źródeł. Zamiast tego wyświetl listę określonych domen, z których oczekujesz żądania.

Przechowywanie zaszyfrowanych danych

Usługa Azure Storage szyfruje wszystkie dane na koncie magazynu magazynowanych. Więcej informacji można znaleźć w sekcji Szyfrowanie danych przechowywanych w usłudze Azure Storage.

Domyślnie dane są szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft. Aby uzyskać dodatkową kontrolę nad kluczami szyfrowania, można podać klucze zarządzane przez klienta do użycia do szyfrowania obiektów blob i danych plików. Te klucze muszą znajdować się w usłudze Azure Key Vault dla usługi Functions, aby móc uzyskać dostęp do konta magazynu. Aby dowiedzieć się więcej, zobacz Szyfrowanie magazynowane przy użyciu kluczy zarządzanych przez klienta.

Aplikacja funkcji często zależy od dodatkowych zasobów, więc część zabezpieczania aplikacji zabezpiecza te zasoby zewnętrzne. Co najmniej większość aplikacji funkcji obejmuje zależność od usługi Application Insights i usługi Azure Storage. Zapoznaj się z punktem odniesienia zabezpieczeń platformy Azure dla usługi Azure Monitor i punktem odniesienia zabezpieczeń platformy Azure dla usługi Storage , aby uzyskać wskazówki dotyczące zabezpieczania tych zasobów.

Ważne

Konto magazynu służy do przechowywania ważnych danych aplikacji, czasami w tym samego kodu aplikacji. Należy ograniczyć dostęp z innych aplikacji i użytkowników do konta magazynu.

Należy również zapoznać się ze wskazówkami dotyczącymi wszelkich typów zasobów, od których zależy logika aplikacji, zarówno jako wyzwalacze, jak i powiązania oraz kod funkcji.

Bezpieczne wdrożenie

Integracja narzędzi usługi Azure Functions ułatwia publikowanie kodu projektu funkcji lokalnych na platformie Azure. Ważne jest, aby zrozumieć, jak działa wdrożenie podczas rozważania zabezpieczeń topologii usługi Azure Functions.

Poświadczenia wdrożenia

Wdrożenia usługi App Service wymagają zestawu poświadczeń wdrożenia. Te poświadczenia wdrożenia są używane do zabezpieczania wdrożeń aplikacji funkcji. Poświadczenia wdrożenia są zarządzane przez platformę usługi App Service i są szyfrowane w spoczynku.

Istnieją dwa rodzaje poświadczeń wdrożenia:

  • Poświadczenia na poziomie użytkownika: jeden zestaw poświadczeń dla całego konta platformy Azure. Może służyć do wdrażania w usłudze App Service dla dowolnej aplikacji w dowolnej subskrypcji, do którego konto platformy Azure ma uprawnienia dostępu. Jest to domyślny zestaw wyświetlany w graficznym interfejsie użytkownika portalu (na przykład przegląd i właściwości strony zasobu aplikacji). Gdy użytkownik otrzymuje dostęp do aplikacji za pośrednictwem kontroli dostępu opartej na rolach (RBAC) lub współadmin uprawnień, ten użytkownik może używać własnych poświadczeń na poziomie użytkownika do momentu odwołania dostępu. Nie udostępniaj tych poświadczeń innym użytkownikom platformy Azure.

  • Poświadczenia na poziomie aplikacji: jeden zestaw poświadczeń dla każdej aplikacji. Może służyć tylko do wdrażania w tej aplikacji. Poświadczenia dla każdej aplikacji są generowane automatycznie podczas tworzenia aplikacji. Nie można ich skonfigurować ręcznie, ale można je zresetować w dowolnym momencie. Aby użytkownik mógł uzyskać dostęp do poświadczeń na poziomie aplikacji za pośrednictwem (RBAC), musi być współautorem lub wyższym użytkownikiem w aplikacji (w tym wbudowaną rolą Współautor witryny internetowej). Czytelnicy nie mogą publikować i nie mogą uzyskiwać dostępu do tych poświadczeń.

Obecnie usługa Key Vault nie jest obsługiwana w przypadku poświadczeń wdrożenia. Aby dowiedzieć się więcej na temat zarządzania poświadczeniami wdrożenia, zobacz Konfigurowanie poświadczeń wdrożenia dla usługi aplikacja systemu Azure.

Wyłączanie protokołu FTP

Domyślnie każda aplikacja funkcji ma włączony punkt końcowy FTP. Dostęp do punktu końcowego FTP jest uzyskiwany przy użyciu poświadczeń wdrożenia.

Protokół FTP nie jest zalecany do wdrażania kodu funkcji. Wdrożenia FTP są ręczne i wymagają synchronizacji wyzwalaczy. Aby dowiedzieć się więcej, zobacz Wdrażanie protokołu FTP.

Jeśli nie planujesz korzystania z protokołu FTP, należy go wyłączyć w portalu. Jeśli zdecydujesz się używać protokołu FTP, należy wymusić usługę FTPS.

Zabezpieczanie punktu końcowego scm

Każda aplikacja funkcji ma odpowiedni scm punkt końcowy usługi, który jest używany przez usługę Advanced Tools (Kudu) na potrzeby wdrożeń i innych rozszerzeń witryny usługi App Service. Punkt scm końcowy aplikacji funkcji jest zawsze adresem URL w formularzu https://<FUNCTION_APP_NAME>.scm.azurewebsites.net. W przypadku używania izolacji sieciowej do zabezpieczania funkcji należy również uwzględnić ten punkt końcowy.

Mając oddzielny scm punkt końcowy, można kontrolować wdrożenia i inne funkcje narzędzi zaawansowanych dla aplikacji funkcji, które są izolowane lub uruchomione w sieci wirtualnej. Punkt scm końcowy obsługuje zarówno uwierzytelnianie podstawowe (przy użyciu poświadczeń wdrożenia), jak i logowanie jednokrotne przy użyciu poświadczeń witryny Azure Portal. Aby dowiedzieć się więcej, zobacz Uzyskiwanie dostępu do usługi Kudu.

Ciągła weryfikacja zabezpieczeń

Ponieważ zabezpieczenia muszą być brane pod uwagę na każdym etapie procesu programowania, warto również zaimplementować weryfikacje zabezpieczeń w środowisku ciągłego wdrażania. Jest to czasami nazywane DevSecOps. Korzystanie z usługi Azure DevOps dla potoku wdrażania umożliwia integrację walidacji z procesem wdrażania. Aby uzyskać więcej informacji, zobacz Dowiedz się, jak dodać ciągłą walidację zabezpieczeń do potoku ciągłej integracji/ciągłego wdrażania.

Bezpieczeństwo sieci

Ograniczenie dostępu sieciowego do aplikacji funkcji umożliwia kontrolowanie, kto może uzyskiwać dostęp do punktów końcowych funkcji. Usługa Functions korzysta z infrastruktury usługi App Service, aby umożliwić funkcjom dostęp do zasobów bez używania adresów routingu internetowego lub ograniczenia dostępu do Internetu do punktu końcowego funkcji. Aby dowiedzieć się więcej na temat tych opcji sieciowych, zobacz Opcje sieci usługi Azure Functions.

Ustawianie ograniczeń dostępu

Ograniczenia dostępu umożliwiają definiowanie list reguł zezwalania/odmowy w celu kontrolowania ruchu do aplikacji. Reguły są oceniane w kolejności priorytetu. Jeśli nie zdefiniowano żadnych reguł, aplikacja będzie akceptować ruch z dowolnego adresu. Aby dowiedzieć się więcej, zobacz aplikacja systemu Azure Ograniczenia dostępu do usługi.

Zabezpieczanie konta magazynu

Podczas tworzenia aplikacji funkcji należy utworzyć lub połączyć się z kontem usługi Azure Storage ogólnego przeznaczenia, które obsługuje usługę Blob, Queue i Table Storage. Możesz zastąpić to konto magazynu jednym zabezpieczonym przez sieć wirtualną z dostępem włączonym przez punkty końcowe usługi lub prywatne punkty końcowe. Aby uzyskać więcej informacji, zobacz Ograniczanie konta magazynu do sieci wirtualnej.

Wdrażanie aplikacji funkcji w sieci wirtualnej

Prywatny punkt końcowy platformy Azure to interfejs sieciowy, który nawiązuje prywatne i bezpieczne połączenie z usługą obsługiwaną przez usługę Azure Private Link. Prywatny punkt końcowy używa prywatnego adresu IP z Twojej sieci wirtualnej, skutecznie przenosząc usługę do sieci wirtualnej.

Możesz użyć prywatnego punktu końcowego dla funkcji hostowanych w planach Flex Consumption, Elastic Premium i Dedicated (App Service).

Jeśli chcesz wykonywać wywołania do prywatnych punktów końcowych, upewnij się, że wyszukiwania DNS są rozpoznawane jako prywatny punkt końcowy. To zachowanie można wymusić na jeden z następujących sposobów:

  • Integracja ze strefami prywatnymi usługi Azure DNS. Jeśli sieć wirtualna nie ma niestandardowego serwera DNS, odbywa się to automatycznie.
  • Zarządzaj prywatnym punktem końcowym na serwerze DNS używanym przez aplikację. Aby zarządzać prywatnym punktem końcowym, musisz znać adres punktu końcowego i użyć rekordu A, aby odwołać się do punktu końcowego, do którego próbujesz uzyskać dostęp.
  • Skonfiguruj własny serwer DNS, aby przekazywać dalej do stref prywatnych usługi Azure DNS.

Aby dowiedzieć się więcej, zobacz Używanie prywatnych punktów końcowych dla usługi Web Apps.

Wdrażanie aplikacji funkcji w izolacji

aplikacja systemu Azure Service Environment zapewnia dedykowane środowisko hostingu, w którym można uruchamiać funkcje. Te środowiska umożliwiają skonfigurowanie pojedynczej bramy frontonu, której można użyć do uwierzytelniania wszystkich żądań przychodzących. Aby uzyskać więcej informacji, zobacz Konfigurowanie zapory aplikacji internetowej (WAF) dla środowiska App Service Environment.

Korzystanie z usługi bramy

Usługi bramy, takie jak aplikacja systemu Azure Gateway i Azure Front Door, umożliwiają skonfigurowanie zapory aplikacji internetowej (WAF). Reguły zapory aplikacji internetowej służą do monitorowania lub blokowania wykrytych ataków, które zapewniają dodatkową warstwę ochrony funkcji. Aby skonfigurować zaporę aplikacji internetowej, aplikacja funkcji musi być uruchomiona w środowisku ASE lub przy użyciu prywatnych punktów końcowych (wersja zapoznawcza). Aby dowiedzieć się więcej, zobacz Using Private Endpoints (Korzystanie z prywatnych punktów końcowych).

Następne kroki