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äkerhetsprinciperna behöver känna till och ha minsta behörighet för att säkerställa att klienterna bara kan utföra den begränsade uppsättning åtgärder som beviljas 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:
- Tillåt åtkomst från specifika IP-adresser
- Tillåt åtkomst från specifika virtuella nätverk (tjänstslutpunkter)
- Tillåt å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. 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 integrerar Functions med ett virtuellt nätverk och aktiverar vnetRouteAllEnabled
tvingas all utgående trafik från funktionsappen via det virtuella nätverket. Detta är särskilt viktigt för scenarier där du vill skydda din funktionsapp genom att se till att all trafik, inklusive trafik till Azure-tjänster, går genom ditt virtuella nätverk för kontroll och kontroll. 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 plan (App Service) eller en App Service Environment (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.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudförfattare:
- David Barkol | Huvudlösningsspecialist GBB
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:
- Auktorisera åtkomst med Microsoft Entra-ID
- Auktorisera åtkomst med en signatur för delad åtkomst i Azure Event Hubs
- Konfigurera en identitetsbaserad resurs
Relaterad resurs
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.