Delen via


Azure Functions beveiligen met Event Hubs

Wanneer u de toegang tot resources in Azure configureert, moet u nauwkeurige controle toepassen over machtigingen voor resources. Toegang tot deze resources moet zijn gebaseerd op de noodzaak om beveiligingsprincipes met minimale bevoegdheden te kennen en ervoor te zorgen dat clients alleen de beperkte set acties kunnen uitvoeren die aan hen zijn verleend.

Toegang tot Event Hubs autoriseren

U kunt de toegang tot Azure Event Hubs-resources autoriseren met behulp van de volgende beveiligingsconstructies:

  • Microsoft Entra-id: Microsoft Entra-id biedt op rollen gebaseerd toegangsbeheer (RBAC) voor gedetailleerde controle over de toegang van een client tot Event Hubs-resources. Op basis van rollen en machtigingen die zijn verleend, autoriseert Microsoft Entra ID aanvragen met behulp van een OAuth 2.0-toegangstoken.

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

Overwegingen voor handtekeningen voor gedeelde toegang

Wanneer u een handtekening voor gedeelde toegang gebruikt met Azure Functions en Event Hubs, moeten de volgende overwegingen worden beoordeeld:

  • Vermijd het recht Beheren: naast het kunnen beheren van de entiteiten in een Event Hubs-naamruimte, bevat het recht Beheren zowel de rechten Voor verzenden als luisteren. In het ideale geval mag aan een functie-app alleen een combinatie van de rechten voor verzenden en luisteren worden verleend op basis van de acties die ze uitvoeren.

  • Gebruik de standaardregel Beheren niet: vermijd het gebruik van de standaardbeleidsregel RootManageSharedAccessKey , tenzij dit nodig is voor uw functie-app. Dit moet een ongewoon scenario zijn. Een andere kanttekening bij deze standaardregel is dat deze wordt gemaakt op het niveau van de naamruimte en machtigingen verleent aan alle onderliggende Event Hubs.

  • Bereik van beleid voor gedeelde toegang bekijken: Beleid voor gedeelde toegang kan worden gemaakt op naamruimteniveau en per Event Hub. Overweeg gedetailleerde toegangsbeleidsregels te maken die zijn afgestemd op elke client om hun bereik en 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 Microsoft Entra-id voor autorisatie, net als 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 extensies voor trigger- als uitvoerbinding en moeten de Event Hubs-extensie 5.x en hoger gebruiken voor ondersteuning.

Netwerk

Event Hubs-naamruimten zijn standaard toegankelijk via internet, zolang de aanvraag 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 ten minste één IP-firewallregel of virtuele netwerkregel voor de naamruimte is opgegeven. Als er anders geen IP-adres of regel voor virtueel netwerk is opgegeven, is de naamruimte toegankelijk via het openbare internet (met behulp van de toegangssleutel).

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

Wanneer u Functions integreert met een virtueel netwerk en inschakelt vnetRouteAllEnabled, wordt al het uitgaande verkeer van de functie-app geforceerd via het virtuele netwerk. Dit is met name belangrijk voor scenario's waarbij u uw functie-app wilt beveiligen door ervoor te zorgen dat al het verkeer, inclusief verkeer naar Azure-services, uw virtuele netwerk doorloopt voor inspectie en controle. Als u uw functie-app volledig wilt vergrendelen, moet u ook uw opslagaccount beperken.

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

Bovendien vereist het uitvoeren in een Azure Functions Premium-abonnement en het verbruiken van gebeurtenissen van een beperkt virtueel netwerk waarvoor event Hub is beperkt, ondersteuning voor virtuele netwerken, ook wel runtimeschaalbewaking genoemd. Bewaking van runtimeschaal kan worden geconfigureerd via Azure Portal, Azure CLI of andere implementatieoplossingen. Bewaking van runtimeschaal is niet beschikbaar wanneer de functie wordt uitgevoerd in een Toegewezen (App Service)-plan of een ASE.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Voordat u verdergaat, kunt u de volgende gerelateerde artikelen bekijken: