Udostępnij za pośrednictwem


Zabezpieczanie usługi Azure Functions za pomocą usługi Event Hubs

Podczas konfigurowania dostępu do zasobów na platformie Azure należy zastosować szczegółową kontrolę nad uprawnieniami do zasobów. Dostęp do tych zasobów powinien być oparty na konieczności znajomości i najniższych uprawnień zasad zabezpieczeń, aby upewnić się, że klienci mogą wykonywać tylko ograniczony zestaw udzielonych im akcji.

Autoryzowanie dostępu do usługi Event Hubs

Autoryzowanie dostępu do zasobów usługi Azure Event Hubs można wykonać przy użyciu następujących konstrukcji zabezpieczeń:

  • Microsoft Entra ID: Identyfikator entra firmy Microsoft zapewnia kontrolę dostępu opartą na rolach (RBAC) na potrzeby szczegółowej kontroli dostępu klienta do zasobów usługi Event Hubs. Na podstawie udzielonych ról i uprawnień identyfikator Entra firmy Microsoft autoryzuje żądania przy użyciu tokenu dostępu OAuth 2.0.

  • Sygnatura dostępu współdzielonego: sygnatura dostępu współdzielonego (SAS) umożliwia ochronę zasobów usługi Event Hubs na podstawie reguł autoryzacji. Zasady autoryzacji można zdefiniować, wybierając co najmniej jedną regułę zasad, taką jak możliwość wysyłania komunikatów, nasłuchiwania komunikatów i zarządzania jednostkami w przestrzeni nazw.

Zagadnienia dotyczące sygnatury dostępu współdzielonego

W przypadku korzystania z sygnatury dostępu współdzielonego z usługami Azure Functions i Event Hubs należy zapoznać się z następującymi zagadnieniami:

  • Unikaj prawa do zarządzania: oprócz możliwości zarządzania jednostkami w przestrzeni nazw usługi Event Hubs prawo Zarządzanie obejmuje prawa do wysyłania i nasłuchiwania. W idealnym przypadku aplikacja funkcji powinna mieć tylko kombinację praw Wyślij i Nasłuchiwanie na podstawie akcji, które wykonują.

  • Nie używaj domyślnej reguły zarządzania: unikaj używania domyślnej reguły zasad o nazwie RootManageSharedAccessKey , chyba że jest to wymagane przez aplikację funkcji, co powinno być nietypowym scenariuszem. Innym zastrzeżeniem tej reguły domyślnej jest to, że jest on tworzony na poziomie przestrzeni nazw i przyznaje uprawnienia do wszystkich bazowych centrów zdarzeń.

  • Przejrzyj zakresy zasad dostępu współdzielonego: zasady dostępu współdzielonego można utworzyć na poziomie przestrzeni nazw i na centrum zdarzeń. Rozważ utworzenie szczegółowych zasad dostępu dostosowanych dla każdego klienta, aby ograniczyć ich zakres i uprawnienia.

Tożsamość zarządzana

Tożsamość usługi Active Directory można przypisać do zasobu zarządzanego na platformie Azure, takiego jak aplikacja funkcji lub aplikacja internetowa. Po przypisaniu tożsamości ma ona możliwości pracy z innymi zasobami, które używają identyfikatora Microsoft Entra do autoryzacji, podobnie jak jednostka usługi.

Aplikacje funkcji można przypisać tożsamości zarządzanej i korzystać z połączeń opartych na tożsamościach dla podzbioru usług, w tym usługi Event Hubs. Połączenia oparte na tożsamości zapewniają obsługę rozszerzeń wyzwalacza i powiązań wyjściowych oraz muszą używać rozszerzenia Event Hubs w wersji 5.x i nowszej w celu zapewnienia obsługi.

Sieć

Domyślnie przestrzenie nazw usługi Event Hubs są dostępne z Internetu, tak długo, jak żądanie jest dostarczane z prawidłowym uwierzytelnianiem i autoryzacją. Istnieją trzy opcje ograniczania dostępu sieciowego do przestrzeni nazw usługi Event Hubs:

We wszystkich przypadkach należy pamiętać, że określono co najmniej jedną regułę zapory IP lub regułę sieci wirtualnej dla przestrzeni nazw. W przeciwnym razie, jeśli nie określono żadnego adresu IP lub reguły sieci wirtualnej, przestrzeń nazw jest dostępna za pośrednictwem publicznego Internetu (przy użyciu klucza dostępu).

Usługę Azure Functions można skonfigurować do korzystania ze zdarzeń z lub publikowania zdarzeń w centrach zdarzeń, które są konfigurowane przy użyciu punktów końcowych usługi lub prywatnych punktów końcowych. Regionalna integracja sieci wirtualnej jest wymagana, aby aplikacja funkcji łączyła się z centrum zdarzeń przy użyciu punktu końcowego usługi lub prywatnego punktu końcowego.

Po zintegrowaniu usługi Functions z siecią wirtualną i włączeniu vnetRouteAllEnabledtej funkcji cały ruch wychodzący z aplikacji funkcji jest wymuszany przez sieć wirtualną. Jest to szczególnie ważne w scenariuszach, w których chcesz zabezpieczyć aplikację funkcji, zapewniając cały ruch, w tym ruch do usług platformy Azure, przechodzi przez sieć wirtualną na potrzeby inspekcji i kontroli. Jeśli chcesz w pełni zablokować aplikację funkcji, musisz również ograniczyć konto magazynu.

Aby wyzwalać (zużywać) zdarzenia w środowisku sieci wirtualnej, aplikacja funkcji musi być hostowana w planie Premium, planie usługi App Service lub środowisku App Service Environment (ASE).

Ponadto uruchomienie w planie Premium usługi Azure Functions i korzystanie ze zdarzeń z centrum zdarzeń z ograniczeniami sieci wirtualnej wymaga obsługi wyzwalacza sieci wirtualnej, nazywanego również monitorowaniem skalowania w czasie wykonywania. Monitorowanie skalowania środowiska uruchomieniowego można skonfigurować za pośrednictwem witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub innych rozwiązań wdrażania. Monitorowanie skalowania środowiska uruchomieniowego nie jest dostępne, gdy funkcja jest uruchomiona w ramach dedykowanego planu (App Service) ani środowiska ASE.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Przed kontynuowaniem rozważ przejrzenie następujących powiązanych artykułów:

  • Monitorowanie przetwarzania zdarzeń bezserwerowych zawiera wskazówki dotyczące monitorowania architektur opartych na zdarzeniach bezserwerowych.
  • Przetwarzanie zdarzeń bezserwerowych to architektura referencyjna, która szczegółowo opisuje typową architekturę tego typu, z przykładami kodu i omówieniem ważnych zagadnień.