16장. TLS 인증서 관리


AMQ Streams는 Kafka와 AMQ Streams 구성 요소 간의 암호화된 통신을 위해 TLS를 지원합니다.

AMQ Streams는 KRaft 모드에서 Kafka를 사용할 때 다음 구성 요소 간 통신을 위해 암호화된 TLS 연결을 설정합니다.

  • Kafka 브로커
  • Kafka 컨트롤러
  • Kafka 브로커 및 컨트롤러
  • AMQ Streams Operator 및 Kafka
  • 크루즈 컨트롤 및 Kafka 브로커
  • Kafka Exporter 및 Kafka 브로커

클라이언트와 Kafka 브로커 간의 연결은 TLS 암호화 통신을 사용하도록 구성해야 하는 리스너를 사용합니다. Kafka 사용자 정의 리소스에서 이러한 리스너를 구성하고 각 리스너 이름과 포트 번호는 클러스터 내에서 고유해야 합니다. Kafka 브로커와 Kafka 클라이언트 간의 통신은 리스너에 대해 tls 속성이 구성된 방법에 따라 암호화됩니다. 자세한 내용은 14장. Kafka 클러스터에 대한 클라이언트 액세스 설정의 내용을 참조하십시오.

다음 다이어그램에서는 보안 통신을 위한 연결을 보여줍니다.

그림 16.1. TLS 암호화로 보안된 Kraft 기반 Kafka 통신

다이어그램에 표시된 포트는 다음과 같이 사용됩니다.

컨트롤 플레인 리스너 (9090)
포트 9090의 내부 컨트롤 플레인 리스너는 Kafka 컨트롤러와 브로커-투-컨트롤러 통신 간의 상호 통신이 용이합니다. 또한 Cluster Operator는 리스너를 통해 컨트롤러와 통신합니다. 이 리스너는 Kafka 클라이언트에서 액세스할 수 없습니다.
복제 리스너(9091)
AMQ Streams Operator, Cruise Control 및 Kafka Exporter의 브로커 간 데이터 복제와 포트 9091에서 복제 리스너를 사용합니다. 이 리스너는 Kafka 클라이언트에서 액세스할 수 없습니다.
클라이언트 연결에 대한 리스너(9092 이상)
TLS 암호화 통신( listener의 구성을 통해)의 경우 내부 및 외부 클라이언트가 Kafka 브로커에 연결됩니다. 외부 클라이언트(생성자 및 소비자)는 공개된 리스너 포트를 통해 Kafka 브로커에 연결합니다.
중요

브로커에 대한 클라이언트 액세스를 위해 리스너를 구성할 때 포트 9092 이상(9093, 9094 등)을 사용할 수 있지만 몇 가지 예외가 있습니다. 리스너는 인터브로커 통신(9090 및 9091), Prometheus 지표(9404) 및 Cryostat(Java Management Extensions) 모니터링(9999)을 위해 예약된 포트를 사용하도록 구성할 수 없습니다.

클러스터 관리를 위해 Zoo Cryostat를 사용하는 경우 Zoo Cryostat와 Kafka 브로커와 AMQ Streams Operator 간에 TLS 연결이 있습니다.

다음 다이어그램에서는 Zoo Cryostat를 사용할 때 안전한 통신을 위한 연결을 보여줍니다.

그림 16.2. TLS 암호화로 보안된 Kafka 및 Zoo Cryostat 통신

Zoo Cryostat 포트는 다음과 같이 사용됩니다.

Zookeeper 포트 (2181)
Kafka 브로커에 연결하기 위한 Zookeeper 포트입니다. 또한 Cluster Operator는 이 포트를 통해 Zoo Cryostat와 통신합니다.
Zookeeper internodal 통신 포트 (2888)
Zoo Cryostat 노드 간의 상호 통신을 위한 Zookeeper 포트입니다.
Zookeeper 리더 선택 포트 (3888)
Zoo Cryostat 클러스터의 Zoo Cryostat 노드 중에서 리더 선택을 위한 Zookeeper 포트입니다.

16.1. 내부 클러스터 CA 및 클라이언트 CA

암호화를 지원하기 위해 각 AMQ Streams 구성 요소에는 자체 개인 키와 공개 키 인증서가 필요합니다. 모든 구성 요소 인증서는 클러스터 CA라는 내부 CA(인증 기관)에서 서명합니다.

CA(인증 기관) 인증서는 구성 요소 및 클라이언트의 ID를 확인하기 위해 Cluster Operator에서 생성됩니다.

마찬가지로 mTLS를 사용하여 AMQ Streams에 연결하는 각 Kafka 클라이언트 애플리케이션은 개인 키와 인증서를 사용해야 합니다. 클라이언트 CA라는 두 번째 내부 CA는 Kafka 클라이언트 의 인증서에 서명하는 데 사용됩니다.

클러스터 CA 및 클라이언트 CA에는 모두 자체 서명된 공개 키 인증서가 있습니다.

Kafka 브로커는 클러스터 CA 또는 클라이언트 CA에서 서명한 인증서를 신뢰하도록 구성됩니다. 클라이언트가 연결할 필요가 없는 구성 요소(예: Zoo Cryostat)는 클러스터 CA에서 서명한 신뢰 인증서만 사용합니다. 외부 리스너에 대한 TLS 암호화가 비활성화되지 않는 한 클라이언트 애플리케이션은 클러스터 CA에서 서명한 인증서를 신뢰해야 합니다. 이는 mTLS 인증을 수행하는 클라이언트 애플리케이션에도 적용됩니다.

기본적으로 AMQ Streams는 클러스터 CA 또는 클라이언트 CA에서 발급한 CA 인증서를 자동으로 생성하고 갱신합니다. Kafka.spec.clusterCaKafka.spec.clientsCa 속성을 사용하여 이러한 CA 인증서의 관리를 구성할 수 있습니다.

참고

Cluster Operator에서 생성한 CA를 사용하지 않으려면 자체 클러스터 및 클라이언트 CA 인증서를 설치할 수 있습니다. 제공하는 인증서는 Cluster Operator에 의해 갱신되지 않습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat