Direkt zum Inhalt

Wie entferne oder ändere ich HTTP-Antwort-Header in CloudFront?

Lesedauer: 4 Minute
0

Ich möchte HTTP-Antwort-Header wie Server, X-Cache, X-Forwarded-Host oder X-Forwarded-Server aus meiner Amazon CloudFront-Distribution entfernen oder ändern.

Kurzbeschreibung

Wähle basierend auf dem Antwort-Header, den du ändern oder entfernen möchtest, eine der folgenden Lösungen:

  • Verwende eine Richtlinie für Antwort-Header, um den Wert eines Headers Server bedingungslos zu ändern oder zu entfernen.
  • Verwende eine CloudFront-Funktion, um den Wert eines Headers Server für eine bestimmte Bedingung zu ändern.
  • Verwende benutzerdefinierte Header, um einen X-Forwarded-Host- oder X-Forwarded-Server-Header zu entfernen.
  • Du kannst den Header X-Cache nicht entfernen oder ändern. Der Header X-Cache muss erhalten bleiben, da er die Quelle des Headers anzeigt, z. B. den CloudFront-Cache, eine Funktion oder einen Ursprung.

Hinweis: CloudFront fügt Antworten, die es an Viewer sendet, seine eigenen Server- und X-Cache-Header hinzu. CloudFront fügt die Header auch dann hinzu, wenn du eine Richtlinie für Antwort-Header verwendest, um die Header aus der ursprünglichen Antwort zu entfernen.

Lösung

Eine Richtlinie für Antwort-Header verwenden, um einen Server-Header zu ändern oder zu entfernen

Gehe wie folgt vor, um einen Header Server zu ändern:

  1. Öffne die CloudFront-Konsole.
  2. Wähle im Navigationsbereich Richtlinien und dann die Registerkarte Antwort-Header aus.
  3. Wähle Richtlinie für Antwort-Header erstellen aus.
  4. Gib im Abschnitt Details unter Name einen Namen für die Richtlinie ein.
  5. Wähle im Abschnitt Benutzerdefinierte Header die Option Header hinzufügen.
  6. Gib als Name Server ein.
  7. Gib für Wert den Header-Wert Server ein.
  8. Wähle die Option Ursprung überschreiben für den benutzerdefinierten Header Server aus und wähle dann Erstellen.
  9. Hänge die Richtlinie für Antwort-Header an das Verhalten an, das du in der CloudFront-Distribution wünschst.

CloudFront stellt die Änderungen bereit und überschreibt dann den Header-Wert Server mit dem benutzerdefinierten Wert, den du in der Richtlinie angegeben hast.

Gehe wie folgt vor, um einen Header Server zu entfernen:

  1. Öffne die CloudFront-Konsole.
  2. Wähle im Navigationsbereich Richtlinien und dann die Registerkarte Antwort-Header aus.
  3. Wähle Richtlinie für Antwort-Header erstellen aus.
  4. Gib im Abschnitt Details unter Name einen Namen für die Richtlinie ein.
  5. Wähle im Abschnitt Header entfernen die Option Header hinzufügen.
  6. Gib als Name Server ein und wähle dann Erstellen.
  7. Hänge die Richtlinie für Antwort-Header an das Verhalten an, das du in der CloudFront-Distribution wünschst.

CloudFront stellt die Änderungen bereit und ersetzt dann den Header-Wert Server durch den Wert CloudFront.

Eine CloudFront-Funktion verwenden, um den Server-Header für eine bestimmte Bedingung zu ändern

Gehe wie folgt vor, um den Header-Wert Server mit dem benutzerdefinierten Wert für das Verhalten zu überschreiben, das du für eine bestimmte Bedingung angibst:

  1. Öffne die CloudFront-Konsole.
  2. Wähle im Navigationsbereich Funktionen und wähle dann Funktion erstellen.
  3. Gib unter Name einen Namen für die Funktion ein.
  4. Wähle für Laufzeit cloudfront-js-2.0.
  5. Wähle Funktion erstellen.
  6. Gib auf der Registerkarte Entwicklung des Code Editor den folgenden Code ein:
    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;
    }
    Hinweis: Ersetze YOUR_CONDITIONAL_VALUE durch den bedingten Wert und YOUR_CUSTOM_VALUE durch den Header-Wert Server.
  7. Wähle Änderungen speichern.
  8. Ordne die Funktion dem Verhalten zu, das du in der CloudFront-Distribution wünschst.

Die CloudFront-Funktion überschreibt den Header Server mit dem benutzerdefinierten Wert für das Verhalten in der spezifischen Bedingung, die du in der Funktion definiert hast.

Verwende benutzerdefinierte Header, um den Header "X-Forwarded-Host" oder "X-Forwarded-Server" zu entfernen

Führe die folgenden Schritte aus:

  1. Erstelle eine Lambda @Edge-Funktion.

  2. Füge einen Trigger für die Lambda @Edge-Funktion hinzu.
    Die folgende Beispielfunktion in Node.js entfernt die Header X-Forwarded-Host und 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. Stelle die Lambda @Edge-Funktion bereit und verknüpfe die Funktion dann mit dem Viewer-Anfrage-Trigger der CloudFront-Distribution.

  4. Verwende den Trigger, um die angegebenen Header zu entfernen, bevor du Anfragen an den Ursprung weiterleitest.

Ähnliche Informationen

Die Richtlinien für Antwort-Header verstehen

Anpassen am Edge mit CloudFront-Funktionen

Anpassen am Edge mit Lambda@Edge

AWS OFFICIALAktualisiert vor 8 Monaten