Vai al contenuto

Proteggere Azure Function con Event Grid

Scopri come configurare Azure Function e Event Grid per garantire protezione e connettività nel cloud.

Proteggere le API sensibili nel cloud: il caso di Azure Function

Nel panorama del cloud computing, la salvaguardia delle API sensibili da accessi non autorizzati e minacce di sicurezza è cruciale. Azure Function App dispone di strumenti quali la Restrizione di Accesso e la funzionalità Private Endpoint, concepiti per proteggere le Function App da richieste in entrata non autorizzate.

Un caso specifico riguarda l’implementazione di un trigger di Event Grid su Azure Function App abilitato tramite Private Endpoint. La finalità di tale configurazione è quella di attivare una Function di Azure in risposta a cambiamenti in un file di Blob Storage, notificati attraverso Event Grid. Tuttavia, questo setup può portare all’insorgere di un problema di Ip Forbidden (403), ossia il blocco dell’IP da parte di Azure Function.

Analisi della problematica IP Forbidden (403) del trigger function di Event Grid

È emerso che quando un Private Endpoint è abilitato in una Function App, si può verificare l’errore di IP Forbidden da parte del Front End per gli IP di Event Grid. Questo è dovuto al fatto che Event Grid, in quel contesto, non può gestire il traffico in uscita tramite una rete virtuale (VNet), una limitazione nota che impedisce la ricezione di eventi attraverso un indirizzo IP privato. Di conseguenza, si bloccano gli IP di Event Grid, rendendo necessarie delle contromisure.

Strategie per assicurare il funzionamento del trigger function di Event Grid

Esistono almeno due soluzioni per ovviare alla problematica. La prima strategia consiste nell’abilitare la Restrizione di Accesso nella Function App, permettendo il traffico dal tag di servizio di Event Grid (AzureEventGrid). La seconda opzione prevede l’abilitazione del Private Endpoint nella Function App e la configurazione dei componenti intermedi tra Event Grid e la Function App.

Applicando queste soluzioni, il traffico viene reso sicuro in ogni sua fase:

  • Dal Grid di Eventi al componente intermedio, usando l’identità gestita (Managed Identity), garantendo un traffico sicuro che rimane entro la rete interna di Microsoft.
  • Dal componente intermedio alla Function App, utilizzando il Private Link Service per assicurarsi che il traffico rimanga nel perimetro della rete virtuale.

Come configurare il flusso di eventi da Event Grid al componente intermedio?

L’approccio tipico include la configurazione di un topic di Event Grid con una Managed Identity assegnata, seguita dalla configurazione di un abbonamento a eventi con una coda o un topic di Service Bus come destinazione, usando questa Managed Identity. Inoltre, è necessario aggiungere la Managed Identity al ruolo Azure Service Bus Data Sender su Service Bus e abilitare le impostazioni di bypass del firewall per i servizi Microsoft affidabili.