Beveiliging Azure Functions met Event Hubs

Wanneer u de toegang tot resources in Azure configureert, moet u een fijnheidsbeheer toepassen op machtigingen voor resources. Toegang tot deze resources moet worden gebaseerd op de beveiligingsprincipes voor de noodzaak en de minste bevoegdheden om ervoor te zorgen dat clients alleen de beperkte set acties kunnen uitvoeren die aan hen zijn toegewezen.

Toegang tot Event Hubs

Toegang tot Azure Event Hubs resources kan worden uitgevoerd met behulp van de volgende beveiligings constructies:

  • Azure Active Directory: Azure Active Directory (Azure AD) biedt op rollen gebaseerd toegangsbeheer (RBAC) voor gedetailleerde controle over de toegang van een client tot Event Hubs resources. Op basis van de verleende rollen en machtigingen autoreert Azure AD aanvragen met behulp van een OAuth 2.0-toegangsteken.

  • Shared Access Signature: Een Shared Access Signature (SAS) biedt de mogelijkheid om uw Event Hubs te beveiligen op basis van autorisatieregels. U definieert autorisatiebeleid door een of meer beleidsregels te selecteren,zoals de mogelijkheid om berichten te verzenden, naar berichten te luisteren en de entiteiten in de naamruimte te beheren.

Shared Access Signature-overwegingen

Wanneer u een Shared Access Signature gebruikt met Azure Functions en Event Hubs, moeten de volgende overwegingen worden gecontroleerd:

  • Vermijd het beheerrecht: Naast de mogelijkheid om de entiteiten in een Event Hubs beheren, bevat het recht Beheren zowel de rechten Verzenden als Luisteren. Idealiter moet aan een functie-app alleen een combinatie van de rechten Verzenden en Luisteren worden verleend op basis van de acties die ze uitvoeren.

  • Gebruik niet de standaardregel Beheren: vermijd het gebruik van de standaardbeleidsregel met de naam RootManageSharedAccessKey, tenzij deze nodig is voor uw functie-app, wat een ongebruikelijk scenario zou moeten zijn. Een ander nadeel van deze standaardregel is dat deze wordt gemaakt op naamruimteniveau en machtigingen verleent aan alle onderliggende Event Hubs.

  • Controleer beleidsbereiken voor gedeelde toegang: Beleid voor gedeelde toegang kan worden gemaakt op naamruimteniveau en per Event Hub. Overweeg gedetailleerde toegangsbeleidsregels te maken die voor elke client zijn afgestemd om het bereik en de machtigingen te beperken.

Beheerde identiteit

Een Active Directory-identiteit kan worden toegewezen aan een beheerde resource in Azure, zoals een functie-app of web-app. Zodra een identiteit is toegewezen, beschikt deze over de mogelijkheden om te werken met andere resources die gebruikmaken van Azure AD voor autorisatie, net als bij een service-principal.

Functie-apps kunnen worden toegewezen aan een beheerde identiteit en profiteren van op identiteit gebaseerde verbindingen voor een subset van services, waaronder Event Hubs. Op identiteit gebaseerde verbindingen bieden ondersteuning voor zowel de trigger- als uitvoerbindingsextensies en moeten de extensie Event Hubs 5.x en hoger gebruiken voor ondersteuning.

Netwerk

Standaard zijn Event Hubs van internet toegankelijk, zolang de aanvraag maar wordt geleverd met geldige verificatie en autorisatie. Er zijn drie opties voor het beperken van netwerktoegang tot Event Hubs naamruimten:

In alle gevallen is het belangrijk om te weten dat er ten minste één IP-firewallregel of virtuele netwerkregel voor de naamruimte is opgegeven. Als er geen IP-adres of virtuele netwerkregel is opgegeven, is de naamruimte toegankelijk via het openbare internet (met behulp van de toegangssleutel).

Azure Functions kunnen worden geconfigureerd voor het verbruiken van gebeurtenissen van of het publiceren van gebeurtenissen naar Event Hubs, die zijn ingesteld met service-eindpunten of privé-eindpunten. Er is regionale integratie van virtuele netwerken nodig om uw functie-app verbinding te laten maken met een Event Hub met behulp van een service-eindpunt of een privé-eindpunt.

Bij het instellen van Functions om te werken met een resource met een privé-eindpunt, moet u de WEBSITE_VNET_ROUTE_ALL toepassingsinstelling instellen op 1 . Als u uw functie-app volledig wilt vergrendelen, moet u ook uw opslagaccount beperken.

Als u gebeurtenissen in een virtuele netwerkomgeving wilt activeren (verbruiken), moet de functie-app worden gehost in een Premium-plan, een toegewezen abonnement (App Service) of een App Service Environment (ASE).

Daarnaast is voor het uitvoeren in een Azure Functions Premium-abonnement en het verbruik van gebeurtenissen van een event hub met beperkte virtuele netwerken ondersteuning voor triggers van virtuele netwerken vereist, ook wel bewaking van runtimeschaal genoemd. Bewaking van runtimeschaal kan worden geconfigureerd via de Azure Portal, Azure CLI of andere implementatieoplossingen. Bewaking van runtimeschaal is niet beschikbaar wanneer de functie wordt uitgevoerd in een Dedicated-abonnement (App Service) of een ASE.

Als u runtimeschaalbewaking wilt gebruiken met Event Hubs, moet u versie 4.1.0 of hoger van de extensie Microsoft.Azure.WebJobs.Extensions.EventHubs gebruiken.

Volgende stappen

Voordat u doorgaat, kunt u deze gerelateerde artikelen lezen:

  • Bewaking van serverloze gebeurtenisverwerking biedt richtlijnen voor het bewaken van serverloze gebeurtenisgestuurde architecturen.
  • Serverloze gebeurtenisverwerking is een referentiearchitectuur waarin een typische architectuur van dit type wordt beschreven, met codevoorbeelden en een bespreking van belangrijke overwegingen.
  • In Batchverwerking en filteren in serverloze gebeurtenisverwerking met Event Hubs wordt gedetailleerder beschreven hoe deze gedeelten van de referentiearchitectuur werken.