Restrizioni di accesso al Servizio app di Azure
Le restrizioni di accesso nel 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 del servizio app ha anche la possibilità di aggiungere endpoint privati all'app, che è un altro punto di ingresso all'app. Le restrizioni di accesso non si applicano al traffico in ingresso attraverso un endpoint privato. Per tutte le app ospitate nel servizio app, il punto di ingresso predefinito è disponibile pubblicamente. L'unica eccezione è che le app ospitate nell'ambiente del servizio app ILB in cui il punto di ingresso predefinito è interno alla rete virtuale.
Funzionamento
Quando il traffico raggiunge il servizio app, valuta innanzitutto se il traffico proviene da un endpoint privato o proviene dall'endpoint predefinito. Se il traffico viene inviato attraverso un endpoint privato, viene inviato direttamente al sito senza alcuna restrizione. 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 sono elencate quando vengono restituite dall'API di Azure Resource Manager e nel portale di Azure prima dell'ordinamento. È inoltre possibile specificare il comportamento nel caso in cui non venga soddisfatta alcuna regola. Nelle sezioni seguenti vengono fornite informazioni dettagliate.
Accesso all'app
L'accesso alle app consente di configurare se l'accesso è disponibile tramite l'endpoint (pubblico) predefinito. 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 è impostata (la proprietà è null
), il comportamento predefinito consiste nell'abilitare l'accesso a meno che non esista un endpoint privato che modifichi il comportamento per disabilitare l'accesso. Nel portale di Azure, quando la proprietà non è impostata, anche il pulsante di opzione non viene impostato e quindi si usa il comportamento predefinito.
Nell'API di Azure Resource Manager la proprietà che controlla l'accesso alle app viene chiamata publicNetworkAccess
. Per l'ambiente del servizio app con bilanciamento del carico interno (ILB), 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; consente invece l'accesso dal punto di ingresso predefinito, che corrisponde all'indirizzo IP interno dell'ambiente del servizio app. Se si disabilita l'accesso alle app in un ambiente del servizio app con ILB, è possibile accedere solo alle app tramite endpoint privati aggiunti alle singole app.
Nota
Per i siti Linux, le modifiche apportate al trigger di proprietà publicNetworkAccess
vengono riavviate dall'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.
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 deve consentire tutti gli accessi, ma se esistono una o più regole, cambia implicitamente per negare tutti gli accessi. È possibile configurare esplicitamente questo comportamento per consentire o negare l'accesso indipendentemente dalle regole definite.
Regole di restrizione dell'accesso basate 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 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 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 nelle app che usano SSL basato su IP (indirizzo assegnato dall'app).
Per altre informazioni sulla configurazione degli endpoint di servizio con l'app, vedere Restrizioni di accesso al servizio app di Azure.
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 di servizio
I Tag di servizio di Azure sono set ben definiti di indirizzi IP per i servizi di Azure. I tag di servizio raggruppano gli intervalli IP usati in vari servizi di Azure e spesso vengono anche limitati a aree specifiche. Questo tipo di regola consente di filtrare traffico in ingresso da specifici servizi di Azure.
Per un elenco completo dei tag e altre informazioni, visitare il collegamento ai tag di 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. È possibile usare regole multi-origine se si dispone di più di 512 intervalli IP. È anche possibile usare regole multi-origine se si desiderano 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 le regole a origine singola, ma con ogni intervallo separato da virgole.
Non è possibile creare queste regole nel portale, ma è possibile modificare un tag di servizio esistente o una regola basata su IP e aggiungere altre origini alla regola.
Filtro di intestazione HTTP per le regole di restrizione dell'accesso al sito
Per qualsiasi regola, indipendentemente dal tipo, è possibile aggiungere il filtro dell'intestazione HTTP. I filtri di 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 indirizzi IP validi.
- X-Forwarded-Host. Intestazione Standard per identificare l'host originale richiesto dal client. Accetta qualsiasi stringa fino a 64 caratteri di lunghezza.
- 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 fino a 64 caratteri di lunghezza.
- 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 fino a 64 caratteri di lunghezza.
Alcuni casi d'uso per il filtro dell'intestazione 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 di servizio e una restrizione dell'intestazione X-Azure-FDID
Registrazione diagnostica
Il servizio app può inviare varie categorie di registrazione a Monitoraggio di Azure. Una di queste categorie è denominata IPSecurity Audit logs
e rappresenta le attività nelle restrizioni di accesso. Tutte le richieste che corrispondono a una regola (eccetto quelle non corrispondenti), sia consentite 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 non corrispondente per consentire tutto il traffico senza corrispondenza.
Limitare l'accesso al sito Strumenti avanzati
Il sito Strumenti avanzati, noto anche come scm o kudu, ha una raccolta di regole individuali 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 Strumenti. Ad esempio, non è possibile consentire in modo selettivo l'accesso solo alla console di gestione dei processi Web nel sito Strumenti avanzati.
Eseguire la distribuzione tramite un endpoint privato
È possibile che un sito sia accessibile pubblicamente, ma il sistema di distribuzione si trovi 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 di 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 l'azione delle regole senza corrispondenza per impostare nega sia per il sito Strumenti principale 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 servizio AzureFrontDoor.Backend
. Usando una regola di restrizione del tag del servizio, è possibile limitare il traffico solo a quello che ha origine 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 si richiedono questi dati, è necessario consentire l'indirizzo IP del servizio app nelle restrizioni.