6.3. サンプルアプリケーションのデプロイ
サンプルアプリケーション用に新しいプロジェクトを作成します。
oc new-project hello-world
$ oc new-project hello-world
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 事前に作成済みのサービスリソースを 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 AWS Load Balancer Operator を使用して AWS ALB をデプロイします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS ALB Ingress エンドポイントを curl して、Hello World アプリケーションにアクセスできることを確認します。
注記AWS ALB のプロビジョニングには数分かかります。
curl: (6) Could not resolve host
というエラーが表示された場合は、待機してから再試行してください。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 出力例
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.1. AWS WAF の設定 リンクのコピーリンクがクリップボードにコピーされました!
AWS WAF サービスは Web アプリケーションファイアウォールです。Red Hat OpenShift Service on AWS などの保護対象の Web アプリケーションリソースに転送される HTTP および HTTPS 要求を監視、保護、制御できます。
Web ACL に適用する AWS WAF ルールファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、コア (共通) および SQL AWS マネージドルールセットが有効になります。
上記で指定したルールを使用して、AWS WAF の Web ACL を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ingress リソースに 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 ルールが反映されるまで 10 秒待ち、アプリケーションがまだ動作するかテストします。
curl "http://${INGRESS}"
$ curl "http://${INGRESS}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WAF が不正な要求を拒否することをテストします。
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 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記AWS WAF 統合の有効化には数分かかる場合があります。
403 Forbidden
エラーが表示されない場合は、数秒待ってからもう一度お試しください。予期される結果は
403 Forbidden
エラーです。このエラーが返されれば、アプリケーションは AWS WAF によって保護されています。