보안 서비스 메시 개요
보안 서비스 메시 개요 (Secure Service Mesh Overview)
이 주제는 Consul을 사용해 서비스 메시 내 서비스 간 통신을 보호하는 방법에 대한 개요를 제공해요. mTLS 인증 기관과 서비스 ID 기반 의도를 구성해 메시 내 통신을 보호할 수 있어요.
출처: 문서
본문
이 주제는 Consul을 사용해 서비스 메시 내 서비스 간 통신을 보호하는 방법에 대한 개요를 제공해요. mTLS 인증 기관과 서비스 ID 기반 의도를 구성해 메시 내 통신을 보호할 수 있어요.
가십 암호화와 액세스 제어 목록(ACL) 시스템으로 Consul 배포를 보호하는 방법은 Consul Operations 섹션의 Consul 보안을 참고해요.
소개 (Introduction)
Consul에서 완전히 구성된 서비스 메시는 다음 방식으로 서비스 간 통신을 보호하여 제로 트러스트 보안(zero-trust security) 을 적용하는 것입니다:
- 사이드카 프록시는 Consul이 서명한 mTLS 인증서를 사용해 서비스의 트래픽을 암호화하고 복호화해요.
- 사이드카 프록시는 기본적으로 들어오는 요청을 거부해요.
- 사이드카 프록시는 명시적으로 정의된 서비스 의도에 따라 들어오는 요청을 인가해요.
인증 기관 (Certificate authority)
Consul 서버에는 mTLS 인증서를 중앙에서 관리하고 서명 작업을 수행하는 내장 인증 기관(CA) 제공자가 포함돼요. CA를 사용할 때 사이드카 프록시는 요청을 서비스로 전달하기 전에 들어오는 요청에 서명된 mTLS 인증서가 포함되어 있는지 확인해요.
내장 CA를 사용하려면 에이전트에 배포할 수 있는 개인 키와 루트 인증서를 생성해 CA를 부트스트랩해야 해요. 또한 HashiCorp Vault 같은 다른 인증 기관을 사용하도록 Consul 에이전트를 구성할 수도 있어요.
자세한 내용은 인증 기관 개요를 참고해요.
서비스 의도 (Service intentions)
서비스 의도는 서비스가 통신하는 데 사용하는 프로토콜에 따라 L4(네트워크) 계층과 L7(애플리케이션) 계층에서 서비스 간 통신을 제어해요. 구성 항목에서 서비스 의도를 정의해 모든 서비스 간 통신을 자동으로 거부한 다음, 더 구체적인 의도를 구성해 서비스 메시 내에서 정의된 트래픽만 허용할 수 있어요. 또한 사이드카 프록시가 인가를 위해 JSON 웹 토큰(JWT)을 제시해야 하도록 서비스 의도를 구성할 수도 있어요.
자세한 내용은 서비스 메시 의도 개요를 참고해요.
안내 (Guidance)
이 주제에 설명된 워크플로에 대해 더 알아보려면 다음 튜토리얼을 참고해요:
런타임별 사용 문서 (Runtime-specific usage documentation)
런타임별 지침은 다음 페이지를 참고해요:
참조 문서 (Reference documentation)
Consul의 서비스 메시 보안 옵션과 관련된 참조 자료는 다음 페이지를 참고해요:
/connect/caHTTP API 엔드포인트 참조/connect/intentionsHTTP API 엔드포인트 참조consul connect caCLI 명령 참조consul intentionCLI 명령 참조- Consul 에이전트 구성 참조
service-intentions구성 항목 참조
제약, 한계 및 문제 해결 (Constraints, limitations, and troubleshooting)
서비스 메시 통신을 보호할 때 오류가 발생하면 다음 기술적 제약 목록을 참고해요.
- Consul의 내장 인증 기관을 사용하려면 부트스트랩해야 해요.