2025. 2. 28. 16:28ㆍSpring Microservice
📌 마이크로서비스 보안 패턴(Microservice Security Patterns)
마이크로서비스는 공개된 상태로 운영될 경우 보안 위협에 노출될 가능성이 크므로, 인증(Authentication)과 인가(Authorization)를 적절히 적용해야 합니다.
📌 아래 그림에서는 마이크로서비스 보안을 강화하기 위한 3가지 핵심 패턴을 설명합니다.
🔹 1. 인증(Authentication)
- 사용자가 요청을 보낼 때, 해당 사용자가 신뢰할 수 있는 사용자임을 확인하는 과정.
- 사용자는 인증 서비스(Authentication Service)를 통해 로그인하고 액세스 토큰(Access Token)을 발급받아야 함.
- 마이크로서비스는 API Gateway를 통해 들어오는 요청이 유효한지 확인해야 함.
✅ 대표적인 인증 방식
✔ OAuth2 – 사용자가 ID/PW를 직접 입력하는 대신, 액세스 토큰을 활용하여 인증.
✔ JWT (JSON Web Token) – 토큰 기반 인증 방식으로 서비스 간 요청을 인증할 때 활용.
✔ Keycloak – 오픈소스 인증 서버로 OAuth2, OpenID Connect, SAML 등 지원.
🔹 2. 인가(Authorization)
- 인증된 사용자가 요청하려는 리소스에 접근할 권한이 있는지 확인하는 과정.
- 특정 사용자는 일부 API에만 접근 가능하도록 제한할 수 있음.
- API Gateway에서 역할 기반 접근 제어(Role-Based Access Control, RBAC) 적용 가능.
✅ 대표적인 인가 방식
✔ Role-Based Access Control (RBAC) – 사용자의 역할(Role)에 따라 접근을 제어.
✔ Attribute-Based Access Control (ABAC) – 특정 속성(Attribute)을 기반으로 접근을 제어.
✔ OAuth2 Scopes – API 별로 읽기(read), 쓰기(write), 삭제(delete) 등의 권한을 설정 가능.
🔹 3. 자격 증명 관리 및 전파(Credential Management & Propagation)
- 사용자가 서비스 호출 시 매번 자격 증명을 다시 입력하지 않고, 기존의 인증 정보를 유지하는 방법.
- OAuth2 및 JWT를 사용하여 한 번 인증한 토큰을 여러 서비스 간에 전달.
- API Gateway가 토큰을 검사하여 요청을 적절한 서비스로 라우팅.
✅ JWT의 장점
✔ 토큰을 통한 인증으로 세션을 유지할 필요 없음 (Stateless 인증).
✔ 서비스 간 토큰을 전달하여 별도의 로그인 없이 요청 가능.
✔ 서버 부하 감소 – 세션을 유지하는 별도 저장소가 필요 없음.
📌 위 그림의 흐름 정리
1️⃣ 사용자(User) → 인증 서비스(Authentication Service)에 로그인하여 토큰을 발급받음.
2️⃣ 클라이언트(Client) → API Gateway에 요청을 보낼 때 토큰을 포함하여 요청.
3️⃣ API Gateway → 토큰을 확인하고 요청을 Eureka를 통해 적절한 마이크로서비스로 전달.
4️⃣ 마이크로서비스 → 토큰이 유효한지 확인한 후 요청을 처리하고 응답을 반환.
📌 Summary
보안 패턴 | 설명 | 대표적인 구현 방식 |
---|---|---|
인증(Authentication) | 사용자가 신뢰할 수 있는 사용자임을 확인 | OAuth2, JWT, Keycloak |
인가(Authorization) | 사용자가 특정 리소스에 접근할 권한이 있는지 확인 | RBAC, ABAC, OAuth2 Scopes |
자격 증명 관리 및 전파(Credential Management & Propagation) | 서비스 간 요청 시 토큰을 유지하여 재인증 필요 없음 | JWT, OAuth2 Access Token |
📌 결론
마이크로서비스 환경에서는 보안이 최우선 요소이며, 올바른 인증 및 인가 시스템을 구축해야 합니다.
✔ OAuth2 및 JWT를 활용하여 인증(Authentication) 및 권한 부여(Authorization)를 수행하고,
✔ API Gateway에서 보안 정책을 적용하여 인가된 요청만 서비스에 전달하며,
✔ 자격 증명을 관리하여 서비스 간 안전한 토큰 전파가 가능하도록 설계하면,
💡 보안성이 강화된 마이크로서비스 아키텍처를 구축할 수 있습니다. 🚀
'Spring Microservice' 카테고리의 다른 글
Application metrics pattern (0) | 2025.02.28 |
---|---|
Microservice logging and tracing patterns (0) | 2025.02.28 |
Microservice routing patterns (0) | 2025.02.28 |
Core microservice development pattern (0) | 2025.02.28 |
Microservices Patterns (0) | 2025.02.28 |