Microservice security patterns

2025. 2. 28. 16:28Spring Microservice

📌 마이크로서비스 보안 패턴(Microservice Security Patterns)

마이크로서비스는 공개된 상태로 운영될 경우 보안 위협에 노출될 가능성이 크므로, 인증(Authentication)과 인가(Authorization)를 적절히 적용해야 합니다.
📌 아래 그림에서는 마이크로서비스 보안을 강화하기 위한 3가지 핵심 패턴을 설명합니다.

출처 : Spring Microservice in Action 2nd Edition

🔹 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