6.2. Configuration du contrôleur d’entrée secondaire


Il est nécessaire de configurer un contrôleur d’entrée secondaire pour segmenter votre trafic externe protégé par WAF de votre contrôleur d’entrée standard (et par défaut).

Conditions préalables

  • Certificat SAN ou wildcard de confiance pour votre domaine personnalisé, tel que CN=*.apps.example.com

    Important

    Amazon CloudFront utilise HTTPS pour communiquer avec le contrôleur secondaire d’entrée de votre cluster. Comme expliqué dans la documentation Amazon CloudFront, vous ne pouvez pas utiliser un certificat autosigné pour la communication HTTPS entre CloudFront et votre cluster. Amazon CloudFront vérifie que le certificat a été délivré par une autorité de certification de confiance.

Procédure

  1. Créez un nouveau secret TLS à partir d’une clé privée et d’un certificat public, où fullchain.pem est votre chaîne de certificats wildcard complète (y compris les intermédiaires) et privkey.pem est la clé privée de votre certificat wildcard.

    Exemple :

    $ oc -n openshift-ingress create secret tls waf-tls --cert=fullchain.pem --key=privkey.pem
    Copy to Clipboard Toggle word wrap

  2. Créer une nouvelle ressource IngressController:

    Exemple waf-ingress-controller.yaml

    apiVersion: operator.openshift.io/v1
    kind: IngressController
    metadata:
      name: cloudfront-waf
      namespace: openshift-ingress-operator
    spec:
      domain: apps.example.com 
    1
    
      defaultCertificate:
        name: waf-tls
      endpointPublishingStrategy:
        loadBalancer:
          dnsManagementPolicy: Unmanaged
          providerParameters:
            aws:
              type: NLB
            type: AWS
          scope: External
        type: LoadBalancerService
      routeSelector: 
    2
    
        matchLabels:
         route: waf
    Copy to Clipboard Toggle word wrap

    1
    Le remplacement par le domaine personnalisé que vous souhaitez utiliser pour IngressController.
    2
    Filtre l’ensemble d’itinéraires desservis par le contrôleur Ingress. Dans ce tutoriel, nous utiliserons le sélecteur de route waf, mais si aucune valeur n’était fournie, aucun filtrage ne se produirait.
  3. Appliquer le logiciel IngressController:

    Exemple :

    $ oc apply -f waf-ingress-controller.yaml
    Copy to Clipboard Toggle word wrap

  4. Assurez-vous que votre IngressController a réussi à créer un équilibreur de charge externe:

    $ oc -n openshift-ingress get service/router-cloudfront-waf
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP                                                                     PORT(S)                      AGE
    router-cloudfront-waf   LoadBalancer   172.30.16.141   a68a838a7f26440bf8647809b61c4bc8-4225395f488830bd.elb.us-east-1.amazonaws.com   80:30606/TCP,443:31065/TCP   2m19s
    Copy to Clipboard Toggle word wrap

6.2.1. Configurer l’AWS WAF

Le service AWS WAF est un pare-feu d’application Web qui vous permet de surveiller, de protéger et de contrôler les requêtes HTTP et HTTPS qui sont transmises à vos ressources d’application Web protégées, comme ROSA.

  1. Créer un fichier de règles AWS WAF pour s’appliquer à notre ACL web:

    $ cat << EOF > ${SCRATCH}/waf-rules.json
    [
        {
          "Name": "AWS-AWSManagedRulesCommonRuleSet",
          "Priority": 0,
          "Statement": {
            "ManagedRuleGroupStatement": {
              "VendorName": "AWS",
              "Name": "AWSManagedRulesCommonRuleSet"
            }
          },
          "OverrideAction": {
            "None": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "AWS-AWSManagedRulesCommonRuleSet"
          }
        },
        {
          "Name": "AWS-AWSManagedRulesSQLiRuleSet",
          "Priority": 1,
          "Statement": {
            "ManagedRuleGroupStatement": {
              "VendorName": "AWS",
              "Name": "AWSManagedRulesSQLiRuleSet"
            }
          },
          "OverrideAction": {
            "None": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "AWS-AWSManagedRulesSQLiRuleSet"
          }
        }
    ]
    EOF
    Copy to Clipboard Toggle word wrap

    Cela activera les jeux de règles gérés Core (Common) et SQL AWS.

  2. Créer un AWS WAF Web ACL en utilisant les règles que nous avons spécifiées ci-dessus:

    $ WAF_WACL=$(aws wafv2 create-web-acl \
      --name cloudfront-waf \
      --region ${REGION} \
      --default-action Allow={} \
      --scope CLOUDFRONT \
      --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=${CLUSTER}-waf-metrics \
      --rules file://${SCRATCH}/waf-rules.json \
      --query 'Summary.Name' \
      --output text)
    Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat