트러블슈팅

카카오 클라우드 & Kubernetes 환경에 CD 트러블 슈팅 - 3

sowakemeup 2025. 8. 10. 17:52

문제:

젠킨스를 접속해서 새로운 cloud를 생성하는 과정에서

 

HTTP ERROR 403 No valid crumb was included in the request URI:/manage/descriptorByName/org.csanchez.jenkins.plugins.kubernetes.KubernetesCloud/checkServerUrlSTATUS:403MESSAGE:No valid crumb was included in the requestSERVLET:StaplerPowered by Jetty:// 12.0.22

 

cloud를 생성하는 과정에서 위와같은 오류메시지가 창에 떳습니다.

 

원인:

해당 오류는 젠킨스의 보안 기능 때문에 발생하는 흔한 문제입니다.
간단히 말해, 젠킨스가 현재 요청이 정상적인 UI를 통해 들어온 것인지 확신할 수 없을 때 이 오류를 표시합니다.

 

젠킨스 보안 기능 (CSRF Protection):

HTTP ERROR 403 No valid crumb was included in the request

여기서 crumb은 젠킨스가 CSRF(Cross-Site Request Forgery)라는 웹 공격을 막기 위해 사용하는 일종의 ‘비밀 인증 토큰'입니다.

사용자가 UI에서 버튼을 클릭하는 등 어떤 작업을 요청할 때, 브라우저는 이 비밀 토큰(crumb)을 요청에 함께 실어 보냅니다.
젠킨스 서버는 이 토큰을 확인하고 "이 요청은 위조된 게 아니라 우리 웹사이트에서 온 요청이 맞구나"라고 판단하고 작업을 처리합니다.

오류가 발생한 이유는, 어떤 이유로 인해 이 비밀 토큰이 요청에서 누락되었거나 중간에 변조되었기 때문입니다.
로드밸런서(LoadBalancer) 나 리버스 프록시(Reverse Proxy)를 사용하는 환경에서 매우 자주 발생합니다.

 

해결방안:

프록시 호환성 활성화

젠킨스 설정에서 이 문제를 간단히 해결할 수 있는 옵션을 제공합니다.

  1. 젠킨스 대시보드에서 Manage Jenkins > Security로 이동합니다.
  2. CSRF Protection 섹션을 찾습니다.
  3. Enable proxy compatibility(프록시 호환성 활성화) 옵션에 체크합니다.
  4. 페이지 하단의 [Save] 버튼을 눌러 설정을 저장합니다.

 

옵션은 프록시 환경에서 CSRF 토큰이 올바르게 전달될 있도록 도와줍니다.