EKSでALBに割り当てたWAFV2のACLが自動で解除される問題

事象

WAFV2のACLIngressで作成したALBにマネコンから割り当てたところ、 20分程した後に設定が解除されてしまいました。

原因を探るため、CloudTrailのイベント履歴を辿ると、 aws-load-balancer-controllerによるDisassociateWebACLの実行が確認できました。

Podも同様のログを吐いています。

kubectl logs <aws-load-balancer-controller-pod> -n kube-system
...
{"level":"info","ts":1687937027.5445116,"logger":"controllers.ingress","msg":"disassociated WAFv2 webACL","resourceARN":"arn:aws:elasticloadbalancing:ap-northeast-1:..."}

原因

github.com

対策

alb.ingress.kubernetes.io/wafv2-acl-arnで指定するのが正しいやり方でした。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: "ingress"
  annotations:
    ...
    alb.ingress.kubernetes.io/wafv2-acl-arn: arn:aws:wafv2:ap-northeast-1: xxxxx:regional/webacl/xxxxxxx/xxxxxxx
kubectl logs <aws-load-balancer-controller-pod> -n kube-system
...
{"level":"info","ts":1688012710.6455188,"logger":"controllers.ingress","msg":"associated WAFv2 webACL","resourceARN":"arn:aws:elasticloadbalancing:ap-northeast-1:...","webACLARN":"arn:aws:wafv2:ap-northeast-1: xxxxx:regional/webacl/xxxxxxx/xxxxxxx"}
...