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 Azure App Service 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 usługi Azure 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 Twojej aplikacji są zabezpieczone od zasobów Azure innych klientów.
  • Wystąpienia maszyn wirtualnych i oprogramowanie uruchomieniowe są regularnie aktualizowane w celu rozwiązania nowo wykrytych luk w zabezpieczeniach.
  • Komunikacja tajnych danych (takich jak parametry połączenia) między aplikacją a innymi zasobami platformy Azure (takimi jak usługa Azure SQL Database) pozostaje na platformie Azure i nie wychodzi poza żadne granice 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 zdalnego zarządzania, takimi jak program Azure PowerShell, interfejs wiersza polecenia platformy Azure, zestawy AZURE SDK i 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), atakami typu man-in-the-middle 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 w Chmurze

Usługa Defender for Cloud 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ń usługi Defender for Cloud za dodatkową opłatą. Aby uzyskać więcej informacji, zobacz Defender for App 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 uzyskać więcej informacji, 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 uzyskać więcej informacji, 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 uzyskać więcej informacji, 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 TLS w celu zapewnienia bezpiecznego połączenia, które jest zarówno zaszyfrowane, jak i uwierzytelnione. 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 HTTP jest ustawiony na anonymous, żądania muszą zawierać klucz dostępu. 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ć punkty końcowe zarządzania w trasie /admin, które można wykorzystać do operacji, takich jak uzyskiwanie informacji o stanie hosta i przeprowadzanie wywołań testowych. W przypadku ujawnienia, żądania do tych punktów końcowych muszą zawierać klucz główny aplikacji. Operacje administracyjne są dostępne także za pośrednictwem interfejsu API Azure Resource ManagerMicrosoft.Web/sites, który oferuje Azure RBAC. Możesz wyłączyć punkty końcowe /admin , ustawiając właściwość witryny functionsRuntimeAdminIsolationEnabled 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 niż Microsoft. Ta strategia umożliwia zaimplementowanie niestandardowych reguł autoryzacji dla funkcji i pracę z informacjami o użytkowniku z poziomu kodu funkcji. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie i autoryzacja w usłudze Azure App Service 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 uzyskać więcej informacji, zobacz Api Management authentication policies (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 uzyskać więcej informacji, zobacz Ograniczenia adresów IP.

Uprawnienia

Podobnie jak w przypadku dowolnej aplikacji lub usługi, celem jest uruchomienie aplikacji funkcyjnej z możliwie najniższymi 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 funkcjonalnej. Rola Współtwórcy jest wymagana do wykonywania większości zadań na poziomie aplikacji funkcjonalnej. Potrzebujesz również roli Współtwórcy wraz z uprawnieniem Monitorowanie - Czytelnik, aby móc wyświetlać dane dzienników w usłudze Application Insights. Tylko Właściciel może usunąć aplikację funkcjonalną.

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 powiązanym 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 z identyfikatora Entra firmy Microsoft umożliwia aplikacji łatwy dostęp do innych zasobów chronionych przez firmę Microsoft, takich jak Azure Key Vault. Platforma Azure zarządza identyfikacją, więc nie trzeba aprowizować ani wymieniać żadnych sekretów. 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.

Do aplikacji można przyznać dwa typy 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 jest samodzielnym zasobem Azure, który można przypisać do aplikacji. Aplikacja może mieć wiele tożsamości przypisanych przez użytkownika. Jedną tożsamość przypisaną przez użytkownika można przypisać do wielu zasobów platformy Azure, takich jak dwie aplikacje usługi App Service.

Zarządzane tożsamości mogą być używane zamiast sekretów do połączeń z niektórym wyzwalaczami i integracjami. Zobacz Połączenia oparte na tożsamościach.

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

Ograniczanie dostępu 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.

Kuszące jest użycie znaku wieloznacznego, który umożliwia wszystkim witrynom dostęp do punktu końcowego. Takie podejście polega na pokonaniu celu mechanizmu CORS, który ma pomóc w zapobieganiu atakom skryptowym obejmującym wiele witryn. 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 nawiązać połączenie z różnymi usługami i zasobami potrzebnymi do uruchomienia kodu, aplikacje funkcyjne muszą mieć dostęp do tajnych informacji, 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 sekretów 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. Takie podejście udostępnia te poświadczenia zarówno kodowi funkcji, jak i różnym powiązaniom używanym przez funkcję. Nazwa ustawienia aplikacji (klucza) służy do pobierania rzeczywistej wartości, która jest tajemnicą.

Na przykład każda aplikacja funkcjonalna wymaga skojarzonego konta storage, 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 przechowywaniem tajemnic, ustawienia aplikacji powinny zamiast tego odwoływać się do tajemnic w usłudze 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 Key Vault

Chociaż ustawienia aplikacji są wystarczające dla większości funkcji, możesz chcieć udostępnić te same sekrety w wielu usługach. W takim przypadku nadmiarowe przechowywanie informacji tajnych prowadzi do zwiększenia potencjalnych podatności. 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 danymi poufnymi, z pełną kontrolą nad zasadami dostępu i historią audytu. Można użyć odwołania do Key Vault zamiast ciągu połączenia lub klucza w ustawieniach aplikacji. Aby uzyskać więcej informacji, 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ści

Tożsamości mogą być używane zamiast tajemnic do nawiązywania połączenia z niektórymi zasobami. Zaletą tego podejścia jest brak konieczności zarządzania tajemnicą, zapewniając bardziej szczegółową kontrolę dostępu oraz 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 parametrów 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 użycia dla funkcji uruchamianych w planie konsumpcji. Po ustawieniu dziennego limitu GB-sekund na łączne wykonywanie funkcji w swojej aplikacji, wykonywanie funkcji jest zatrzymywane po osiągnięciu tego limitu. Takie podejście może 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.

Walidacja 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.

Zarządzanie błędami

Chociaż wydaje się to podstawowe, ważne jest, aby napisać dobrą obsługę błędów w funkcjach. Nieobsługiwane błędy przenoszą się do hosta, a środowisko uruchomieniowe obsługuje te błędy. Różne powiązania obsługują przetwarzanie błędów inaczej. Aby uzyskać więcej informacji, zobacz Obsługa błędów usługi Azure Functions.

Wyłączanie zdalnego debugowania

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

Ograniczanie dostępu 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ł pochodzenia. Zamiast tego wyświetl listę określonych domen, z których oczekujesz żądania.

Przechowywanie zaszyfrowanych danych

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

Domyślnie dane są szyfrowane kluczami zarządzanymi przez Microsoft. Aby uzyskać większą 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ą być umieszczone w usłudze Azure Key Vault, aby funkcje mogły uzyskać dostęp do konta magazynu. Aby dowiedzieć się więcej, zobacz Szyfrowanie danych aplikacji w spoczynku przy użyciu kluczy zarządzanych przez klienta.

Aplikacja funkcji często zależy od innych zasobów, więc zabezpieczając aplikację, należy również zabezpieczyć te zewnętrzne zasoby. Większość aplikacji funkcjonalnych obejmuje zależność od Application Insights i 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 pamięci służy do przechowywania ważnych danych aplikacji, czasami w tym także kodu aplikacji. Należy ograniczyć dostęp z innych aplikacji i użytkowników do konta przechowywania.

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ń funkcji aplikacji. Platforma App Service zarządza poświadczeniami wdrożenia. Poświadczenia są szyfrowane w stanie spoczynku.

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

  • Poświadczenia na poziomie użytkownika: jeden zestaw poświadczeń dla całego konta platformy Azure. Te poświadczenia mogą służyć do wdrażania w usłudze App Service dla dowolnej aplikacji w dowolnej subskrypcji, do których konto platformy Azure ma uprawnienia dostępu. To ustawienie poświadczeń jest ustawieniem domyślnym, który jest wyświetlany w środowisku graficznym portalu, na przykład w obszarze Przegląd i Właściwości w okienku zasobów aplikacji. Gdy użytkownik otrzymuje dostęp do aplikacji za pośrednictwem kontroli dostępu opartej na rolach (RBAC) lub uprawnień współadministratora, może używać 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. Te poświadczenia mogą 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 udzielić użytkownikowi dostępu do poświadczeń na poziomie aplikacji za pośrednictwem kontroli dostępu opartej na rolach, użytkownik musi mieć uprawnienia współautora lub wyższe 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 nie ma wsparcia dla usługi Key Vault w kontekście 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 Azure App Service.

Wyłączanie protokołu FTP

Domyślnie każda aplikacja funkcjonalna 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 uzyskać więcej informacji, 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.

Zabezpiecz punkt końcowy 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 formie 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 funkcjonalności zaawansowanych narzędzi 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 uzyskać więcej informacji, 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. Takie podejście jest 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 Zabezpieczanie usługi Azure Pipelines.

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 używa 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 żadna reguła nie jest zdefiniowana, aplikacja akceptuje ruch z dowolnego adresu. Aby uzyskać więcej informacji, zobacz ograniczenia dostępu usługi Azure App Service.

Zabezpiecz konto magazynowe

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 chronionym przez sieć wirtualną, z dostępem zapewnionym przez punkty końcowe usług lub punkty końcowe prywatne. Aby uzyskać więcej informacji, zobacz Ograniczanie konta magazynu do sieci wirtualnej.

Wdrażaj aplikację funkcjonalną do sieci wirtualnej

Prywatny punkt końcowy platformy Azure to interfejs sieciowy, który łączy Cię prywatnie i bezpiecznie 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.

Wdróż aplikację funkcjonalną w izolacji

Środowisko Azure App Service Environment udostępnia dedykowane środowisko hostingu, w którym można uruchamiać funkcje. Te środowiska umożliwiają skonfigurowanie jednej bramy typu front-end, której można użyć do uwierzytelniania wszystkich żądań przychodzących. Aby uzyskać więcej informacji, zobacz Integracja środowiska ILB App Service z usługą Azure Application Gateway.

Użyj usługi bramy

Usługi bramy, takie jak Azure Application Gateway i Azure Front Door, pozwalają na skonfigurowanie zapory aplikacji internetowej (WAF). Reguły WAF służą do monitorowania lub blokowania wykrytych ataków, co zapewnia dodatkową warstwę ochrony dla twoich funkcji. Aby skonfigurować zaporę aplikacji internetowej (WAF), aplikacja funkcji musi być uruchomiona w wydzielonym środowisku aplikacji (ASE) lub przy użyciu prywatnych punktów końcowych (wersja wstępna). Aby uzyskać więcej informacji, zobacz Using private endpoints (Używanie prywatnych punktów końcowych).

Dalsze kroki