Préparer l'environnement pour utiliser le pare-feu d'applications Web

Préparez votre environnement pour pouvoir utiliser le service Web Application Firewall (WAF) d'Oracle Cloud Infrastructure afin de sécuriser votre application.

Avant de commencer

Avant de créer la stratégie WAF, vous devez connaître l'adresse IP publique de l'équilibreur de charge employee-helidon-lb déjà déployé. Reportez-vous à Déployer une application RESTful Java basée sur des microservices vers Oracle Cloud.

Accédez à l'adresse EXTERNAL-IP de l'équilibreur de charge de l'exemple d'application Employé. Cette opération sera nécessaire pour créer la stratégie WAF ultérieurement.

kubectl get service employee-helidon-lb

La commande précédente devrait renvoyer une sortie similaire à la suivante :

NAME                  TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
employee-helidon-lb   LoadBalancer   10.X.X.X       132.X.X.X        80:31437/TCP   5m

L'option EXTERNAL-IP affichée par Kubernetes est identique à l'adresse IP publique affichée lorsque vous accédez à Core > Networking > Load Balancers dans la console Oracle Cloud Infrastructure.

Créer une stratégie WAF

Pour sécuriser votre application à l'aide de WAF, vous devez d'abord créer une stratégie WAF.

  1. Connectez-vous à la console Oracle Cloud Infrastructure.
  2. Ouvrez le menu de navigation. Sous Gouvernance et administration, accédez à Sécurité, puis cliquez sur Stratégies WAF.
    Si vous y êtes invité, choisissez le compartiment où la règle WAF doit être créée.
  3. Cliquez sur Créer une stratégie WAF.
  4. Dans la boîte de dialogue Créer une règle WAF, renseignez les champs comme suit :
    Champ Valeur
    Nom de stratégie Stratégie de démonstration d'employé
    Domaine principal employee. example.com
    Domaines supplémentaires Laisser vide
    Nom du lieu de départ Equilibreur de charge OKE de l'employé
    URI Equilibreur de charge EXTERNAL-IP
  5. Cliquez sur Créer une stratégie WAF pour fermer la boîte de dialogue.
  6. Une fois créé, chargez les détails de la stratégie de démonstration des employés à partir de la liste des stratégies.

Routage du trafic d'application à l'aide de WAF

Pour acheminer le trafic via WAF, le domaine principal spécifié et tout domaine supplémentaire doivent être résolus en fonction de la valeur CNAME Target répertoriée dans les informations de la stratégie WAF. Cette information est présentée lorsque la stratégie est créée pour la première fois.

Si l'application est réellement configurée dans une zone DNS, vous créez normalement un enregistrement CNAME ou ALIAS pour employee.example.com en utilisant WAF_Target comme valeur.

Toutefois, étant donné que cette solution utilise un nom d'hôte example.com pour l'exemple d'application Employee, vous devez configurer votre ordinateur (à partir duquel vous accéderez à l'application) pour résoudre l'hôte.
  1. Définissez une variable d'environnement WAF_TARGET à utiliser dans d'autres commandes, en veillant à spécifier la variable CNAME Target répertoriée dans les détails de la règle WAF.
    # Mac or Linux
    export WAF_TARGET=employee-example-com.b.waas.oci.oraclecloud.net
    # Windows
    set WAF_TARGET=employee-example-com.b.waas.oci.oraclecloud.net
  2. Vérifiez que le trafic passe par WAF. Inspectez les en-têtes de réponse HTTP et vous attendez à voir ce qui suit :
    • Server: ZENEDGE
    • X-Cdn: Served-By-Zenedge
    curl -I-X GET http://${WAF_TARGET}/public/ -H'host: employee.example.com'
    Le code précédent doit renvoyer une sortie similaire à la suivante :
    HTTP/1.1 200 OK
    Content-Type: text/html
    Connection: keep-alive
    Server: ZENEDGE
    ETag: "1565120174000"
    X-Cache-Status: NOTCACHED
    Content-Length: 14258
    Date: Wed, 07 Aug 2019 20:22:35 GMT
    Last-Modified: Tue, 07 Aug 2019 19:36:14 GMT
    X-Zen-Fury: 1053bc526e3d722eadb457f2
  3. Configurez votre ordinateur pour résoudre l'exemple d'URL de l'application d'employé lorsqu'elle est chargée dans un navigateur. Pour ce faire, il convient de créer une entrée dans votre fichier hosts qui contourne DNS et achemine les demandes de l'ordinateur vers l'adresse IP WAF pour employee.example.com.
    1. Identifiez une (il peut y avoir plusieurs) adresse IP réseau pour le rôle $WAF_TARGET.
      nslookup $WAF_TARGET
      Le code précédent doit renvoyer une sortie similaire à la suivante :
      Server:         192.168.X.X
      Address:        192.168.X.X#YY
      Non-authoritative answer:
      employee-example-com.b.waas.oci.oraclecloud.net canonical name = oci.tm.u.waas.oci.oraclecloud.net.
      oci.tm.u.waas.oci.oraclecloud.net  canonical name = us-seattle.u.waas.oci.oraclecloud.net.
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.X
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.Y
      Name:   us-seattle.u.waas.oci.oraclecloud.net
      Address: 152.X.X.Z
    2. Sélectionnez une adresse unique dans la section Réponse non autorisée et créez une entrée hosts pour le domaine principal example dans le fichier /etc/hosts comme suit :
      # hosts file entry
      # <WAF IP Address>    <domain>  
         152.X.X.Z          employee.example.com

      Plusieurs entrées existent déjà. Veillez à laisser ces éléments inchangés afin d'éviter les comportements inattendus.

  4. Ouvrez le fichier http://<employee.example.com>/public/ dans un navigateur.

L'application s'exécute maintenant sur WAF.