Is there k8s annotation for enabling shield protection for ELB (not ALB)?

5/14/2021

So my current .yaml config includes:

apiVersion: v1
kind: Service
metadata:
  name: echo-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.acm.arn }}
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    alb.ingress.kubernetes.io/shield-advanced-protection: 'true' # I need to add this line but for ELB

I found this alb.ingress.kubernetes.io/shield-advanced-protection: 'true' on https://kubernetes-sigs.github.io/aws-load-balancer-controller/guide/ingress/annotations/#shield-advanced-protection but I'm wondering what can I do for ELB.

What I tried is to create this echo service:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echo-server
  template:
    metadata:
      labels:
        app: echo-server
    spec:
      containers:
        - name: echo-server
          image: jmalloc/echo-server
          ports:
            - name: http-port
              containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: echo-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    # copied from other service
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:%secret
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    alb.ingress.kubernetes.io/shield-advanced-protection: 'true'
spec:
  ports:
    - name: http-port
      port: 80
      targetPort: http-port
      protocol: TCP
  selector:
    app: echo-server
  type: LoadBalancer

via kubectl apply -f echo-service.yaml and then I can see a new Load Balancer in AWS UI but when I open Shield tab, I can't see anything still.

-- Alex Ivanov
amazon-elb
amazon-web-services
kubernetes

0 Answers