Je veux restreindre l'accès direct des utilisateurs à un Application Load Balancer (ALB) et autoriser l'accès uniquement via Amazon CloudFront à l'aide d'AWS WAF. Comment puis-je y parvenir à l'aide d'AWS WAF ?
Solution
Pour restreindre le trafic direct vers un ALB et autoriser le trafic uniquement via CloudFront à l'aide d'AWS WAF, procédez comme suit :
- Configurez CloudFront pour ajouter un en-tête HTTP personnalisé avec une valeur secrète dans les demandes que CloudFront envoie à l'ALB.
- Créez une règle dans votre ACL Web AWS WAF associée à l'ALB pour bloquer les demandes qui ne contiennent pas la valeur secrète de l'en-tête HTTP personnalisé.
Configurer CloudFront pour ajouter un en-tête HTTP personnalisé avec une valeur secrète dans les demandes qu'il envoie à l'ALB
- Ouvrez la console Amazon CloudFront.
- Dans le panneau de navigation, choisissez Distributions (Distributions).
- Sélectionnez l'ID de votre distribution.
- Choisissez Origins (Origines).
- Sélectionnez votre origine ALB, puis choisissez Edit (Modifier).
Remarque : si vous n'avez pas d'origine ALB, consultez Création d'une distribution ou Mise à jour d'une distribution.
- Pour Add custom header (Ajouter un en-tête personnalisé), ajoutez le nom de l'en-tête et la valeur. Un exemple de nom d'en-tête est Custom-header et la valeur est Random-12345.
Important : considérez le nom d'en-tête et la valeur comme des informations d'identification sécurisées, comme un nom d'utilisateur et un mot de passe.
- Choisissez Save changes (Enregistrer les modifications).
Création d'une règle dans votre ACL Web AWS WAF associée à l'ALB pour bloquer les demandes qui ne contiennent pas la valeur secrète de l'en-tête HTTP personnalisé
Remarque : si vous n'avez pas d'ACL Web existante associée à votre ALB, suivez les étapes de la section Création d'une ACL Web AWS WAF. Si vous avez une ACL Web existante associée à votre ALB, passez alors à Création d'une règle.
Créer une ACL Web AWS WAF
- Ouvrez la console AWS WAF.
- Dans le panneau de navigation, sous AWS WAF, choisissez Web ACLs (ACL Web).
- Pour Region (Région), sélectionnez la région AWS où se trouve votre ALB.
- Choisissez Create Web ACL (Créer une ACL Web), puis saisissez un Name (Nom).
- Pour Associated AWS resources (Ressources AWS associées), associez votre ALB, puis sélectionnez Next (Suivant).
- Pour Default Web ACL action for requests that don't match any rules (Action par défaut de l'ACL Web pour les demandes qui ne correspondent à aucune règle), choisissez Allow (Autoriser), puis Next (Suivant).
- Pour Request sampling options (Options d'échantillonnage des demandes), choisissez Enable sampled requests (Activer les demandes échantillonnées), puis Next (Suivant).
- Vérifiez la configuration de l'ACL Web. Si elle correspond à vos spécifications, sélectionnez Create Web ACL (Créer une ACL Web).
Création d'une règle
- Ouvrez la console AWS WAF.
- Dans le panneau de navigation, sous AWS WAF, choisissez Web ACLs (ACL Web).
- Pour Region (Région), sélectionnez la région AWS où se trouve votre ALB.
- Sélectionnez l'ACL Web à laquelle vous avez associé votre ALB.
- Choisissez Rules (Règles), puis Add Rules (Ajouter des règles), Add my own rules and rule groups (Ajouter mes propres règles et groupes de règles).
- Pour Name (Nom), saisissez un nom de règle, puis choisissez Regular Rule (Règle régulière).
- Pour If a request (Si une demande), choisissez doesn’t match the statement (NOT) (ne correspond pas à l'instruction (NOT)).
- Dans Statement 1 (Instruction 1) :
Pour Inspect (Inspecter), choisissez Single Header (En-tête unique).
Pour Header field name (Nom du champ d'en-tête), saisissez le nom de l'en-tête créé dans CloudFront. Par exemple, Custom-header.
Pour Match type (Type de correspondance), choisissez Exactly matches string (Correspondance exacte).
Pour String to match (Chaîne à faire correspondre), saisissez la valeur créée dans CloudFront. Par exemple, Random-12345.
Pour Text transformation (Transformation de texte), choisissez None (Aucune).
- Pour Action, choisissez Block (Bloquer).
- Choisissez Save rule (Enregistrer la règle).
- Pour Set rule priority (Définir la priorité de la règle), si vous avez plusieurs règles, définissez cette règle sur la priorité la plus élevée.
- Choisissez Save (Enregistrer).
Informations connexes
Ajout d'en-têtes personnalisés aux demandes d'origine
Règles AWS WAF