프로젝트

일반

사용자정보

Actions

업무 #444

진행중
HP JL

GoTrue proxy guard — /monitor/api/auth/gotrue/* 운영 외부 노출 차단

업무 #444: GoTrue proxy guard — /monitor/api/auth/gotrue/* 운영 외부 노출 차단

Henry Park이(가) 약 6시간 전에 추가함.

상태:
신규
우선순위:
높음
담당자:
목표버전:
시작일:
2026/05/13
완료일:
진척도:

0%

추정시간:

설명

배경

Phase 0.7 Section A (User/GoTrue) 구현 시 주가한 GoTrue proxy /monitor/api/auth/gotrue/{signup,login,refresh} (commit:server|e77e776) 가 /monitor/* 와 함께 public route 로 열려 있다. 운영 (https://edge-rpc.alphea.io) 에서도 누구나 같은 origin 으로 호출 가능하므로, 실질적으로 내부 GoTrue 컨테이너(:9011) 를 외부에 proxy 하는 효과가 된다.

운영에 남아 있으면 안 되는 상태 — #443 (Phase 0.7 MVP) 구현/검증 종료 전 또는 동시에 가드를 추가해서 없애야 한다.

현재 상태

  • 파일: alphea-rpc/internal/handler/webconsole_test_client_gotrue.go
  • 파일 상단에 SECURITY / OPERATIONS NOTE 주석 달림 (다음 이슈 = 이 이슈)
  • admin web 의 동등 proxy(internal/admin/gotrue.go) 는 admin SAML/Basic Auth 뒤에 있어 보호됨 — 참고

옵션

(a) MONITOR_TEST_CLIENT_ENABLED env 가드

  • 기본 OFF (운영), dev/스테이징에서만 true 로 키면 endpoint 공개
  • OFF 일 때 /monitor/api/auth/gotrue/* 와 /monitor/test-client 페이지 자체도 404
  • 장점: 가장 간단. 단일 환경 변수로 제어
  • 단점: dev/스테이징에서는 그대로 공개 (특별한 인증 없이). 이더라도 dev/staging 은 VPN 뒤에 있다면 OK

(b) admin SAML/Basic Auth 뒤로 이동

  • test client 자체도 같이 이동 (admin web 에 편입) 아니면 origin 분리로 CORS 문제 부활
  • 장점: 이미 검증된 보호 계층 재사용
  • 단점: 구현 양 큼. Phase 0.7 구현 순서 1단계 자리를 이동해야 함

(c) Rate limit / IP allowlist

  • 외부 개방하되 brute-force 차단
  • (a) 와 병행 가능

제안

(a) MONITOR_TEST_CLIENT_ENABLED env 가드 가 가장 가벼운 조치. dev/스테이징 (10.62.10.x) 은 VPN 뒤에 있으므로 관론으로시 충분. (b)/(c) 는 필요해지면 후속.

DoD

  • MONITOR_TEST_CLIENT_ENABLED env 추가 (config 기본값 false)
  • false 일 때 /monitor/test-client + 3개 gotrue proxy endpoint 모두 404
  • dev/CI 로컬 환경에서 이 env 를 true 로 키면 기존 sdktest+webconsole 검증 그대로 동작
  • webconsole_test_client_gotrue.go 의 SECURITY / OPERATIONS NOTE 주석 갱신 (가드 도입됨을 반영)
  • PROJECT_STATUS 부채 표에서 해당 항목 제거

관련 이슈

  • #443 Phase 0.7 MVP (proxy 가 만들어진 원인)
  • #441 sdktest (구현 결정 시 dev 루프 검증 필요)

HP Henry Park이(가) 6달 전에 변경 Actions #1

TODO 마커 + 부채 표 등록

commit:server|e1ab575

  • webconsole_test_client_gotrue.go 상단의 SECURITY 주석을 TODO(#444) 로 격상. "운영 도메인에 남기면 안 됨" 명시
  • PROJECT_STATUS.md 부채 표에 이 이슈 항목 궁연계 (🟡 → 🔴, 이슈 번호 명시)
  • 메모리에도 기록

구현 시점은 #443 (Phase 0.7 MVP) 의 서버 RPC 구현 진행 중 또는 직후. 이 이슈가 해결되고 운영 배포에 반영되기 전에는 운영 도메인에서 /monitor/api/auth/gotrue/* 공개되어 있다는 점 인지 필요.

Actions

내보내기 PDF Atom