Salta al contenuto

Come posso rimuovere o modificare le intestazioni di risposta HTTP in CloudFront?

4 minuti di lettura
0

Desidero rimuovere o modificare le intestazioni di risposta HTTP come Server, X-Cache, X-Forwarded-Host o X-Forwarded-Server dalla mia distribuzione di Amazon CloudFront.

Breve descrizione

Scegli una delle seguenti risoluzioni in base all'intestazione di risposta che desideri modificare o rimuovere:

  • Per modificare o rimuovere incondizionatamente il valore di un'intestazione Server, utilizza una policy delle intestazioni di risposta.
  • Per modificare il valore di un'intestazione Server in una condizione specifica, utilizza una funzione CloudFront.
  • Per rimuovere un'intestazione X-Forwarded-Host o X-Forwarded-Server, utilizza intestazioni personalizzate.
  • Non puoi rimuovere o modificare l'intestazione X-Cache. L'intestazione X-Cache deve rimanere perché mostra la provenienza dell'intestazione, come la cache di CloudFront, una funzione o un'origine.

Nota: CloudFront aggiunge le proprie intestazioni Server e X-Cache alle risposte che invia ai visualizzatori. CloudFront aggiunge le intestazioni anche quando utilizzi una policy delle intestazioni di risposta per rimuovere le intestazioni dalla risposta dell'origine.

Risoluzione

Utilizza una policy delle intestazioni di risposta per modificare o rimuovere un'intestazione Server

Per modificare un'intestazione Server, completa i seguenti passaggi:

  1. Apri la console CloudFront.
  2. Nel pannello di navigazione, scegli Policy, quindi scegli la scheda Response headers (Intestazioni di risposta).
  3. Scegli Create response headers policy (Crea una policy delle intestazioni di risposta).
  4. Nella sezione Details (Dettagli), in Name (Nome), inserisci un nome per la policy.
  5. Nella sezione Custom headers (Intestazioni personalizzate), scegli Add header (Aggiungi intestazione).
  6. In Name (Nome), inserisci Server.
  7. In Value (Valore), inserisci il valore dell'intestazione Server.
  8. Seleziona l'opzione Origin override (Sostituisci origine) per l'intestazione personalizzata Server, quindi scegli Create (Crea).
  9. Collega la policy delle intestazioni di risposta al comportamento che desideri nella distribuzione di CloudFront.

CloudFront distribuisce le modifiche e sostituisce il valore dell'intestazione Server con il valore personalizzato specificato nella policy.

Per rimuovere un'intestazione Server, completa i seguenti passaggi:

  1. Apri la console CloudFront.
  2. Nel pannello di navigazione, scegli Policy, quindi scegli la scheda Response headers (Intestazioni di risposta).
  3. Scegli Create response headers policy (Crea una policy delle intestazioni di risposta).
  4. Nella sezione Details (Dettagli), in Name (Nome), inserisci un nome per la policy.
  5. Nella sezione Remove headers (Rimuovi intestazioni), scegli Add header (Aggiungi intestazione).
  6. In Name (Nome), inserisci Server, quindi scegli Create (Crea).
  7. Collega la policy delle intestazioni di risposta al comportamento che desideri nella distribuzione di CloudFront.

CloudFront distribuisce le modifiche e sostituisce il valore dell'intestazione Server con il valore CloudFront.

Utilizza una funzione CloudFront per modificare l'intestazione Server in una condizione specifica

Per sostituire il valore dell'intestazione Server con il valore personalizzato per il comportamento desiderato in una condizione specifica, completa i passaggi seguenti:

  1. Apri la console CloudFront.
  2. Nel pannello di navigazione, scegli Functions (Funzioni), quindi scegli Create function (Crea funzione).
  3. In Name (Nome), inserisci un nome per la funzione.
  4. Per Runtime, scegli cloudfront-js-2.0.
  5. Scegli Create function (Crea funzione).
  6. Nella scheda Development (Sviluppo) dell'Editor di codice, inserisci il seguente codice:
    function handler(event) {
        var response = event.response;
        var headers = response.headers;
    
        if ('server' in headers && headers.server.value === 'YOUR_CONDITIONAL_VALUE') {
            headers.server.value = 'YOUR_CUSTOM_VALUE';
        }
    
        return response;
    }
    Nota: sostituisci YOUR_CONDITIONAL_VALUE con il tuo valore condizionale e YOUR_CUSTOM_VALUE con il tuo valore dell'intestazione Server.
  7. Scegli Save changes (Salva modifiche).
  8. Associa la funzione al comportamento che desideri nella distribuzione di CloudFront.

La funzione CloudFront sostituisce l'intestazione Server con il valore personalizzato per il comportamento nella condizione specifica definita nella funzione.

Utilizza intestazioni personalizzate per rimuovere l'intestazione "X-Forwarded-Host" o "X-Forwarded-Server"

Completa i seguenti passaggi:

  1. Crea una funzione Lambda@Edge.

  2. Aggiungi un trigger per la funzione Lambda @Edge.
    Il seguente esempio di funzione in Node.js rimuove le intestazioni X-Forwarded-Host e X-Forwarded-Server:

    export const handler = async (event) => {
        const response = event.Records[0].cf.response;
        const headers = response.headers;
    
        // Remove X-Forwarded-Host header
        delete headers['x-forwarded-host'];
    
        // Remove X-Forwarded-Server header
        delete headers['x-forwarded-server'];
    
        return response;
    };
  3. Distribuisci la funzione Lambda@Edge, quindi associa la funzione al trigger della richiesta del visualizzatore della distribuzione di CloudFront.

  4. Utilizza il trigger per rimuovere le intestazioni specificate prima di inoltrare le richieste all'origine.

Informazioni correlate

Comprendi le policy relative alle intestazioni di risposta

Personalizza all'edge con Funzioni CloudFront

Personalizzazione all'edge con Lambda@Edge

AWS UFFICIALEAggiornata un anno fa