IL-0405 PortSwigger · 2026-01-11kubernetesawsnetworking
AWS Load Balancer Controller 의 webhook 인증서가 만료돼 US·Canada 지역의 BSEE SaaS 인스턴스가 전부 멈췄다
PortSwigger 는 2025년 11월 28일 AWS Load Balancer Controller 를 v1.14.1 에서 v1.16.0 으로 올렸다. v1.15.0 에서 Helm 차트가 인증서를 관리하는 방식이 바뀌었고, 그 결과 webhook 용 TLS Secret 이 소유자 없이 남았다. 이 Secret 을 소유하던 Certificate 객체가 더는 없었으므로 cert-manager 는 인증서를 갱신하지 못했다.
Secret 안의 인증서는 2026년 1월 8일에 만료됐다. webhook 인증서는 로드 밸런서의 대상 그룹을 설정하는 데 필요하다. 인증서가 만료되자 webhook 검증이 실패해 컨트롤러가 AWS Target Group 설정을 갱신하지 못했고, 결국 healthy 상태인 대상이 하나도 남지 않았다. 1월 11일 10:00 UTC 부터 US 와 Canada 지역의 BSEE SaaS 인스턴스가 전부 쓸 수 없게 됐고, 고객은 Web UI 에 들어가거나 스캔을 시작하지 못했다.
1월 12일 09:52 UTC 에 고객이 지원 창구로 문제를 알렸고, Platform Team 이 10:00 UTC 에 조사를 시작했다. 팀은 US 와 Canada 클러스터에서 소유자가 사라진 aws-load-balancer-tls Secret 을 지우고 Helm 으로 컨트롤러 설정을 다시 배포했다. 새 인증서가 만들어지고 webhook 이 동작하자 10:40 UTC 에 서비스가 돌아왔다. 장애는 약 24시간 40분 이어졌고 고객 데이터 손실은 없었다.
- 심각도
- –
- 영향 범위
- All BSEE SaaS instances in the US and Canada regions: customers could not access the Web UI or start scans
- 영향 사용자
- US and Canada region customers; 2 support cases raised
- 지역
- US and Canada regions
- 감지까지
- 23h 52m
- 복구까지
- 24h 40m
증상
US 와 Canada 지역 고객이 BSEE SaaS 인스턴스의 Web UI 에 들어가지 못했고 스캔도 시작하지 못했다. 엔지니어는 고객이 지원 창구로 알려 온 뒤에야 장애를 알았다.
영향은 2026년 1월 11일 10:00 UTC 에 webhook 실패가 서비스 가용성을 떨어뜨리면서 시작됐다. 고객 신고는 하루 가까이 지난 1월 12일 09:52 UTC 에 들어왔고, 지원 문의는 모두 두 건이었다.
Platform Team 은 영향을 받은 클러스터들에서 AWS Load Balancer Controller webhook 인증서가 만료된 것을 찾았다. 인증서는 1월 8일에 이미 만료돼 있었다. webhook 검증이 실패해 컨트롤러가 AWS Target Group 설정을 갱신하지 못했고, 결국 healthy 상태인 대상이 하나도 남지 않았다.
원인
- 촉발
- PortSwigger 는 2025년 11월 28일 AWS Load Balancer Controller 를 v1.14.1 에서 v1.16.0 으로 올렸다. v1.15.0 의 Helm 차트가 인증서를 관리하는 방식을 바꿨고, 이 업그레이드 뒤에 소유자가 사라진 webhook 용 TLS Secret 이 남았다.
감지
엔지니어는 고객이 지원 창구로 신고한 뒤에야 장애를 알았다. 신고는 2026년 1월 12일 09:52 UTC 에 들어왔고, 영향이 시작되고 23시간 52분이 지난 때였다.
조치
- US 와 Canada 클러스터에서 소유자가 사라진 aws-load-balancer-tls Secret 을 지웠다.
- Helm 으로 AWS Load Balancer Controller 설정을 다시 배포했다.
- 인증서가 새로 만들어졌는지, webhook 이 제대로 동작하는지 확인했다.
후속 조치
- 모든 클러스터에서 소유자인 Certificate 리소스가 사라진 Secret 을 찾아 정리한다.
- SaaS 클러스터마다 외부 프로브가 애플리케이션에 접속할 수 있는지 확인하고, 접속하지 못하면 알림을 보내게 한다.
교훈
–
출처
참고 문서
관련 사례
IL-0522ingress-nginx Helm 차트 패치 업그레이드 뒤 jenkins.io 의 Ingress 가 지워져 사이트가 HTTP/503 을 냄Jenkins project · 2021같은 원인 · 공통 어드미션 웹훅, 인그레스 컨트롤러, Helm
IL-0098ingress-nginx 에서 nginx-ingress 로 옮긴 뒤 같은 호스트를 나눠 쓰는 인그레스들의 동작이 바뀌어 cert-manager 가 새 TLS 인증서를 받지 못했다.2i2c · 2026같은 원인 · 공통 인그레스 컨트롤러, cert-manager
IL-0203클러스터 시스템 업데이트 뒤 AWS Load Balancer Controller 가 실패해 새 파드가 ALB 에 등록되지 않았고, Honeycomb EU1 의 수집과 UI 가 11분 동안 멈췄다Honeycomb · 2024같은 원인 · 공통 클라우드 로드 밸런서, 인그레스 컨트롤러
IL-0090ModSec 인그레스 컨트롤러 모듈을 v3.33.0 으로 올린 뒤 검증 웹훅 호출이 x509 인증서 오류로 실패해, 모든 인그레스 생성과 변경이 막히고 사용자 애플리케이션 배포가 멈췄다.UK Ministry of Justice · 2021같은 원인 · 공통 어드미션 웹훅, 인그레스 컨트롤러
IL-0092ingress-nginx 를 1.12.0 에서 1.14.3 으로 올리자 새 ModSecurity 와 OWASP Core Rule Set 이 정상 요청을 오탐으로 막아 HMPPS 사용자가 인증하지 못했다.UK Ministry of Justice · 2026같은 원인 · 공통 인그레스 컨트롤러
IL-0101자동 업그레이드를 꺼 둔 GKE 클러스터의 컨트롤 플레인이 지원 종료 기한에 1.33.2 로 강제 업그레이드된 뒤 새 노드가 모두 초기화에 실패해, 오토스케일링과 스팟 노드 복구가 15시간 멈췄다.Wealthy · 2025 · sev1같은 원인 · 공통 컨피그맵과 시크릿
IL-0079GKE 노드가 새 ubuntu_containerd 이미지로 자동 업그레이드된 뒤 커널에서 kube-proxy 가 쓰는 iptables 확장이 빠져, 여러 GKE 클러스터의 인그레스 트래픽이 완전히 끊겼다.Altinity · 2025같은 원인 · 공통 클라우드 로드 밸런서
IL-0117인그레스 업그레이드가 네트워크 컨트롤 플레인 회귀를 일으켜 데이터 플레인이 잠깐 끊겼고, 한꺼번에 재시작한 서비스들이 백엔드 저장소에 과부하를 일으켜 OpenAI API 오류가 늘었다OpenAI · 2024같은 원인 · 공통 인그레스 컨트롤러
IL-0180GKE 컨트롤 플레인이 1.22 에서 1.23 으로 자동 업그레이드되면서 v1beta1 API 를 쓰던 Istio 1.7.4 가 제대로 동작하지 않았다Sunwoo Park · 2023같은 원인 · 공통 어드미션 웹훅
IL-0060쿠버네티스 1.24 업그레이드로 node-role.kubernetes.io/master 레이블이 사라지자 이 레이블에 기대던 Calico 라우트 리플렉터가 동작을 멈춰 레거시 클러스터의 네트워크가 모두 끊기고 Reddit 이 314분 동안 멈췄다Reddit · 2023같은 원인 · 공통 어드미션 웹훅
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0405
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0405/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.