7.3. Déployer un exemple d’application
Créez un nouveau projet pour notre exemple d’application:
oc new-project hello-world
$ oc new-project hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Déployez une application hello world:
oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
$ oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Convertissez la ressource de service pré-créée en un type de service NodePort:
oc -n hello-world patch service hello-openshift -p '{"spec":{"type":"NodePort"}}'
$ oc -n hello-world patch service hello-openshift -p '{"spec":{"type":"NodePort"}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Déployer un AWS ALB à l’aide de l’opérateur AWS Load Balancer:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Curl le point de terminaison AWS ALB Ingress pour vérifier l’application hello world est accessible:
NoteAWS ALB provisioning prend quelques minutes. Lorsque vous recevez une erreur qui dit curl: (6) Ne peut pas résoudre l’hôte, s’il vous plaît attendre et essayer à nouveau.
INGRESS=$(oc -n hello-world get ingress hello-openshift-alb -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') curl "http://${INGRESS}"
$ INGRESS=$(oc -n hello-world get ingress hello-openshift-alb -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') $ curl "http://${INGRESS}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.3.1. Configurer l’AWS WAF Copier lienLien copié sur presse-papiers!
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.
Créer un fichier de règles AWS WAF pour s’appliquer à notre ACL web:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela activera les jeux de règles gérés Core (Common) et SQL AWS.
Créer un AWS WAF Web ACL en utilisant les règles que nous avons spécifiées ci-dessus:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Annotez la ressource Ingress avec AWS WAF Web ACL ARN:
oc annotate -n hello-world ingress.networking.k8s.io/hello-openshift-alb \ alb.ingress.kubernetes.io/wafv2-acl-arn=${WAF_ARN}
$ oc annotate -n hello-world ingress.networking.k8s.io/hello-openshift-alb \ alb.ingress.kubernetes.io/wafv2-acl-arn=${WAF_ARN}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Attendez 10 secondes pour que les règles se propagent et testent que l’application fonctionne toujours:
curl "http://${INGRESS}"
$ curl "http://${INGRESS}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Essayez que la WAF nie une mauvaise demande:
curl -X POST "http://${INGRESS}" \ -F "user='<script><alert>Hello></alert></script>'"
$ curl -X POST "http://${INGRESS}" \ -F "user='<script><alert>Hello></alert></script>'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteL’activation de l’intégration AWS WAF peut parfois prendre plusieurs minutes. Dans le cas où vous ne recevez pas une erreur 403 interdite, veuillez attendre quelques secondes et essayer à nouveau.
Le résultat attendu est une erreur 403 interdite, ce qui signifie que le WAF AWS protège votre application.