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정책으로 구성해서 서비스가 통신하려면 명시적 권한을 요구하도록 해요.