Proteggere il traffico tra app per la logica Standard e reti virtuali di Azure con gli endpoint privati

Si applica: App per la logica di Azure (Standard)

Per garantire comunicazioni sicure e private tra il flusso di lavoro in un'app per la logica Standard e una rete virtuale di Azure, è possibile configurare endpoint privati per il traffico in ingresso e usare l'integrazione della rete virtuale per il traffico in uscita.

Un endpoint privato è un'interfaccia di rete che si connette privatamente e in modo sicuro a un servizio basato su un collegamento privato di Azure. Il servizio può essere un servizio di Azure, ad esempio Archiviazione di Azure, Azure Cosmos DB, SQL o un servizio di collegamento privato. L'endpoint privato usa un indirizzo IP privato della rete virtuale per introdurre in modo efficace il servizio nella rete virtuale.

Questo articolo illustra come configurare l'accesso tramite endpoint privati per il traffico in ingresso e l'integrazione della rete virtuale per il traffico in uscita.

Per altre informazioni, vedere la documentazione seguente:

Prerequisiti

  • Installare o usare uno strumento che può inviare richieste HTTP per testare la soluzione, ad esempio:

    Attenzione

    Per gli scenari in cui sono presenti dati sensibili, ad esempio credenziali, segreti, token di accesso, chiavi API e altre informazioni simili, assicurarsi di usare uno strumento che protegge i dati con le funzionalità di sicurezza necessarie, funziona offline o in locale, non sincronizza i dati nel cloud e non richiede l'accesso a un account online. In questo modo si riduce il rischio di esporre i dati sensibili al pubblico.

Configurare il traffico in ingresso tramite endpoint privati

Per proteggere il traffico in ingresso al flusso di lavoro, completare questi passaggi generali:

  1. Avviare il flusso di lavoro con un trigger predefinito che può ricevere e gestire le richieste in ingresso, ad esempio il trigger di Richiesta o il trigger HTTP e Webhook. Questo trigger configura il flusso di lavoro con un endpoint chiamabile.

  2. Aggiungere un endpoint privato per la risorsa app per la logica alla rete virtuale.

  3. Effettuare chiamate di test per controllare l'accesso all'endpoint. Per chiamare il flusso di lavoro dell'app per la logica dopo aver configurato questo endpoint, è necessario essere connessi alla rete virtuale.

Considerazioni sul traffico in ingresso tramite endpoint privati

  • Se si accede dall'esterno della rete virtuale, la visualizzazione di monitoraggio non può accedere agli input e agli output da trigger e azioni.

  • I trigger webhook dell'API gestita (trigger di push) e le azioni non funzioneranno perché vengono eseguiti nel cloud pubblico e non eseguire chiamate nella rete privata. Per ricevere le chiamate, richiedono un endpoint pubblico. Ad esempio, tali trigger includono il trigger Dataverse e il trigger di Griglia di eventi.

  • Se si usa il trigger di Office 365 Outlook, il flusso di lavoro viene attivato solo ogni ora.

  • La distribuzione da Visual Studio Code o dall'interfaccia della riga di comando di Azure funziona solo dall'interno della rete virtuale. È possibile usare il Centro distribuzione per collegare l'app per la logica a un repository GitHub. È quindi possibile usare l'infrastruttura di Azure per compilare e distribuire il codice.

    Per consentire il funzionamento dell'integrazione di GitHub, rimuovere l'impostazione WEBSITE_RUN_FROM_PACKAGE dall'app per la logica o impostare il valore su 0.

  • L'abilitazione del collegamento privato non influisce sul traffico in uscita, che passa comunque attraverso l'infrastruttura del servizio app.

Prerequisiti per il traffico in ingresso attraverso endpoint privati

Oltre alla configurazione della rete virtuale nei prerequisiti generali, è necessario disporre di un flusso di lavoro dell'app per la logica Standard nuovo o esistente che inizia con un trigger predefinito in grado di ricevere richieste.

Ad esempio, il trigger di Richiesta crea un endpoint nel flusso di lavoro che può ricevere e gestire le richieste in ingresso da altri chiamanti, inclusi i flussi di lavoro. Questo endpoint fornisce un URL che è possibile usare per chiamare e attivare il flusso di lavoro. Per questo esempio, i passaggi continuano con il trigger di Richiesta.

Per altre informazioni, vedere Ricevere e rispondere alle richieste HTTP in ingresso usando App per la logica di Azure.

Creare il flusso di lavoro

  1. Se non è già stato fatto, creare un'app per la logica basata su tenant singolo e un flusso di lavoro vuoto.

  2. Dopo l'apertura della finestra di progettazione, aggiungere il trigger di Richiesta come primo passaggio del flusso di lavoro.

  3. In base ai requisiti dello scenario, aggiungere altre azioni da eseguire nel flusso di lavoro.

  4. Al termine, salvare il flusso di lavoro.

Per altre informazioni, vedere Creare flussi di lavoro di app per la logica a tenant singolo in App per la logica di Azure.

Copiare l'URL dell'endpoint

  1. Nel menu del flusso di lavoro selezionare Panoramica.

  2. Nella pagina Panoramica copiare e salvare l'URL flusso di lavoro che sarà necessario più avanti.

  3. Per testare l'URL e attivare il flusso di lavoro, inviare una richiesta HTTP all'URL usando lo strumento di richiesta HTTP e le relative istruzioni.

Configurare la connessione all'endpoint privato

  1. Nel menu della risorsa App per la logica, in Impostazioni selezionare Rete.

  2. Nella pagina Rete selezionare il collegamento accanto a Endpoint privati nella sezione Configurazione traffico in ingresso.

  3. Nella pagina Connessioni endpoint privato selezionare Aggiungi>Rapida o Avanzata.

    Per altre informazioni sull'opzione Avanzata, vedere Creare un endpoint privato.

  4. Nel riquadro Aggiungi endpoint privato specificare le informazioni richieste sull'endpoint.

    Per altre informazioni, vedere Proprietà dell'endpoint privato.

  5. Una volta che Azure effettua il provisioning dell'endpoint privato, provare nuovamente a chiamare l'URL del flusso di lavoro.

    Questa volta viene visualizzato un errore 403 Forbidden previsto, che indica che l'endpoint privato è configurato e funziona correttamente.

  6. Per assicurarsi che la connessione funzioni correttamente, creare una macchina virtuale nella stessa rete virtuale contenente l'endpoint privato e provare a chiamare il flusso di lavoro dell'app per la logica.

Configurare il traffico in uscita tramite l'integrazione della rete virtuale

Per proteggere il traffico in uscita dall'app per la logica, è possibile integrare l'app per la logica con una rete virtuale. Prima di tutto, creare e testare un flusso di lavoro di esempio. È quindi possibile configurare l'integrazione della rete virtuale.

Considerazioni sul traffico in uscita tramite l'integrazione della rete virtuale

  • La configurazione dell'integrazione della rete virtuale influisce solo sul traffico in uscita. Per proteggere il traffico in ingresso, che continua a usare l'endpoint condiviso del servizio app, vedere Configurare il traffico in ingresso tramite endpoint privati.

  • Poiché le dimensioni della subnet non possono essere modificate dopo l'assegnazione, usare una subnet sufficientemente grande per supportare la capacità che l'app potrebbe raggiungere. Per evitare problemi con la capacità della subnet, usare una subnet /26 con 64 indirizzi. Se si crea la subnet per l'integrazione della rete virtuale con il portale di Azure, è necessario usare /27 come dimensione minima della subnet.

  • Per il funzionamento del runtime di App per la logica di Azure, è necessario avere una connessione ininterrotta all'archiviazione back-end. Se l'archiviazione back-end è esposta alla rete virtuale tramite un endpoint privato, assicurarsi che le porte seguenti siano aperte:

    Porta di origine Porta di destinazione Source (Sorgente) Destination Protocollo Scopo
    * 443 Subnet integrata con un'app per la logica Standard Account di archiviazione TCP Account di archiviazione
    * 445 Subnet integrata con un'app per la logica Standard Account di archiviazione TCP Condivisione file SMB (Server Message Block)
  • Per il funzionamento dei connettori gestiti ospitati da Azure, è necessario avere una connessione ininterrotta al servizio API gestito. Con l'integrazione della rete virtuale, assicurarsi che nessun firewall o criterio di sicurezza di rete blocchi queste connessioni. Se la rete virtuale usa un gruppo di sicurezza di rete, una tabella di route definita dall'utente o un firewall, assicurarsi che la rete virtuale consenta le connessioni in uscita per tutti gli indirizzi IP dei connettori gestiti nell'area corrispondente. In caso contrario, i connettori gestiti da Azure non funzioneranno.

Per altre informazioni, vedere la documentazione seguente:

Creare e testare il flusso di lavoro

  1. Se non è già stato fatto, nel portale di Azure creare un'app per la logica basata su tenant singolo e un flusso di lavoro vuoto.

  2. Dopo l'apertura della finestra di progettazione, aggiungere il trigger di Richiesta come primo passaggio del flusso di lavoro.

  3. Aggiungere un'azione HTTP per chiamare un servizio interno non disponibile tramite Internet ed eseguito con un indirizzo IP privato, ad esempio 10.0.1.3.

  4. Al termine, salvare il flusso di lavoro.

  5. Dalla finestra di progettazione eseguire manualmente il flusso di lavoro.

    L'azione HTTP ha esito negativo, in base al comportamento previsto, perché il flusso di lavoro viene eseguito nel cloud e non può accedere al servizio interno.

Configurare l'integrazione della rete virtuale

  1. Nel portale di Azure, nel menu della risorsa app per la logica selezionare Rete in Impostazioni.

  2. Nella pagina Rete selezionare il collegamento accanto a Integrazione rete virtuale nella sezione Configurazione traffico in uscita.

  3. Nella pagina Integrazione rete virtuale selezionare Aggiungi integrazione rete virtuale.

  4. Nel riquadro Aggiungi integrazione rete virtuale selezionare la sottoscrizione, la rete virtuale che si connette al servizio interno e la subnet in cui aggiungere l'app per la logica. Al termine, selezionare Connetti.

    Nella pagina Integrazione rete virtuale, per impostazione predefinita è selezionata l'impostazione Traffico Internet in uscita, che instrada tutto il traffico in uscita attraverso la rete virtuale. In questo scenario, l'impostazione dell'app denominata WEBSITE_VNET_ROUTE_ALL viene ignorata.

    Per trovare questa impostazione dell'app, nel menu della risorsa app per la logica, in Impostazioni selezionare Variabili di ambiente.

  5. Se si usa il proprio server DNS (Domain Name Server) con la rete virtuale, aggiungere l'impostazione dell'app WEBSITE_DNS_SERVER, se non esiste, e impostare il valore sull'indirizzo IP del DNS. Se si dispone di un DNS secondario, aggiungere un'altra impostazione dell'app denominata WEBSITE_DNS_ALT_SERVER e impostare il valore sull'IP del DNS secondario.

  6. Una volta che Azure effettua il provisioning dell'integrazione della rete virtuale, provare a eseguire di nuovo il flusso di lavoro.

    L'azione HTTP viene ora eseguita correttamente.

Passaggi successivi