사후 분석: JWKS 캐싱과 서명 키 교체로 인한 인증 실패
2026년 1월 8일(미국 태평양 표준시) 인증 장애에 대한 사후 분석입니다.
날짜: 2026년 1월 8일 (PST)
지속 시간: 약 60분
영향: 일부 운영 테넌트에서 로그인 및 토큰 검증 실패; 콘솔 로그인도 영향 받을 수 있음
요약
회전된 서명 키와 *.logto.io 도메인에 캐시된 JWKS 간의 불일치로 인해 토큰 검증에 실패했습니다. 우리는 JWKS 캐시를 비우고 이전 서명 키로 복원하여 서비스를 복구했습니다.
브라우저 캐시로 인해 일부 사용자는 여전히 콘솔 로그인 문제를 겪을 수 있습니다. 이번 장애로 인한 불편에 대해 사과드립니다.
타임라인 (PST)
- 오후 4:00 장애 발생 (인증/토큰 검증 오류 증가)
- 오후 4:35 근본 원인 식별 (키 회전 중 JWKS 캐싱)
- 오후 4:41 캐시 삭제
- 오후 4:49 서명 키 복원
- 오후 5:00 서비스 복구; 모니터링 지속
장애 상세 내용
영향
장애 시간 동안 일부 사용자는 로그인을 할 수 없었고, 일부 토큰 검증이 실패했습니다. 이는 여러 운영 테넌트에 영향을 주었으며 Logto Console 접근도 차단될 수 있었습니다.
이번 장애와 관련된 무단 접근 증거는 발견되지 않았습니다. 영향은 인증 실패에 국한되었습니다.
사용자 조치
아직도 Logto Console에 로그인할 수 없다면, 다음을 시도해 보세요:
- 시크릿/프라이빗 창 열기, 또는
- 브라우저 캐시 삭제/비활성화 후 다시 시도하기
발생 경위
- 고객 테넌트 도메인(
*.logto.app)에 대해 JWKS 캐싱 설정을 업데이트했습니다. 그러나 JWKS 캐싱이 실수로 클라우드 도메인(*.logto.io)에 그대로 적용되어 있었습니다. - 클라우드 서비스의 서명 키를 회전시켰습니다. 하 지만
*.logto.io에 대한 JWKS 응답이 캐시되어, 일부 클라이언트가 오래된 JWKS를 계속 사용하며 새로 발급된 토큰을 검증하지 못했습니다. *.logto.io에 대해 JWKS 캐시를 삭제하고, 이전 서명 키로 복원한 뒤, 다시 JWKS 캐시를 삭제하여 클라이언트가 복원된 키 집합을 받아가도록 했습니다.- 인증이 복구되었습니다. 일부 사용자는 브라우저 캐시로 인해 여전히 콘솔 로그인 이슈를 겪을 수 있습니다.
교훈
키 회전은 단순한 키 관리 작업이 아닙니다. 이는 발급자와 검증자 간 캐싱 동작도 반드시 고려해야 하는, 엔드투엔드 호환성 변경입니다. 도메인 간(*.logto.app vs *.logto.io) 설정 차이는 실제 위험 요소입니다. 한 도메인에 안전한 변경도 일관되게 적용되지 않으면 다른 도메인에서는 장애를 일으킬 수 있습니다.
기존 통합 테스트는 운영 환경과 같은 JWKS 캐싱 동작을 포함하지 않아, 회전 전에 해당 장애 상황이 재현되지 않았습니다.
예방 조치
도입 예정인 조치:
- 서명 키 회전 흐름에서 JWKS 캐시 무효화를 필수 단계로 추가 (무효화 완료 후에만 키 회전)
- 무효화 프로세스가 자리잡을 때까지 JWKS 캐싱 비활성화 유지, 이후 성능 개선을 위해 재활성화
- JWKS 캐싱 동작 및 캐시 무효화 체크를 포함한 운영 환경과 유사한 키 회전 통합 테스트 구축

