Share via


Skydda Azure Functions med Event Hubs

När du konfigurerar åtkomst till resurser i Azure bör du använda detaljerad kontroll över behörigheter för resurser. Åtkomsten till dessa resurser bör baseras på säkerhetsprinciper som behöver känna till och minsta möjliga behörighet för att säkerställa att klienterna bara kan utföra den begränsade uppsättning åtgärder som tilldelats dem.

Auktorisera åtkomst till Event Hubs

Du kan auktorisera åtkomst till Azure Event Hubs-resurser med hjälp av följande säkerhetskonstruktioner:

  • Microsoft Entra-ID: Microsoft Entra ID tillhandahåller rollbaserad åtkomstkontroll (RBAC) för detaljerad kontroll över en klients åtkomst till Event Hubs-resurser. Baserat på tilldelade roller och behörigheter auktoriserar Microsoft Entra ID begäranden med hjälp av en OAuth 2.0-åtkomsttoken.

  • Signatur för delad åtkomst: En signatur för delad åtkomst (SAS) ger möjlighet att skydda Event Hubs-resurser baserat på auktoriseringsregler. Du definierar auktoriseringsprinciper genom att välja en eller flera principregler, till exempel möjligheten att skicka meddelanden, lyssna på meddelanden och hantera entiteterna i namnområdet.

Överväganden för signatur för delad åtkomst

När du använder en signatur för delad åtkomst med Azure Functions och Event Hubs bör följande överväganden granskas:

  • Undvik rättigheten Hantera: Förutom att kunna hantera entiteterna i ett Event Hubs-namnområde innehåller rättigheten Hantera både sändnings- och lyssningsrättigheter. Helst bör en funktionsapp endast beviljas en kombination av rättigheterna Skicka och lyssna baserat på de åtgärder som de utför.

  • Använd inte standardregeln Hantera: Undvik att använda standardprincipregeln med namnet RootManageSharedAccessKey om den inte behövs av funktionsappen, vilket bör vara ett ovanligt scenario. En annan varning till den här standardregeln är att den skapas på namnområdesnivå och ger behörigheter till alla underliggande händelsehubbar.

  • Granska omfång för principer för delad åtkomst: Principer för delad åtkomst kan skapas på namnområdesnivå och per händelsehubb. Överväg att skapa detaljerade åtkomstprinciper som är skräddarsydda för varje klient för att begränsa deras intervall och behörigheter.

Hanterad identitet

En Active Directory-identitet kan tilldelas till en hanterad resurs i Azure, till exempel en funktionsapp eller webbapp. När en identitet har tilldelats har den funktioner för att arbeta med andra resurser som använder Microsoft Entra-ID för auktorisering, ungefär som ett huvudnamn för tjänsten.

Funktionsappar kan tilldelas en hanterad identitet och dra nytta av identitetsbaserade anslutningar för en delmängd av tjänsterna, inklusive Event Hubs. Identitetsbaserade anslutningar ger stöd för både tillägg för utlösare och utdatabindning och måste använda Event Hubs-tillägget 5.x och senare för support.

Nätverk

Som standard är Event Hubs-namnområden tillgängliga från Internet, så länge begäran levereras med giltig autentisering och auktorisering. Det finns tre alternativ för att begränsa nätverksåtkomsten till Event Hubs-namnområden:

I samtliga fall är det viktigt att observera att minst en IP-brandväggsregel eller en regel för virtuellt nätverk för namnområdet har angetts. Annars, om ingen IP-adress eller regel för virtuellt nätverk har angetts, är namnområdet tillgängligt via det offentliga Internet (med hjälp av åtkomstnyckeln).

Azure Functions kan konfigureras för att använda händelser från eller publicera händelser till händelsehubbar, som konfigureras med antingen tjänstslutpunkter eller privata slutpunkter. Regional integrering av virtuella nätverk krävs för att funktionsappen ska kunna ansluta till en händelsehubb med hjälp av en tjänstslutpunkt eller en privat slutpunkt.

När du konfigurerar Functions för att fungera med en privat slutpunktsaktiverad resurs måste du ange programinställningen WEBSITE_VNET_ROUTE_ALL till 1. Om du vill låsa funktionsappen helt måste du också begränsa ditt lagringskonto.

För att utlösa (använda) händelser i en virtuell nätverksmiljö måste funktionsappen finnas i en Premium-plan, en dedikerad (App Service) plan eller en App Service-miljön (ASE).

Dessutom kräver körning i en Azure Functions Premium-plan och användning av händelser från ett virtuellt nätverk begränsad Händelsehubb stöd för utlösare för virtuella nätverk, även kallat körningsskalningsövervakning. Körningsskalningsövervakning kan konfigureras via Azure-portalen, Azure CLI eller andra distributionslösningar. Körningsskalningsövervakning är inte tillgängligt när funktionen körs i en dedikerad plan (App Service) eller en ASE.

Om du vill använda körningsskalningsövervakning med Event Hubs måste du använda version 4.1.0 eller senare av tillägget Microsoft.Azure.WebJobs.Extensions.EventHubs.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg

Innan du fortsätter bör du överväga att granska dessa relaterade artiklar: