Chapitre 7. Tutoriel : Utilisation d’AWS WAF et d’AWS ALB pour protéger les charges de travail ROSA
AWS WAF est un pare-feu d’application Web qui vous permet de surveiller les requêtes HTTP et HTTPS qui sont transmises à vos ressources d’application Web protégées.
Il est possible d’utiliser un balanceur de charge d’application AWS (ALB) pour ajouter un pare-feu d’application Web (WAF) à votre Red Hat OpenShift Service sur AWS (ROSA). L’utilisation d’une solution externe protège les ressources ROSA contre le déni de service dû à la gestion du WAF.
Il est recommandé d’utiliser la méthode CloudFront plus flexible, sauf si vous devez absolument utiliser une solution basée sur ALB.
7.1. Conditions préalables Copier lienLien copié sur presse-papiers!
Cluster de zones de disponibilité multiples (AZ) ROSA (HCP ou Classic).
NoteLes ALB AWS nécessitent au moins deux sous-réseaux publics à travers les AZ, selon la documentation AWS. C’est pour cette raison que seuls plusieurs clusters AZ ROSA peuvent être utilisés avec des ALB.
- Accès à l’OpenShift CLI (oc).
- Accès à AWS CLI (aws).
7.1.1. Configuration de l’environnement Copier lienLien copié sur presse-papiers!
Élaborer les variables de l’environnement:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.2. AWS VPC et sous-réseaux Copier lienLien copié sur presse-papiers!
Cette section ne s’applique qu’aux clusters qui ont été déployés dans des VPC existants. Dans le cas où vous n’avez pas déployé votre cluster dans un VPC existant, sautez cette section et passez à la section d’installation ci-dessous.
Définissez les variables ci-dessous aux valeurs appropriées pour votre déploiement ROSA:
export VPC_ID=<vpc-id> export PUBLIC_SUBNET_IDS=(<space-separated-list-of-ids>) export PRIVATE_SUBNET_IDS=(<space-separated-list-of-ids>)
$ export VPC_ID=<vpc-id>
1 $ export PUBLIC_SUBNET_IDS=(<space-separated-list-of-ids>)
2 $ export PRIVATE_SUBNET_IDS=(<space-separated-list-of-ids>)
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le remplacement par l’ID VPC du cluster, par exemple: exporte VPC_ID=vpc-04c429b7dbc4680ba.
- 2
- Le remplacer par une liste séparée de l’espace des ID de sous-réseau privés du cluster, en veillant à préserver le (). Exportation PUBLIC_SUBNET_IDS=(subnet-056fd6861ad332ba2 sous-net-08ce3b4ec753fe74c sous-net-071aa2828664972f).
- 3
- Le remplacer par une liste séparée de l’espace des ID de sous-réseau privés du cluster, en veillant à préserver le (). Exportation PRIVATE_SUBNET_IDS=(subnet-0b933d72a8d72c36a sousnet-0817eb72070f1d3c2 sousnet-0806e64159b66665a).
Ajoutez une balise au VPC de votre cluster avec l’identifiant du cluster:
aws ec2 create-tags --resources ${VPC_ID} \ --tags Key=kubernetes.io/cluster/${CLUSTER},Value=shared --region ${REGION}
$ aws ec2 create-tags --resources ${VPC_ID} \ --tags Key=kubernetes.io/cluster/${CLUSTER},Value=shared --region ${REGION}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez une étiquette à vos sous-réseaux publics:
aws ec2 create-tags \ --resources ${PUBLIC_SUBNET_IDS} \ --tags Key=kubernetes.io/role/elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
$ aws ec2 create-tags \ --resources ${PUBLIC_SUBNET_IDS} \ --tags Key=kubernetes.io/role/elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajouter une balise à vos sous-réseaux privés:
aws ec2 create-tags \ --resources ${PRIVATE_SUBNET_IDS} \ --tags Key=kubernetes.io/role/internal-elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
$ aws ec2 create-tags \ --resources ${PRIVATE_SUBNET_IDS} \ --tags Key=kubernetes.io/role/internal-elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow