restrizioni di accesso al servizio app Azure

Le restrizioni di accesso in servizio app sono equivalenti a un firewall che consente di bloccare e filtrare il traffico. Le restrizioni di accesso si applicano solo all'accesso in ingresso . La maggior parte dei piani tariffari servizio app ha anche la possibilità di aggiungere endpoint privati all'app, ovvero un altro punto di ingresso per l'app. Le restrizioni di accesso non si applicano al traffico in ingresso attraverso un endpoint privato. Per tutte le app ospitate in servizio app, il punto di ingresso predefinito è disponibile pubblicamente. L'unica eccezione è che le app ospitate nel servizio di bilanciamento del carico interno ambiente del servizio app in cui il punto di ingresso predefinito è interno alla rete virtuale.

Funzionamento

Quando il traffico raggiunge servizio app, valuta innanzitutto se il traffico proviene da un endpoint privato o passa attraverso l'endpoint predefinito. Se il traffico viene inviato tramite un endpoint privato, invia direttamente al sito senza restrizioni. Le restrizioni agli endpoint privati vengono configurate usando i gruppi di sicurezza di rete.

Se si invia il traffico attraverso l'endpoint predefinito (spesso un endpoint pubblico), il traffico viene prima valutato a livello di accesso dell'app. Qui è possibile abilitare o disabilitare l'accesso. Se si abilita l'accesso alle app, il traffico viene valutato a livello di accesso al sito. Per qualsiasi app, si dispone sia del sito principale che del sito degli strumenti avanzati (noto anche come sito scm o kudu).

È possibile configurare un set di regole di restrizione di accesso per ogni sito. Le regole di restrizione di accesso vengono valutate in ordine di priorità. Se alcune regole hanno la stessa priorità, vengono valutate nell'ordine in cui vengono elencate quando vengono restituite dall'API di Azure Resource Manager e in portale di Azure prima dell'ordinamento. È anche possibile specificare il comportamento se non viene trovata alcuna corrispondenza con regole. Nelle sezioni seguenti vengono fornite informazioni dettagliate.

Diagram of access restrictions high-level flow.

Accesso all'app

L'accesso alle app consente di configurare se l'accesso è disponibile tramite l'endpoint predefinito (pubblico). Questo comportamento viene configurato in modo che sia Disabled o Enabled. Quando l'accesso è abilitato, è possibile aggiungere regole di restrizione dell'accesso al sito per controllare l'accesso da reti virtuali e indirizzi IP selezionati. Se l'impostazione non è configurata, il comportamento predefinito consiste nell'abilitare l'accesso a meno che non esista un endpoint privato che modifica il comportamento per disabilitare l'accesso.

Screenshot of app access option in Azure portal.

Nell'API di Azure Resource Manager l'accesso alle app è denominato publicNetworkAccess. Per ambiente del servizio app il bilanciamento del carico interno, il punto di ingresso predefinito per le app è sempre interno alla rete virtuale. L'abilitazione dell'accesso alle app (publicNetworkAccess) non concede l'accesso pubblico diretto alle app, ma consente l'accesso dal punto di ingresso predefinito, che corrisponde all'indirizzo IP interno del ambiente del servizio app. Se disabiliti l'accesso alle app in un ambiente del servizio app il bilanciamento del carico interno, puoi accedere solo alle app tramite endpoint privati aggiunti alle singole app.

Accesso al sito

Le restrizioni di accesso al sito consentono di filtrare le richieste in ingresso. Le restrizioni di accesso al sito consentono di creare un elenco di regole di autorizzazione e negazione valutate in ordine di priorità. È simile alla funzionalità del gruppo di sicurezza di rete (NSG) nella rete di Azure.

Screenshot of site access options in Azure portal.

La restrizione dell'accesso al sito include diversi tipi di regole che è possibile applicare:

Regola non corrispondente

È possibile configurare il comportamento quando non viene trovata alcuna corrispondenza tra regole (azione predefinita). Si tratta di una regola speciale che viene sempre visualizzata come ultima regola della raccolta regole. Se l'impostazione non è configurata, il comportamento della regola non corrispondente dipende dalle regole configurate. Se non sono presenti regole, il comportamento della regola non corrispondente consiste nell'consentire tutto l'accesso, ma se una o più regole esistono, cambia in modo implicito per negare tutti gli accessi. È possibile configurare in modo esplicito questo comportamento per consentire o negare l'accesso indipendentemente dalle regole definite.

Regole di restrizione dell'accesso basato su IP

La funzionalità restrizioni di accesso basate su IP consente di limitare gli indirizzi IP che possono essere usati per raggiungere l'app. IPv4 e IPv6 sono entrambi supportati. Alcuni casi d'uso per questa funzionalità:

  • Limitare l'accesso all'app da un set di indirizzi ben definiti.
  • Limitare l'accesso al traffico proveniente da un servizio di bilanciamento del carico esterno o da altre appliance di rete con indirizzi IP in uscita noti.

Per informazioni su come abilitare questa funzionalità, vedere Configurazione delle restrizioni di accesso.

Nota

Le regole di restrizione dell'accesso basato su IP gestiscono solo gli intervalli di indirizzi di rete virtuale quando l'app si trova in un ambiente del servizio app. Se l'app si trova nel servizio multi-tenant, è necessario usare gli endpoint di servizio per limitare il traffico per selezionare le subnet nella rete virtuale.

Regole di restrizione dell'accesso basate sugli endpoint di servizio

Gli endpoint di servizio consentono di bloccare l'accesso in ingresso all'app in modo che l'indirizzo di origine debba provenire da un set di subnet selezionato. Questa funzionalità funziona insieme alle restrizioni di accesso IP. Gli endpoint di servizio non sono compatibili con il debug remoto. Se si vuole usare il debug remoto con l'app, il client non può trovarsi in una subnet con endpoint di servizio abilitati. Il processo per l'impostazione degli endpoint di servizio è simile al processo per l'impostazione delle restrizioni di accesso IP. È possibile creare un elenco di regole di accesso consentite/negate che includono indirizzi pubblici e subnet nelle reti virtuali.

Nota

Le regole di restrizione dell'accesso basate sugli endpoint di servizio non sono supportate nelle app con endpoint privato configurato o app che usano SSL basato su IP (indirizzo assegnato dall'app).

Per altre informazioni sulla configurazione degli endpoint di servizio con l'app, vedere app Azure Restrizioni di accesso al servizio.

Qualsiasi origine dell'endpoint di servizio

Per i test o in scenari specifici, è possibile consentire il traffico da qualsiasi subnet abilitata per l'endpoint di servizio. A tale scopo, è possibile definire una regola basata su IP con il testo "AnyVnets" anziché un intervallo IP. Non è possibile creare queste regole nel portale, ma è possibile modificare una regola basata su IP esistente e sostituire l'indirizzo IP con la stringa "AnyVnets".

Regole di restrizione dell'accesso basate sui tag del servizio

I tag del servizio di Azure sono set ben definiti di indirizzi IP per i servizi di Azure. I tag del servizio raggruppano gli intervalli IP usati in vari servizi di Azure ed è spesso anche ulteriormente limitato a aree specifiche. Questo tipo di regola consente di filtrare il traffico in ingresso da servizi di Azure specifici.

Per un elenco completo dei tag e altre informazioni, visitare il collegamento ai tag del servizio.

Per informazioni su come abilitare questa funzionalità, vedere Configurazione delle restrizioni di accesso.

Regole multi-origine

Le regole multi-origine consentono di combinare fino a otto intervalli IP oppure otto tag del servizio in una singola regola. Se sono presenti più di 512 intervalli IP, è possibile usare regole multi-origine. È anche possibile usare regole multi-origine se si desidera creare regole logiche in cui più intervalli IP vengono combinati con un singolo filtro di intestazione HTTP.

Le regole multi-origine vengono definite allo stesso modo in cui si definiscono regole a origine singola, ma con ogni intervallo separato da virgole.

Non è possibile creare queste regole nel portale, ma è possibile modificare un tag del servizio esistente o una regola basata su IP e aggiungere altre origini alla regola.

Filtro intestazione HTTP per le regole di restrizione dell'accesso al sito

Per qualsiasi regola, indipendentemente dal tipo, è possibile aggiungere filtri di intestazione HTTP. I filtri intestazione HTTP consentono di esaminare ulteriormente la richiesta in ingresso e filtrare in base a valori di intestazione HTTP specifici. Ogni intestazione può avere fino a otto valori per ogni regola. Di seguito sono elencate le intestazioni HTTP supportate:

  • X-Forwarded-for. Intestazione standard per identificare l'indirizzo IP di origine di un client che si connette tramite un server proxy. Accetta valori CIDR validi.
  • X-Forwarded-Host. Intestazione standard per identificare l'host originale richiesto dal client. Accetta qualsiasi stringa con lunghezza massima di 64 caratteri.
  • X-Azure-FDID. Intestazione personalizzata per identificare l'istanza del proxy inverso. Frontdoor di Azure invia un GUID che identifica l'istanza, ma può essere usato anche per i proxy non Microsoft per identificare l'istanza specifica. Accetta qualsiasi stringa con lunghezza massima di 64 caratteri.
  • X-FD-HealthProbe. Intestazione personalizzata per identificare il probe di integrità del proxy inverso. Frontdoor di Azure invia "1" per identificare in modo univoco una richiesta di probe di integrità. L'intestazione può essere usata anche per i proxy non Microsoft per identificare i probe di integrità. Accetta qualsiasi stringa con lunghezza massima di 64 caratteri.

Alcuni casi d'uso per il filtro delle intestazioni HTTP sono:

  • Limitare l'accesso al traffico dai server proxy che inoltrano il nome host
  • Limitare l'accesso a un'istanza specifica di Frontdoor di Azure con una regola di tag del servizio e una restrizione dell'intestazione X-Azure-FDID

Registrazione diagnostica

servizio app può inviare varie categorie di registrazione a Monitoraggio di Azure. Una di queste categorie viene chiamata IPSecurity Audit logs e rappresenta le attività nelle restrizioni di accesso. Tutte le richieste che corrispondono a una regola (ad eccezione della regola senza corrispondenza), sia consenti che negate, vengono registrate e possono essere usate per convalidare la configurazione delle restrizioni di accesso. La funzionalità di registrazione è anche uno strumento potente per la risoluzione dei problemi di configurazione delle regole.

Casi d'uso avanzati

La combinazione delle funzionalità precedenti consente di risolvere alcuni casi d'uso specifici descritti nelle sezioni seguenti.

Bloccare un singolo indirizzo IP

Se si desidera negare o bloccare uno o più indirizzi IP specifici, è possibile aggiungere gli indirizzi IP come regole di negazione e configurare la regola senza corrispondenza per consentire tutto il traffico senza corrispondenza.

Limitare l'accesso al sito degli strumenti avanzati

Il sito degli strumenti avanzati, noto anche come scm o kudu, include una raccolta di regole singola che è possibile configurare. È anche possibile configurare la regola non corrispondente per questo sito. Un'impostazione consente di usare le regole configurate per il sito principale. Non è possibile consentire in modo selettivo l'accesso a determinate funzionalità avanzate del sito degli strumenti. Ad esempio, non è possibile consentire in modo selettivo l'accesso solo alla console di gestione dei processi Web nel sito degli strumenti avanzati.

Eseguire la distribuzione tramite un endpoint privato

Potrebbe essere disponibile un sito accessibile pubblicamente, ma il sistema di distribuzione si trova in una rete virtuale. È possibile mantenere privato il traffico di distribuzione aggiungendo un endpoint privato. È quindi necessario assicurarsi che l'accesso alle app pubbliche sia abilitato. Infine, è necessario impostare la regola senza corrispondenza per il sito degli strumenti avanzati su nega, che blocca tutto il traffico pubblico verso tale endpoint.

Consenti l'accesso dei partner esterni al sito protetto da endpoint privato

In questo scenario si accede al sito tramite un endpoint privato e si esegue la distribuzione tramite un endpoint privato. È possibile invitare temporaneamente un partner esterno a testare il sito. A tale scopo, è possibile abilitare l'accesso alle app pubbliche. Aggiungere una regola (basata su IP) per identificare il client del partner. Configurare un'azione delle regole senza corrispondenza per negare sia per il sito degli strumenti principali che per quello avanzato.

Limitare l'accesso a un'istanza specifica di Frontdoor di Azure

Il traffico da Frontdoor di Azure all'applicazione ha origine da un set noto di intervalli IP definiti nel tag del AzureFrontDoor.Backend servizio. Usando una regola di restrizione dei tag di servizio, è possibile limitare il traffico solo da Frontdoor di Azure. Per garantire che il traffico provenga solo dall'istanza specifica, è necessario filtrare ulteriormente le richieste in ingresso in base all'intestazione HTTP univoca inviata da Frontdoor di Azure denominata X-Azure-FDID. È possibile trovare l'ID frontdoor nel portale.

Passaggi successivi

Nota

Le regole di restrizione dell'accesso che bloccano l'accesso pubblico al sito possono anche bloccare i servizi, ad esempio lo streaming dei log. Se necessario, sarà necessario consentire l'indirizzo IP dell'servizio app nelle restrizioni.