Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Limitazione dell’accesso ad Application Load Balancer
Con Amazon puoi utilizzare Application Load Balancer sia interni che rivolti a Internet. CloudFront Puoi utilizzare Application Load Balancer interni all'interno di sottoreti private utilizzando origini VPC. CloudFront CloudFront Le origini VPC consentono di fornire contenuti da applicazioni ospitate in sottoreti VPC private senza esporli alla rete Internet pubblica. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.
Se utilizzi un Application Load Balancer connesso a Internet con CloudFront, puoi utilizzare le seguenti mitigazioni di sicurezza per impedire agli utenti di accedere direttamente a un Application Load Balancer e consentire l'accesso solo tramite. CloudFront
-
Configura CloudFront per aggiungere un'intestazione HTTP personalizzata alle richieste inviate all'Application Load Balancer.
-
Configura Application Load Balancer per inoltrare solo le richieste che contengono l'intestazione HTTP personalizzata.
-
Richiedi HTTPS per migliorare la sicurezza di questa soluzione.
CloudFront può anche aiutare a ridurre la latenza e persino ad assorbire alcuni attacchi DDoS (Distributed Denial of Service).
Se il tuo caso d'uso richiede un doppio accesso alle applicazioni Web da entrambi CloudFront e da Application Load Balancer direttamente su Internet, valuta la possibilità di suddividere le API delle applicazioni Web nel modo seguente:
API che devono essere eseguite. CloudFront In questo caso, valuta la possibilità di utilizzare un Application Load Balancer privato separato come origine.
API che richiedono l’accesso tramite Application Load Balancer. In questo caso, si CloudFront bypassa.
In alternativa, Elastic Load Balancing CloudFront può memorizzare nella cache gli oggetti e fornirli direttamente agli utenti (visualizzatori), riducendo il carico sull'Application Load Balancer per un'applicazione Web o un altro contenuto fornito da un Application Load Balancer connesso a Internet. Un bilanciatore del carico connesso a Internet ha un nome DNS risolvibile pubblicamente e instrada le richieste dei client verso le destinazioni su Internet.
Per ulteriori informazioni, consulta i seguenti argomenti. Dopo aver completato questi passaggi, gli utenti possono accedere all'Application Load Balancer solo tramite. CloudFront
Configura CloudFront per aggiungere un'intestazione HTTP personalizzata alle richieste
È possibile CloudFront configurare l'aggiunta di un'intestazione HTTP personalizzata alle richieste inviate all'origine (in questo caso, un Application Load Balancer).
Importante
Questo caso d'uso si basa sul mantenere segreti il nome dell'intestazione e il valore personalizzati. Se il nome e il valore dell'intestazione non sono segreti, altri client HTTP potrebbero potenzialmente includerli nelle richieste inviate direttamente a Application Load Balancer. Ciò può far sì che l'Application Load Balancer si comporti come se le richieste provenissero da un momento in CloudFront cui non lo erano. Per evitare ciò, mantieni segreti il nome dell'intestazione e il valore personalizzati.
Puoi configurare CloudFront l'aggiunta di un'intestazione HTTP personalizzata alle richieste di origine con la CloudFront console o CloudFormation l'API. CloudFront
- Per aggiungere un'intestazione HTTP personalizzata (console) CloudFront
-
Nella CloudFront console, usa l'impostazione Origin Custom Headers nelle impostazioni di Origin. Immetti il Nome intestazione e il relativo Valore.
Nota
In produzione, utilizza nomi e valori intestazione generati casualmente. Tratta i nomi e i valori delle intestazioni come credenziali sicure, ad esempio, nomi utente e password.
Puoi modificare l'impostazione Origin Custom Headers quando crei o modifichi un'origine per una CloudFront distribuzione esistente e quando crei una nuova distribuzione. Per ulteriori informazioni, consulta Aggiornamento di una distribuzione e Creazione di una distribuzione.
- Come aggiungere un'intestazione HTTP personalizzata (CloudFormation)
-
In un CloudFormation modello, utilizzate la
OriginCustomHeadersproprietà, come mostrato nell'esempio seguente.Nota
Il nome e il valore dell'intestazione in questo esempio sono solo per dimostrazione. In produzione, utilizza valori generati casualmente. Considera il nome e il valore dell'intestazione come credenziali protette, ad esempio un nome utente e una password.
AWSTemplateFormatVersion: '2010-09-09' Resources: TestDistribution: Type: 'AWS::CloudFront::Distribution' Properties: DistributionConfig: Origins: - DomainName: app-load-balancer.example.com Id: Example-ALB CustomOriginConfig: OriginProtocolPolicy: https-only OriginSSLProtocols: - TLSv1.2 OriginCustomHeaders: - HeaderName: X-Custom-Header HeaderValue: random-value-1234567890 Enabled: 'true' DefaultCacheBehavior: TargetOriginId: Example-ALB ViewerProtocolPolicy: allow-all CachePolicyId: 658327ea-f89d-4fab-a63d-7e88639e58f6 PriceClass: PriceClass_All ViewerCertificate: CloudFrontDefaultCertificate: 'true'Per ulteriori informazioni, vedere Origine e OriginCustomHeader proprietà nella Guida per l'AWS CloudFormation utente.
- Per aggiungere un'intestazione HTTP (CloudFront API) personalizzata
-
Nell' CloudFront API, usa l'
CustomHeadersoggetto all'internoOrigin. Per ulteriori informazioni, consulta CreateDistribution e UpdateDistribution consulta Amazon CloudFront API Reference e la documentazione del tuo SDK o di un altro client API.
Esistono alcuni nomi di intestazione che non è possibile specificare come intestazioni personalizzate di origine. Per ulteriori informazioni, consulta Intestazioni personalizzate che CloudFront non possono essere aggiunte alle richieste di origine.
Configurazione di un Application Load Balancer per inoltrare solo le richieste che contengono un’intestazione specifica
Dopo aver CloudFront configurato l'aggiunta di un'intestazione HTTP personalizzata alle richieste inviate all'Application Load Balancer (vedi la sezione precedente), puoi configurare il load balancer in modo che inoltri solo le richieste che contengono questa intestazione personalizzata. A tale scopo, aggiungere una nuova regola e modificando la regola predefinita nel listener del sistema di bilanciamento del carico.
Prerequisiti
Per utilizzare le procedure seguenti, è necessario un Application Load Balancer con almeno un listener. Se non ne hai ancora creato uno, vedere Creare un Application Load Balancer nella Guida dell'utente per Application Load Balancer.
Le procedure seguenti modificano un listener HTTPS. È possibile utilizzare lo stesso processo per modificare un listener HTTP.
Per aggiornare le regole in un listener di Application Load Balancer
-
Aggiungi una nuova regola. Usa le istruzioni di Aggiungi una regola, con le seguenti modifiche:
Aggiungi la regola al load balancer che è l'origine della tua distribuzione. CloudFront
Per Aggiungi condizione, scegli Intestazione HTTP. Specifica il nome e il valore dell'intestazione HTTP che hai aggiunto come intestazione personalizzata di origine in. CloudFront
Per Aggiungi azione, scegli Inoltra a. Scegliere il gruppo target in cui si desidera inoltrare le richieste.
-
Modifica la regola predefinita nel listener del bilanciatore del carico. Usa le istruzioni di Modifica una regola, con le seguenti modifiche:
Modifica la regola predefinita del load balancer che è l'origine della distribuzione. CloudFront
Elimina l’azione predefinita, quindi per Aggiungi azione, scegli Restituzione risposta fissa.
Per Codice risposta, immettere
403.Per Corpo risposta, immettere
Access denied.
Dopo aver completato queste fasi, il listener del bilanciatore del carico dispone di due regole. Una regola inoltra le richieste che contengono l'intestazione HTTP (richieste che provengono da). CloudFront L'altra regola invia una risposta fissa a tutte le altre richieste (richieste che non provengono da CloudFront).
Puoi verificare che la soluzione funzioni inviando una richiesta alla tua CloudFront distribuzione e una all'Application Load Balancer. La richiesta di CloudFront restituzione dell'applicazione o del contenuto Web e quella inviata direttamente all'Application Load Balancer restituiscono una 403 risposta con un messaggio di testo semplice. Access denied
(Facoltativo) Migliorare la sicurezza di questa soluzione
Per migliorare la sicurezza di questa soluzione, puoi configurare la tua CloudFront distribuzione in modo che utilizzi sempre HTTPS quando invii richieste all'Application Load Balancer. Ricorda che questa soluzione funziona solo se si mantengono segreti il nome dell'intestazione e il valore personalizzati. L'utilizzo di HTTPS può aiutare a impedire a un intercettore di scoprire il nome e il valore dell'intestazione. Si consiglia inoltre di ruotare periodicamente il nome e il valore dell'intestazione.
Usa HTTPS per le richieste di origine
CloudFront Per configurare l'utilizzo di HTTPS per le richieste di origine, imposta l'impostazione Origin Protocol Policy su Solo HTTPS. Questa impostazione è disponibile nella CloudFront console CloudFormation e nell' CloudFront API. Per ulteriori informazioni, consulta Protocollo (solo origini personalizzate).
Quanto segue si applica anche quando si configura l'utilizzo CloudFront di HTTPS per le richieste di origine:
-
È necessario configurare CloudFront per inoltrare l'
Hostintestazione all'origine con la politica di richiesta di origine. È possibile utilizzare la politica di richiesta di origine AllViewer gestita. -
Assicurati che Application Load Balancer disponga di un listener HTTPS (come illustrato nella sezione precedente). Per ulteriori informazioni, consulta la sezione relativa alla creazione di un listener HTTPS nella Guida utente per Application Load Balancer. L'utilizzo di un listener HTTPS richiede un SSL/TLS certificato che corrisponda al nome di dominio indirizzato all'Application Load Balancer.
-
SSL/TLS i certificati per CloudFront possono essere richiesti (o importati) solo
us-east-1Regione AWS in AWS Certificate Manager (ACM). CloudFront Trattandosi di un servizio globale, distribuisce automaticamente il certificato dallaus-east-1regione a tutte le regioni associate alla distribuzione. CloudFront-
Ad esempio, se disponi di un Application Load Balancer (ALB) nella
ap-southeast-2regione, devi configurare SSL/TLS i certificati sia nellaap-southeast-2regione (per utilizzare HTTPS tra CloudFront e l'origine ALB) cheus-east-1nella regione (per utilizzare HTTPS tra i visualizzatori e). CloudFront Entrambi i certificati devono corrispondere al nome di dominio che viene instradato ad Application Load Balancer. Per ulteriori informazioni, consulta Regione AWS for AWS Certificate Manager.
-
-
Se gli utenti finali (noti anche come visualizzatori o client) della tua applicazione web possono utilizzare HTTPS, puoi anche configurare in modo CloudFront da preferire (o addirittura richiedere) le connessioni HTTPS dagli utenti finali. A tale scopo, utilizzare l'impostazione del criterio del protocollo Viewer. È possibile impostarlo per reindirizzare gli utenti finali da HTTP a HTTPS o per rifiutare le richieste che utilizzano HTTP. Questa impostazione è disponibile nella CloudFront console e CloudFormation nell' CloudFront API. Per ulteriori informazioni, consulta Viewer Protocol Policy (Policy protocollo visualizzatore).
Ruotare il nome e il valore dell'intestazione
Oltre a utilizzare HTTPS, si consiglia anche di ruotare periodicamente il nome e il valore dell'intestazione. I passaggi di alto livello per eseguire questa operazione sono i seguenti:
-
Configura CloudFront per aggiungere un'intestazione HTTP personalizzata aggiuntiva alle richieste inviate all'Application Load Balancer.
-
Aggiornare la regola del listener Application Load Balancer per inoltrare le richieste che contengono questa intestazione HTTP personalizzata aggiuntiva.
-
Configura CloudFront in modo da interrompere l'aggiunta dell'intestazione HTTP personalizzata originale alle richieste inviate all'Application Load Balancer.
-
Aggiornare la regola del listener di Application Load Balancer per interrompere l'inoltro delle richieste contenenti l'intestazione HTTP personalizzata originale.
Per ulteriori informazioni sull'esecuzione di questi passaggi, vedere le sezioni precedenti.
(Facoltativo) Limita l'accesso all'origine utilizzando il AWS-elenco di prefissi gestito per CloudFront
Per limitare ulteriormente l'accesso all'Application Load Balancer, è possibile configurare il gruppo di sicurezza associato all'Application Load Balancer in modo che accetti solo il traffico proveniente da CloudFront quando il servizio utilizza un AWS elenco di prefissi gestito. Ciò impedisce al traffico non originato di raggiungere l'Application Load Balancer a livello di rete (livello 3) o livello di trasporto (livello 4). CloudFront
Per ulteriori informazioni, consulta la sezione Limita l'accesso alle tue origini utilizzando l'elenco dei prefissi AWS gestiti per il post del blog di Amazon. CloudFront