Direkt zum Inhalt

Wie bringe ich CloudFront dazu, die DNSSEC-Anforderung meiner Organisation zu erfüllen?

Lesedauer: 2 Minute
0

Ich habe eine Amazon-CloudFront-Distribution und muss die regulatorische Anforderung meiner Organisation erfüllen, DNSSEC zu verwenden.

Kurzbeschreibung

Die Standard-CloudFront-Domain cloudfront.net unterstützt kein DNSSEC. Um DNSSEC für deine Domain zu aktivieren, musst du zuerst einen DNSKEY-Ressourcendatensatz erstellen. Da AWS jedoch die DNS-Datensätze für CloudFront-Domains verwaltet, kannst du keinen DNSKEY-Eintrag konfigurieren. Das bedeutet, dass du DNSSEC nicht direkt für eine CloudFront-Domain aktivieren kannst. Stattdessen musst du es über eine alternative Domain aktivieren.

Wenn deine Organisation die Verwendung von DNSSEC verlangt, blockiere zuerst den Zugriff auf die Distribution über die CloudFront-Domain. Aktiviere dann DNSSEC für einen alternativen Domain-Namen oder einen Canonical Name Record (CNAME), der mit der CloudFront-Distribution verknüpft ist.

Lösung

Zugriff über CloudFront blockieren

Um Anfragen zu blockieren, die die Domain cloudfront.net im Host-Header enthalten, verwende entweder AWS WAF oder eine Funktion.

AWS WAF verwenden

Verwende eine AWS-WAF-Regel, die einen der folgenden Anforderungstypen blockiert:

  • Ein Host-Header, der mit cloudfront.net endet.
  • Alle Anfragen, die die Domain der Distribution (z. B. d123abc.cloudfront.net) in einem einzelnen Header enthalten.

Eine Funktion verwenden

Verwende eine CloudFront-Funktion oder eine AWS-Lambda@Edge-Funktion, um alle Anfragen zu blockieren, die im Host-Header einen Wert enthalten, der mit cloudfront.net endet. Es ist eine bewährte Methode, eine CloudFront-Funktion zu verwenden, da sie geringere Kosten und eine schnellere Leistung bietet.

Die folgende Beispiel-CloudFront-Funktion blockiert Anfragen, die die CloudFront-Domain cloudfront.net im Host-Header enthalten:

function handler(event) {
  var request = event.request;
    // Extract the host header value
    var host = request.headers.host.value;
    // Check if the host header value ends with "cloudfront.net"
    if (host.endsWith('cloudfront.net')) {
      // Return a response to block the request
      return {
        statusCode: 403,
        statusDescription: 'Forbidden',
        headers: {
          'content-type': {
            value: 'text/plain'
          }
        },
        body: 'Access to this resource is forbidden.'
      };
    }
    // Allow the request to proceed
    return request;
  }

DNSSEC für einen alternativen Domain-Namen aktivieren

Nachdem du den Zugriff über die CloudFront-Domain blockiert hast, kannst du DNSSEC für einen alternativen Domain-Namen (CNAME) aktivieren. Führe dazu die Schritte unter DNSSEC-Signatur aktivieren und eine Vertrauenskette einrichten aus.

Domain testen

Um zu bestätigen, dass DNSSEC mit deiner Domain korrekt funktioniert, verwende den DNSSEC-Analyzer auf der Verisign-Website.

AWS OFFICIALAktualisiert vor 6 Monaten