반응형



API Gateway(API gateway) 인증 구조는 한 줄로 말하면:
모든 외부 요청의 인증·인가·보안 처리를
MSA 앞단에서 중앙화하는 구조
다.
왜 API Gateway가 필요하냐?
MSA 환경에서는:
서비스 수십~수백 개
존재.
예:
- user-service
- order-service
- payment-service
- inventory-service
문제
각 서비스마다:
- JWT 검증
- Rate Limit
- 로깅
- CORS
- 인증
전부 구현하면 중복 지옥.
그래서 등장
API Gateway
기본 구조
Client
↓
API Gateway
↓
MSA Services
Gateway 역할
엄청 많다.
기능설명
| 인증(Authentication) | JWT 검증 |
| 인가(Authorization) | 권한 체크 |
| Routing | 서비스 전달 |
| Rate Limit | 요청 제한 |
| Logging | 중앙 로그 |
| WAF | 보안 |
| CORS | 브라우저 정책 |
가장 중요한 건 인증 중앙화
전체 인증 흐름
1. 로그인
2. JWT 발급
3. API 호출
4. Gateway 검증
5. 내부 서비스 전달
STEP 1 — 로그인
사용자는:
- OAuth2
- OIDC
- Login API
등으로 로그인.
인증 서버(IdP)가 JWT 발급
예:
{
"sub":"123",
"role":"ADMIN"
}
STEP 2 — API 요청
Authorization: Bearer JWT
STEP 3 — Gateway JWT 검증
Gateway가:
서명 검증
만료 확인
Issuer 확인
수행.
여기서 중요
보통:
Gateway가 Public Key 보유
한다.
즉:
JWT 위조 여부 검증
가능.
STEP 4 — 사용자 정보 추출
Gateway가:
- userId
- role
- scope
등 읽음.
STEP 5 — 내부 서비스 전달
예:
X-User-Id: 123
X-Role: ADMIN
추가 가능.
그래서 내부 서비스는 단순화 가능
그런데 중요한 현실
Gateway만 믿으면 위험
하다.
왜?
내부 서비스 직접 호출 가능할 수 있음.
그래서 실무에서는
Gateway 검증
+
서비스 자체 검증
둘 다 하는 경우 많다.
Zero Trust 방향
현대 구조는:
내부망도 신뢰 안 함
즉 서비스도 JWT 재검증 가능.
Gateway 인증 방식 종류
1. JWT 검증 방식
가장 흔함.
Gateway가:
JWT Signature 검증
만 수행.
장점
빠름.
단점
권한 변경 즉시 반영 어려움.
2. Introspection 방식
OAuth2 표준.
OAuth 2.0 Token Introspection
Gateway가 매 요청마다
인증 서버에:
"이 토큰 살아있나?"
질문.
장점
즉시 revoke 가능.
단점
느림.
현실은 혼합
보통:
JWT 자체 검증
+
Redis blacklist
조합.
API Gateway 대표 제품
제품특징
| Kong | 가장 유명 |
| NGINX Gateway | Nginx 기반 |
| Spring Cloud Gateway | Spring |
| Apigee | |
| AWS API Gateway | AWS |
Spring Cloud Gateway
Spring 실무 많이 사용.
JWT 필터 예시
public class JwtFilter
extends GatewayFilterFactory {
}
보통 여기서:
- JWT 검증
- 사용자 추출
처리.
Gateway에서 자주 하는 것
1. Rate Limiting
예:
IP당 초당 10회
2. WAF 연동
SQL Injection/XSS 차단.
3. TLS Termination
HTTPS 종료.
4. Central Logging
모든 요청 추적.
Gateway의 위험
중요.
단일 장애점(SPOF)
Gateway 죽으면:
전체 서비스 영향
그래서 보통 HA 구성
- Load Balancer
- Multi Instance
사용.
Gateway만 권한 처리하면 안 되는 이유
예:
/admin 접근 허용
Gateway에서 했더라도,
내부 서비스 직접 접근 가능하면 위험.
그래서 서비스도 검증
@PreAuthorize("hasRole('ADMIN')")
같이 추가.
실무 추천 구조
외부 사용자
OAuth2/OIDC 로그인
Gateway
JWT 검증
RateLimit
WAF
Logging
내부 서비스
세부 권한 검증
서비스 간
mTLS/JWT
핵심 한 줄
API Gateway 인증 구조는:
모든 외부 요청을 Gateway가 먼저 받아
JWT/OAuth2 기반 인증·보안·라우팅을 중앙 처리하고,
필요 시 각 마이크로서비스도 추가 검증을 수행하는
MSA 중심의 인증 아키텍처
다.
반응형
'system_fundamentals > security_cryptography' 카테고리의 다른 글
| Kubernetes Secret 문제 (0) | 2026.05.20 |
|---|---|
| TLS 종료 위치 (0) | 2026.05.20 |
| MSA 환경 JWT 문제 (0) | 2026.05.20 |
| 대규모 서비스의 인증 구조 (0) | 2026.05.20 |
| WAF (0) | 2026.05.20 |
댓글