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à.
Limita l'accesso agli Application Load Balancer
Per un'applicazione Web o altro contenuto fornito da un Application Load Balancer con accesso a Internet in Elastic Load Balancing CloudFront , puoi memorizzare nella cache gli oggetti e servirli direttamente agli utenti (visualizzatori), riducendo il carico sull'Application Load Balancer. Un sistema di bilanciamento del carico connesso a Internet ha un nome risolvibile pubblicamente e indirizza le richieste dai client alle destinazioni DNS tramite Internet.
CloudFrontpuò anche contribuire a ridurre la latenza e persino ad assorbire alcuni attacchi Distributed Denial of Service (). DDoS
Tuttavia, se gli utenti possono bypassare CloudFront e accedere direttamente all'Application Load Balancer, non si ottengono questi vantaggi. Ma puoi configurare Amazon CloudFront e il tuo Application Load Balancer per impedire agli utenti di accedere direttamente all'Application Load Balancer. Ciò consente agli utenti di accedere all'Application Load Balancer solo tramite CloudFront, assicurandoti di ottenere i vantaggi dell'utilizzo. CloudFront
Per impedire agli utenti di accedere direttamente a un Application Load Balancer e consentire l'accesso solo tramite CloudFront, completa questi passaggi di alto livello:
-
Configura CloudFront per aggiungere un'HTTPintestazione personalizzata alle richieste inviate all'Application Load Balancer.
-
Configura Application Load Balancer per inoltrare solo le richieste che contengono l'intestazione personalizzataHTTP.
-
(Facoltativo) Richiede HTTPS di migliorare la sicurezza di questa soluzione.
Per ulteriori informazioni, consulta i seguenti argomenti. Dopo aver completato questi passaggi, gli utenti possono accedere all'Application Load Balancer solo tramite. CloudFront
Argomenti
- Configura CloudFront per aggiungere un'HTTPintestazione personalizzata alle richieste
- Configurare un Application Load Balancer per inoltrare solo le richieste che contengono un'intestazione specifica
- (Facoltativo) Migliorare la sicurezza di questa soluzione
- (Facoltativo) Limita l'accesso all'origine utilizzando l'elenco di prefissi -managed per AWS CloudFront
Configura CloudFront per aggiungere un'HTTPintestazione personalizzata alle richieste
Puoi configurare CloudFront l'aggiunta di un'HTTPintestazione personalizzata alle richieste che invia alla tua 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 HTTP client potrebbero potenzialmente includerli nelle richieste inviate direttamente all'Application Load Balancer. Ciò può far sì che l'Application Load Balancer si comporti come se le richieste provenissero da CloudFront quando non provenivano. Per evitare ciò, mantieni segreti il nome dell'intestazione e il valore personalizzati.
È possibile CloudFront configurare l'aggiunta di un'HTTPintestazione personalizzata alle richieste di origine con la CloudFront console o il AWS CloudFormation. CloudFront API
- Per aggiungere un'HTTPintestazione personalizzata (console) CloudFront
-
Nella CloudFront console, usa l'impostazione Origin Custom Headers nelle impostazioni di Origin. Inserisci il nome dell'intestazione e il relativo valore.
Nota
In produzione, utilizzate nomi e valori di intestazione generati casualmente. Tratta i nomi e i valori delle intestazioni come credenziali sicure, come 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.
- Per aggiungere un'HTTPintestazione personalizzata ()AWS CloudFormation
-
In un AWS CloudFormation modello, utilizzate la
OriginCustomHeaders
proprietà, come illustrato 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, consulta Origin e OriginCustomHeaderproprietà nella Guida AWS CloudFormation per l'utente.
- Per aggiungere un'HTTPintestazione personalizzata () CloudFront API
-
Nel CloudFront API, usa l'
CustomHeaders
oggetto all'internoOrigin
. Per ulteriori informazioni, consulta CreateDistributione UpdateDistributionconsulta Amazon CloudFront API Reference e la documentazione del tuo SDK o di un altro API cliente.
Esistono alcuni nomi di intestazione che non è possibile specificare come intestazioni personalizzate di origine. Per ulteriori informazioni, consulta Intestazioni personalizzate che non CloudFront possono essere aggiunte alle richieste di origine.
Configurare un Application Load Balancer per inoltrare solo le richieste che contengono un'intestazione specifica
Dopo aver CloudFront configurato l'aggiunta di un'HTTPintestazione personalizzata alle richieste inviate all'Application Load Balancer (vedi la sezione precedente), puoi configurare il load balancer per inoltrare 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 seguenti procedure modificano un listener. HTTPS È possibile utilizzare lo stesso processo per modificare un HTTP listener.
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 CloudFront distribuzione.
Per Aggiungi condizione, scegli Http header. Specificate il nome e il valore dell'HTTPintestazione che avete aggiunto come intestazione personalizzata di origine. 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 tuo sistema di bilanciamento del carico. Usa le istruzioni di Modifica una regola, con le seguenti modifiche:
Modifica la regola predefinita del load balancer che è l'origine della tua CloudFront distribuzione.
Elimina l'azione predefinita, quindi per Aggiungi azione, scegli Restituisci risposta fissa.
Per Codice risposta, immettere
403
.Per Corpo risposta, immettere
Access denied
.
Dopo aver completato questi passaggi, il tuo load balancer listener ha due regole. Una regola inoltra le richieste che contengono l'HTTPintestazione (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 venga sempre utilizzata 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 HTTPS può aiutare a impedire a un intercettatore di scoprire il nome e il valore dell'intestazione. Si consiglia inoltre di ruotare periodicamente il nome e il valore dell'intestazione.
Utilizzare HTTPS per le richieste di origine
Per CloudFront configurarne l'utilizzo HTTPS per le richieste di origine, imposta l'impostazione Origin Protocol Policy su HTTPSSolo. Questa impostazione è disponibile nella CloudFront console AWS CloudFormation e in CloudFront API. Per ulteriori informazioni, consulta Protocollo (solo origini personalizzate).
Quanto segue si applica anche quando si configura l'utilizzo CloudFront HTTPS per le richieste di origine:
-
È necessario CloudFront configurare l'inoltro dell'
Host
intestazione all'origine con la policy di richiesta di origine. È possibile utilizzare la policy di richiesta di origine AllViewer gestita. -
Accertatevi che l'Application Load Balancer disponga di un HTTPS listener (come illustrato nella sezione precedente). Per ulteriori informazioni, consulta Create an HTTPS listener nella User Guide for Application Load Balancers. L'utilizzo di un HTTPS listener richiede un TLS certificatoSSL/che corrisponda al nome di dominio indirizzato all'Application Load Balancer.
-
SSL/TLSi certificati per CloudFront possono essere richiesti (o importati) solo in ().
us-east-1
Regione AWS AWS Certificate Manager ACM CloudFront Trattandosi di un servizio globale, distribuisce automaticamente il certificato dallaus-east-1
regione a tutte le regioni associate alla CloudFront distribuzione.-
Ad esempio, se avete un Application Load Balancer (ALB) nella
ap-southeast-2
regione, dovete configurareSSL/TLScertificates sia nellaap-southeast-2
regione (per l'utilizzo HTTPS tra CloudFront e l'ALBorigine) cheus-east-1
nella regione (per l'utilizzo HTTPS tra i visualizzatori e). CloudFront Entrambi i certificati devono corrispondere al nome di dominio indirizzato all'Application Load Balancer. Per ulteriori informazioni, consulta Regione AWS per AWS Certificate Manager.
-
-
Se gli utenti finali (noti anche come visualizzatori o client) della tua applicazione web possono utilizzarlaHTTPS, puoi anche configurarla CloudFront per preferire (o addirittura richiedere) HTTPS le connessioni degli utenti finali. A tale scopo, utilizzare l'impostazione del criterio del protocollo Viewer. Puoi impostarlo per reindirizzare gli utenti finali da HTTP a HTTPS o per rifiutare le richieste che lo utilizzano. HTTP Questa impostazione è disponibile nella CloudFront console e AWS CloudFormation in. CloudFront API Per ulteriori informazioni, consulta Viewer Protocol Policy (Policy protocollo visualizzatore).
Ruotare il nome e il valore dell'intestazione
Oltre all'utilizzoHTTPS, consigliamo 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'HTTPintestazione personalizzata aggiuntiva alle richieste inviate all'Application Load Balancer.
-
Aggiorna la regola del listener Application Load Balancer per inoltrare le richieste che contengono questa intestazione personalizzata aggiuntiva. HTTP
-
Configura CloudFront per interrompere l'aggiunta dell'HTTPintestazione personalizzata originale alle richieste inviate all'Application Load Balancer.
-
Aggiorna la regola del listener Application Load Balancer per interrompere l'inoltro delle richieste che contengono l'intestazione personalizzata originale. HTTP
Per ulteriori informazioni sull'esecuzione di questi passaggi, vedere le sezioni precedenti.
(Facoltativo) Limita l'accesso all'origine utilizzando l'elenco di prefissi -managed per AWS 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 CloudFront proveniente da quando il servizio utilizza AWS un elenco di prefissi -managed. Ciò impedisce al traffico non originario di raggiungere l'Application Load Balancer a livello di rete (livello 3) o di trasporto (livello 4). CloudFront
Per ulteriori informazioni, consulta il post del CloudFront blog Limita l'accesso alle tue origini utilizzando l'elenco dei prefissi AWS-managed per Amazon