Consul 보안 아키텍처

Consul 보안 아키텍처 (Consul Security Architecture)

이 페이지는 사용자와 컨트롤 플레인의 Consul 에이전트 간 통신, 그리고 애플리케이션 데이터 플레인의 서비스 간 통신을 보호하는 Consul 아키텍처의 구성 요소를 소개해요.

출처: 문서

본문

이 페이지는 사용자, 컨트롤 플레인의 Consul 에이전트, 그리고 애플리케이션 데이터 플레인의 서비스 간 통신을 보호하는 Consul 아키텍처의 구성 요소를 소개해요.

컨트롤 플레인 (Control plane)

Consul 에이전트는 Consul 데이터센터 내 통신을 보호하기 위해 다음 보안 기능과 프로토콜을 사용해요.

보안 기능 기본 활성화 설명
액세스 제어 목록(ACL) ❌ Consul 에이전트 간 통신을 보호하고 API, CLI, UI에 대한 액세스를 제어해요.
에이전트 TLS 암호화 ❌ 내장 CA를 사용한 TLS 인증서로 Consul 서버와 클라이언트 에이전트를 검증해요.
가십(Gossip) 암호화 ✅ 클러스터 멤버십을 관리하고 메시지를 브로드캐스트하는 에이전트 간 통신을 암호화해요.
SSO/Auth 메서드 통합 ❌ 사용자가 Consul CLI와 UI에 연결할 때 기존 OIDC와 RBAC 컨트롤을 활용해요.

데이터 플레인 (Data plane)

Consul이 애플리케이션 데이터 플레인에서 실행하는 워크로드 에이전트는 기본적으로 활성화되지 않는 추가 보안 기능을 제공해요. 이 기능들은 서비스 메시에 게이트웨이와 사이드카 프록시로 배포된 Envoy 프록시에 의해 적용돼요.

보안 기능 설명
Consul API 게이트웨이 서비스 네트워크의 사용자 및 애플리케이션 인그레스(ingress)를 보호해요.
mTLS 인증 기관(CA) 내장 CA를 사용한 TLS 인증서로 인바운드 및 아웃바운드 서비스 트래픽을 검증해요.
서비스 의도(Service intentions) 서비스 간 통신을 서비스 사이에 명시적으로 정의된 경로로 제한해요.
JWT 토큰 지원 JSON 웹 토큰을 사용해 사이드카 프록시에 추가 검증 단계를 요구해요.

모범 사례 (Best practices)

Consul 배포와 그 위에서 동작하는 서비스 메시 애플리케이션의 보안을 유지하려면 다음 모범 사례를 따르는 것을 권장해요.

  • ACL, TLS 암호화, 가십 암호화로 Consul 데이터센터를 보호해요. 배포하는 모든 고유 데이터센터는 각 시스템을 부트스트랩해야 해요.
  • mTLS 암호화와 서비스 의도로 서비스 메시를 보호해요.
  • 서비스 의도를 default: deny 정책으로 구성해서 서비스가 통신하려면 명시적 권한을 요구하도록 해요.

더 알아보기 (Learn more)