DOCS/journey/troubleshooting/251117_jwt_secret_key_mismatch_fix.md
Claude-51124 4ca73f20e6 docs: 민감 정보 하드코딩 제거 작업 기록
- 기존 JWT_SECRET_KEY 문서 확장
- 2025-12-06 민감 정보 기본값 전면 제거 작업 추가
- 원칙 문서 참조 명시 (311, AGENTS.md)
- 다음 작업 시 원칙 준수 가이드 제공
2025-12-06 12:50:06 +09:00

2.3 KiB

민감 정보 하드코딩 제거

날짜: 2025-11-17, 2025-12-06 작성자: admin 관련 파일: 아래 수정 파일 목록 참조


문제 상황

2025-11-17: JWT Secret Key 불일치

  • 프론트엔드 메시지 전송 401 에러, 관리자 페이지 API 401 에러
  • robeing-gateway: docker-compose.yml에 잘못된 JWT_SECRET_KEY 하드코딩
  • admin-dashboard-backend: 코드에 JWT_SECRET_KEY 하드코딩

2025-12-06: 민감 정보 기본값 전면 제거

  • 코드와 docker-compose.yml에 API 키, 토큰, 비밀번호 기본값 하드코딩 다수 발견
  • 환경변수 미설정 시에도 기본값으로 동작하여 보안 리스크

해결 방안

2025-11-17 수정

  • robeing-gateway/docker-compose.yml: JWT_SECRET_KEY 하드코딩 제거
  • admin-dashboard-backend: JWT_SECRET_KEY 기본값 제거

2025-12-06 수정

  • rb8001/app/auth.py:10: JWT_SECRET_KEY 기본값 제거, 환경변수 필수 검증 추가
  • skill-slack/app/core/config.py:27-28: SERVICE_API_KEY, JWT_SECRET_KEY를 Optional로 변경
  • rb8001/app/commands/skill_commands.py:23: SERVICE_API_KEY 기본값 제거
  • rb8001/docker-compose.yml:33,62: NEO4J_PASSWORD, TAVILY_API_KEY 하드코딩 제거, 환경변수 참조로 변경
  • rb8001/tests/e2e_intent_improvement_experiment.py:59: JWT_SECRET_KEY 기본값 제거
  • skill-rag-file/app/core/config.py:16: DATABASE_URL 기본값 제거
  • skill-slack/docker-compose.yml:20-21: SERVICE_API_KEY, JWT_SECRET_KEY 기본값 제거

원칙 문서 반영

  • DOCS/book/300_architecture/311_FastAPI_구조_원칙.md:207: "코드에 API 키, 토큰, 비밀번호 등 민감 정보를 기본값/백업 값으로 직접 하드코딩" 금지 규칙 추가
  • AGENTS.md:135: "민감 정보 하드코딩 금지" 규칙 추가

교훈

민감 정보는 환경변수 필수

  • 코드나 docker-compose.yml에 기본값으로 하드코딩하면 Git에 노출될 수 있음
  • 환경변수 미설정 시 명확한 에러 메시지로 조기 발견 가능
  • 원칙: 311_FastAPI_구조_원칙.md 섹션 12, AGENTS.md 설정 관리 섹션 참고

체크리스트

  • 코드에서 os.getenv("KEY", "default-secret") 패턴 확인
  • docker-compose.yml에서 ${KEY:-default-value} 패턴 확인
  • config.py에서 민감 정보 기본값 확인
  • 환경변수 필수 검증 로직 추가