15.4. 클러스터 CA를 신뢰하도록 내부 클라이언트 구성
다음 절차에서는 OpenShift 클러스터 내부에 위치하는 Kafka 클라이언트를 구성하는 방법 - TLS 리스너에 연결 - 클러스터 CA 인증서를 신뢰하는 방법을 설명합니다.
내부 클라이언트에서 이를 수행하는 가장 쉬운 방법은 볼륨 마운트를 사용하여 필요한 인증서 및 키가 포함된 보안에 액세스하는 것입니다.
Java 기반 Kafka Producer, Consumer 및 Streams API에 대해 클러스터 CA에서 서명한 신뢰 인증서를 구성하는 단계를 따르십시오.
클러스터 CA의 인증서 형식 PKCS #12(.p12) 또는 PEM(.crt)에 따라 수행할 단계를 선택합니다.
이 단계에서는 Kafka 클러스터의 ID를 클라이언트 pod에 확인하는 클러스터 보안을 마운트하는 방법을 설명합니다.
사전 요구 사항
- Cluster Operator가 실행 중이어야 합니다.
-
OpenShift 클러스터 내에
Kafka리소스가 있어야 합니다. - TLS를 사용하여 연결할 OpenShift 클러스터 내에 Kafka 클라이언트 애플리케이션이 필요하며 클러스터 CA 인증서를 신뢰해야 합니다.
-
클라이언트 애플리케이션은
Kafka리소스와 동일한 네임스페이스에서 실행 중이어야 합니다.
PKCS #12 형식(.p12) 사용
클라이언트 Pod를 정의할 때 클러스터 보안을 볼륨으로 마운트합니다.
예를 들면 다음과 같습니다.
kind: Pod apiVersion: v1 metadata: name: client-pod spec: containers: - name: client-name image: client-name volumeMounts: - name: secret-volume mountPath: /data/p12 env: - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: my-secret key: my-password volumes: - name: secret-volume secret: secretName: my-cluster-cluster-ca-cert다음과 같이 마운트할 수 있습니다.
- 구성할 수 있는 정확한 경로에 PKCS #12 파일
- Java 구성에 사용할 수 있는 환경 변수의 암호
다음 속성을 사용하여 Kafka 클라이언트를 구성합니다.
보안 프로토콜 옵션:
-
security.protocol: 암호화에 TLS를 사용할 때( mTLS 인증 포함 또는 없이) SSL입니다. -
security.protocol: TLS를 통해 SCRAM-SHA 인증을 사용할 때 SASL_SSL.
-
-
SSL.truststore.location인증서를 가져온 신뢰 저장소 위치가 있습니다. -
SSL.truststore.password에는 신뢰 저장소에 액세스하기 위한 암호가 있습니다. -
SSL.truststore.type=PKCS12: truststore 유형을 식별합니다.
PEM 형식(.crt) 사용
클라이언트 Pod를 정의할 때 클러스터 보안을 볼륨으로 마운트합니다.
예를 들면 다음과 같습니다.
kind: Pod apiVersion: v1 metadata: name: client-pod spec: containers: - name: client-name image: client-name volumeMounts: - name: secret-volume mountPath: /data/crt volumes: - name: secret-volume secret: secretName: my-cluster-cluster-ca-cert- X.509 형식의 인증서를 사용하는 클라이언트에서 TLS 연결을 구성하려면 추출된 인증서를 사용합니다.