Ingress 라우팅
GenD는 단일 도메인 gend.genon.ai 에 path-prefix 라우팅을 적용해 다수의 백엔드 서비스를 한 ingress-nginx로 노출합니다. 인증 경계는 3가지 패턴으로 구분됩니다 — 직접 JWT 검증(API), oauth2-proxy ForwardAuth(BI/노트북 류), Native OIDC(Grafana/Weaviate).
라우팅 맵
인증 패턴 비교
| 패턴 | 사용 서비스 | 장점 | 주의 |
|---|---|---|---|
| 직접 JWT | gend-api | 가장 단순, JWKS 캐시 | audience 검증 필수 |
| ForwardAuth (oauth2-proxy) | Dagster, Trino UI, Jupyter, Superset, Code-server | 백엔드 코드 수정 불필요 | 토큰 검증 hop 1회 추가 |
| Native OIDC | Grafana, Weaviate | 백엔드가 직접 검증, sub_path 자유 | 서비스별 OIDC 클라이언트 필요 |
Ingress 분리 (gend-ingress vs gend-ingress-keycloak)
/auth/* 는 별도 Ingress로 분리되어 있습니다 — 이유는 ModSecurity OWASP CRS 규칙이 Keycloak 폼 제출(POST application/x-www-form-urlencoded) 을 위양성 차단하기 때문입니다.
| Ingress | path | ModSecurity |
|---|---|---|
gend-ingress | /api, /, /dagster, /grafana, … | 비활성 (PUT/DELETE JSON 차단 #608) |
gend-ingress-keycloak | /auth/* | 커스텀 룰 제거 (920350·942100·941100·932100 SecRuleRemoveById) |
ModSecurity 비활성 사유
GenD API는 RESTful PUT/DELETE를 광범위하게 사용하지만 ModSecurity 기본 룰셋이 일부 JSON body 패턴을 SQLi/XSS로 오탐합니다. 운영에서 위양성을 잡는 비용보다 비활성이 합리적이라 판단했습니다 (#608).
관련 문서
- Keycloak SSO —
/auth/*백엔드 설정 - JWT 토큰 —
/api/*인증 검증 - 모니터링 —
/grafana,/dagster대시보드 접근