본문 바로가기
MSA

7 - 보안 구성

by 젼젼39 2026. 2. 23.

1. 보안 개요

  • 1-1) 보안의 중요성
    • 마이크로서비스 아키텍처(MSA)에서는 서비스가 파편화되어 있고 네트워크를 통한 데이터 이동이 빈번하므로 보안 설계가 매우 복잡하고 중요함
    • 데이터 보호, 인증(Authentication) 및 인가(Authorization), 서비스 간 통신 암호화를 통해 시스템 전체의 신뢰성을 확보해야 함

2. OAuth2 개요

  • 2-1) OAuth2란?
    • 토큰 기반의 인증 및 권한 부여를 위한 업계 표준 프로토콜
    • 클라이언트 애플리케이션이 사용자의 비밀번호를 직접 저장하지 않고도, 권한(Access Token)을 위임받아 리소스에 접근할 수 있게 함
    • 4가지 주요 역할:
      1. 리소스 소유자: 데이터의 주인(사용자)
      2. 클라이언트: 리소스에 접근하려는 앱
      3. 리소스 서버: 실제 데이터가 있는 서버
      4. 인증 서버: 토큰을 발급하는 서버
  • 2-2) OAuth2의 주요 권한 부여 방식 (Grant Types)
    • Authorization Code Grant: 보안이 가장 강력한 방식이며, 서버 사이드 애플리케이션에서 주로 사용
    • Implicit Grant: 별도의 코드 교환 없이 토큰을 직접 받는 방식으로, 현재는 보안 취약점 때문에 권장되지 않음
    • Resource Owner Password Credentials Grant: 사용자 ID/PW를 직접 입력받아 토큰을 얻는 방식
    • Client Credentials Grant: 사용자 개입 없이 시스템 간(M2M) 인증을 위해 클라이언트 자격 증명만 사용하는 방식

3. JWT (JSON Web Token) 가이드

  • 3-1) JWT란?
    • 정보를 JSON 객체 형태로 안전하게 전송하기 위한 자가 포함된(Self-contained) 방식의 토큰
    • 웹 표준(RFC 7519)을 따르며, 점(.)을 구분자로 하는 세 부분으로 구성됨: Header(헤더), Payload(페이로드), Signature(서명).
    • 공식 디버거 사이트: jwt.io
  • 3-2) JWT의 핵심 특징
    • 자가 포함성(Self-contained): 토큰 자체가 사용자 정보와 권한을 담고 있어, 서버가 별도의 세션 상태를 관리할 필요가 없음(Stateless)
    • 간결성(Compact): 문자열이 짧아 HTTP 헤더에 담아 전송하기에 최적화되어 있음
    • 신뢰 및 무결성: 서명(Signature)을 통해 데이터가 위변조되지 않았음을 서버 측에서 즉시 검증할 수 있음

4. MSA 보안 통합 전략

  • API Gateway에서 1차적으로 JWT를 검증하고, 각 마이크로서비스로 요청을 전달할 때 토큰의 클레임 정보를 활용하여 세부 권한을 제어하는 것이 일반적인 전략임

'MSA' 카테고리의 다른 글

9 - 분산추적  (0) 2026.02.23
8 - Config  (0) 2026.02.23
6 - API 게이트웨이  (0) 2026.02.23
5 - 서킷브레이커  (0) 2026.02.23
4 - 로드밸런싱  (0) 2026.02.23