Passer au contenu

Comment puis-je faire en sorte que CloudFront se conforme à l’exigence de mon organisation d’utiliser DNSSEC ?

Lecture de 3 minute(s)
0

J'ai une distribution Amazon CloudFront et je dois me conformer à l'obligation réglementaire de mon organisation d'utiliser Domain Name System Security Extensions (DNSSEC).

Brève description

Le domaine CloudFront par défaut cloudfront.net n'autorise pas DNSSEC. Pour activer DNSSEC pour votre domaine, vous devez d'abord créer un jeu d'enregistrements de ressources DNSKEY. Cependant, étant donné qu'AWS gère les enregistrements DNS pour les domaines CloudFront, vous ne pouvez pas configurer d'enregistrement DNSKEY. Cela signifie que vous ne pouvez pas activer directement DNSSEC pour un domaine CloudFront. Vous devez plutôt l'activer via un domaine alternatif.

Si votre organisation requiert l'utilisation de DNSSEC, bloquez d'abord l'accès à la distribution depuis le domaine CloudFront. Activez ensuite DNSSEC sur un nom de domaine alternatif ou un enregistrement de nom canonique (CNAME) associé à la distribution CloudFront.

Résolution

Bloquer l'accès depuis CloudFront

Pour bloquer toutes les requêtes dont le domaine cloudfront.net figure dans l'en-tête de l'hôte, utilisez AWS WAF ou une fonction.

Utiliser AWS WAF

Utilisez une règle AWS WAF qui bloque l'un des types de requêtes suivants :

  • En-tête d'hôte qui se termine par cloudfront.net.
  • Toutes les requêtes contenant le domaine de la distribution (comme d123abc.cloudfront.net) dans un en-tête unique.

Utiliser une fonction

Utilisez une fonction CloudFront ou une fonction AWS Lambda@Edge pour bloquer toutes les requêtes dont la valeur dans l'en-tête de l'hôte se termine par cloudfront.net. Il est recommandé d'utiliser une fonction CloudFront en raison de son faible coût et de ses performances plus rapides.

L'exemple de fonction CloudFront suivant bloque les requêtes dont l'en-tête d'hôte contient le domaine CloudFront cloudfront.net :

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;
  }

Activer DNSSEC sur un nom de domaine alternatif

Après avoir bloqué l'accès depuis le domaine CloudFront, vous pouvez activer DNSSEC sur un nom de domaine alternatif (CNAME). Pour ce faire, suivez les étapes décrites dans section Activation de la signature DNSSEC et établissement d'une chaîne de confiance.

Tester votre domaine

Pour vérifier que le protocole DNSSEC fonctionne correctement avec votre domaine, utilisez l'analyseur DNSSEC sur le site Web de Verisign.

AWS OFFICIELA mis à jour il y a 6 mois