Skydda Azure Functions med Event Hubs
När du konfigurerar åtkomst till resurser i Azure bör du tillämpa en mer fullständig kontroll över behörigheterna för resurser. Åtkomsten till dessa resurser bör baseras på säkerhetsprinciper för behov och minsta behörighet för att säkerställa att klienterna bara kan utföra den begränsade uppsättningen åtgärder som tilldelats dem.
Auktorisera åtkomst till Event Hubs
Auktorisering av åtkomst Azure Event Hubs resurser kan göras med hjälp av följande säkerhetskonstruktioner:
Azure Active Directory: Azure Active Directory (Azure AD) ger rollbaserad åtkomstkontroll (RBAC) för detaljerad kontroll över en klients åtkomst till Event Hubs resurser. Baserat på roller och behörigheter som beviljas auktoriserar Azure AD 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 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 innehåller rättigheten Hantera både skicka och lyssna. Vi rekommenderar att en funktionsapp endast beviljas en kombination av behörigheterna Skicka och Lyssna, baserat på de åtgärder som de utför.
Använd inte standardinställningenHantera regel: Undvik att använda standardprincipregeln med namnet RootManageSharedAccessKey om det inte behövs av funktionsappen, vilket bör vara ett ovanligt scenario. En annan varning för den här standardregeln är att den skapas på namnområdesnivå och ger behörighet till alla underliggande händelsehubbbar.
Granska principomfång 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 Azure AD 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änster, inklusive Event Hubs. Identitetsbaserade anslutningar har stöd för både utlösar- och utdatabindningstillägg och måste använda tillägget Event Hubs 5.x och senare för support.
Nätverk
Som standard är Event Hubs 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åtkomst till Event Hubs namnområden:
- Tillåta åtkomst från specifika IP-adresser
- Tillåt åtkomst från specifika virtuella nätverk (tjänstslutpunkter)
- Tillåta åtkomst via privata slutpunkter
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. Om ingen IP-adress eller regel för virtuellt nätverk har angetts är namnområdet annars 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ändelsehubbb, 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 ställer in Functions så att de fungerar med en privat slutpunktsaktiverad resurs måste du ange WEBSITE_VNET_ROUTE_ALL programinställningen till 1 . Om du vill låsa funktionsappen fullständigt måste du även 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 plan (App Service) 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 en virtuell nätverksbegränsad händelsehubb stöd för virtuella nätverksutlösare, vilket även kallas körningsskalningsövervakning. Övervakning av körningsskalning kan konfigureras via Azure Portal, Azure CLI eller andra distributionslösningar. Övervakning av körningsskalning är inte tillgängligt när funktionen körs i en dedikerad plan (App Service) eller en ASE.
Om du vill använda övervakning av körningsskalning med Event Hubs måste du använda version 4.1.0 eller senare av tillägget Microsoft.Azure.WebJobs.Extensions.EventHubs.
Nästa steg
Innan du fortsätter bör du granska de här relaterade artiklarna:
- Ge åtkomst med Azure Active Directory
- Auktorisera åtkomst med en signatur för delad åtkomst i Azure Event Hubs
- Konfigurera en identitetsbaserad resurs
Relaterade resurser
- Övervakning av serverlös händelsebearbetning ger vägledning om övervakning av serverlösa händelsedrivna arkitekturer.
- Serverlös händelsebearbetning är en referensarkitektur som beskriver en typisk arkitektur av den här typen, med kodexempel och diskussion om viktiga överväganden.
- Avbatchning och filtrering i serverlös händelsebearbetning med Event Hubs beskriver i detalj hur dessa delar av referensarkitekturen fungerar.