안전한 서비스 메시 개요

안전한 서비스 메시 개요 (Secure service mesh overview)

이 주제에서는 Kubernetes에서 Consul을 실행할 때 서비스 메시 내 서비스 간 통신을 보호하는 방법에 대한 개요를 제공해요. mTLS 인증 기관과 서비스 아이덴티티 기반 의도를 구성하여 메시 내 통신을 보호할 수 있어요.

출처: 문서

본문

이 주제에서는 Kubernetes에서 Consul을 실행할 때 서비스 메시 내 서비스 간 통신을 보호하는 방법에 대한 개요를 제공합니다. mTLS 인증 기관과 서비스 아이덴티티 기반 의도(intentions)를 구성하여 메시 내 통신을 보호할 수 있습니다.

gossip 암호화 및 ACL(액세스 제어 목록) 시스템으로 Consul 배포를 보호하는 방법에 대한 정보는 Consul Operations 섹션의 Secure Consul을 참조하세요.

소개 (Introduction)

Consul에서 완전히 구성된 서비스 메시는 다음과 같은 방식으로 서비스 간 통신을 보호하여 제로 트러스트 보안 을 적용하는 것입니다:

  • 사이드카 프록시는 Consul이 서명한 mTLS 인증서로 서비스의 트래픽을 암호화 및 복호화합니다.
  • 사이드카 프록시는 기본적으로 들어오는 요청을 거부합니다.
  • 사이드카 프록시는 명시적으로 정의된 서비스 의도에 따라 들어오는 요청을 인가합니다.

인증 기관 (Certificate authority)

Consul 서버에는 mTLS 인증서를 중앙에서 관리하고 서명 작업을 수행하기 위한 기본 제공 CA(인증 기관) 제공자가 포함되어 있습니다. CA를 사용할 때 사이드카 프록시는 요청을 서비스로 전달하기 전에 들어오는 요청에 서명된 mTLS 인증서가 포함되어 있는지 확인합니다.

기본 제공 CA를 사용하려면 에이전트에 배포할 수 있는 개인 키와 루트 인증서를 생성하여 부트스트랩해야 합니다. 또한 HashiCorp Vault와 같은 다른 인증 기관을 사용하도록 Consul 에이전트를 구성할 수 있습니다.

자세한 내용은 certificate authority overview를 참조하세요.

서비스 의도 (Service intentions)

서비스 의도는 서비스가 통신에 사용하는 프로토콜에 따라 L4(네트워크) 계층과 L7(애플리케이션) 계층에서 서비스 간 통신을 제어합니다. 구성 항목에서 서비스 의도를 정의하여 모든 서비스 간 통신을 자동으로 거부한 다음, 더 구체적인 의도를 구성하여 서비스 메시 내에서 정의된 트래픽만 허용할 수 있습니다. 또한 사이드카 프록시가 인가를 위해 JWT(JSON 웹 토큰)를 제시해야 하도록 서비스 의도를 구성할 수 있습니다.

자세한 내용은 service mesh intentions overview을 참조하세요.

튜토리얼 (Tutorials)

이 주제에서 설명한 워크플로우에 대해 자세히 알아보려면 Kubernetes에서 Consul 서비스 메시로 서비스를 안전하게 연결하는 튜토리얼을 참조하세요.

참조 문서 (Reference documentation)

Kubernetes에서 Consul의 서비스 메시 보안 옵션과 관련된 참조 자료는 다음 페이지를 참조하세요:

제약, 한계 및 문제 해결 (Constraints, limitations, and troubleshooting)

서비스 메시 통신을 보호할 때 오류가 발생하면 다음 기술 제약 목록을 참조하세요.

  • Consul의 기본 제공 인증 기관을 사용하려면 부트스트랩해야 합니다.

더 알아보기 (Learn more)