10.2. 보안


AMQ Streams는 시크릿을 사용하여 Kafka 클러스터, 클라이언트 및 사용자의 개인 및 공개 키 인증서를 저장합니다. 시크릿은 Kafka 브로커 간 TLS 암호화 연결을 설정하고 브로커와 클라이언트 간의 TLS 암호화 연결을 설정하는 데 사용됩니다. 상호 TLS 인증에도 사용됩니다.

클러스터 및 클라이언트 보안은 항상 쌍입니다. 하나는 공개 키가 포함되어 있고 개인 키가 포함되어 있습니다.

클러스터 시크릿
클러스터 시크릿에는 Kafka 브로커 인증서에 서명하는 클러스터 CA 가 포함되어 있습니다. 클라이언트는 인증서를 사용하여 Kafka 클러스터와 TLS 암호화 연결을 설정합니다. 인증서는 브로커 ID를 확인합니다.
클라이언트 시크릿
클라이언트 시크릿에는 사용자가 자체 클라이언트 인증서에 서명할 수 있는 클라이언트 CA 가 포함되어 있습니다. 이를 통해 Kafka 클러스터에 대한 상호 인증을 허용합니다. 브로커는 인증서를 통해 클라이언트의 ID를 검증합니다.
사용자 시크릿
사용자 시크릿에는 개인 키와 인증서가 포함되어 있습니다. 새 사용자를 생성할 때 클라이언트 CA에서 시크릿을 생성하고 서명합니다. 키와 인증서는 클러스터에 액세스할 때 사용자를 인증하고 권한을 부여하는 데 사용됩니다.

10.2.1. PEM 및 PKCS #12 형식의 시크릿

보안에서는 PEM 및 PKCS #12 형식으로 개인 키와 인증서를 제공합니다. 클라이언트에 적합한 형식을 사용합니다. PEM 형식으로 개인 키와 인증서를 사용하면 사용자가 시크릿에서 가져온 후 애플리케이션에서 사용할 해당 신뢰 저장소 또는 키 저장소를 생성해야 합니다. PKCS #12 스토리지는 직접 사용할 수 있는 신뢰 저장소 또는 키 저장소를 제공합니다.

PKCS #12는 암호화 오브젝트를 암호 보호를 사용하여 단일 파일에 저장하기 위한 아카이브 파일 형식(.p12)을 정의합니다. PKCS #12를 사용하여 한 곳에서 인증서와 키를 관리할 수 있습니다.

각 시크릿에는 PKCS #12와 관련된 필드가 포함되어 있습니다.

  • .p12 필드에는 인증서와 키가 포함되어 있습니다.
  • .password 필드는 아카이브를 보호하는 암호입니다.

모든 키는 크기가 2048비트이며 초기 생성에서 365일 동안 유효합니다. 유효 기간을 변경할 수 있습니다.

10.2.2. Cluster Operator에서 생성한 보안

Cluster Operator는 OpenShift 클러스터에 시크릿으로 저장된 다음 인증서를 생성합니다. AMQ Streams는 기본적으로 이러한 시크릿을 사용합니다.

클러스터 CA 및 클라이언트 CA에는 개인 키 및 공개 키에 대한 별도의 시크릿이 있습니다.

<cluster_name>-cluster-ca
클러스터 CA의 개인 키를 포함합니다. AMQ Streams 및 Kafka 구성 요소는 개인 키를 사용하여 서버 인증서에 서명합니다.
<cluster_name>-cluster-ca-cert
클러스터 CA의 공개 키를 포함합니다. Kafka 클라이언트는 공개 키를 사용하여 TLS 서버 인증으로 연결된 Kafka 브로커의 ID를 확인합니다.
<cluster_name>-clients-ca
클라이언트 CA의 개인 키를 포함합니다. Kafka 클라이언트는 Kafka 브로커에 연결할 때 개인 키를 사용하여 TLS 클라이언트 인증을 위한 새 사용자 인증서에 서명합니다.
<cluster_name>-clients-ca-cert
클라이언트 CA의 공개 키를 포함합니다. Kafka 브로커는 TLS 클라이언트 인증이 사용될 때 Kafka 브로커에 액세스하는 클라이언트의 ID를 확인하는 데 공개 키를 사용합니다.

AMQ Streams 구성 요소 간 통신을 위한 시크릿에는 클러스터 CA에서 서명한 개인 키와 공개 키 인증서가 포함되어 있습니다.

<cluster_name>-kafka-brokers
Kafka 브로커의 개인 키 및 공개 키가 포함되어 있습니다.
<cluster_name>-zookeeper-nodes
Zoo Cryostat 노드의 개인 및 공개 키를 포함합니다.
<cluster_name>-cluster-operator-certs
Cluster Operator와 Kafka 또는 Zoo Cryostat 간의 통신을 암호화하기 위한 개인 및 공개 키가 포함되어 있습니다.
<cluster_name>-entity-topic-operator-certs
Topic Operator와 Kafka 또는 Zoo Cryostat 간의 통신을 암호화하기 위한 개인 및 공개 키가 포함되어 있습니다.
<cluster_name>-entity-user-operator-certs
User Operator와 Kafka 또는 Zoo Cryostat 간의 통신을 암호화하기 위한 개인 및 공개 키가 포함되어 있습니다.
<cluster_name>-cruise-control-certs
Cruise Control과 Kafka 또는 Zoo Cryostat 간의 통신을 암호화하기 위한 개인 및 공개 키가 포함되어 있습니다.
<cluster_name>-kafka-exporter-certs
Kafka Exporter와 Kafka 또는 Zoo Cryostat 간의 통신을 암호화하기 위한 개인 및 공개 키가 포함되어 있습니다.
참고

10.2.3. 클러스터 CA 시크릿

클러스터 CA 보안은 Kafka 클러스터의 Cluster Operator에 의해 관리됩니다.

클라이언트에는 <cluster_name> -cluster-ca-cert 시크릿만 필요합니다. 다른 모든 클러스터 시크릿은 AMQ Streams 구성 요소에서 액세스할 수 있습니다. 필요한 경우 OpenShift 역할 기반 액세스 제어를 사용하여 이를 적용할 수 있습니다.

참고

< cluster_name> -cluster-ca-cert 의 CA 인증서는 TLS를 통해 Kafka 브로커에 연결할 때 Kafka 브로커 인증서를 검증하도록 Kafka 클라이언트 애플리케이션에서 신뢰해야 합니다.

Expand
표 10.1. < cluster_name> -cluster-ca 시크릿의 필드
필드설명

ca.key

클러스터 CA의 현재 개인 키입니다.

Expand
표 10.2. < cluster_name> -cluster-ca-cert 시크릿의 필드
필드설명

ca.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

ca.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

ca.crt

클러스터 CA의 현재 인증서입니다.

Expand
표 10.3. < cluster_name> -kafka-brokers 시크릿의 필드
필드설명

<cluster_name>-kafka-<num>.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

<cluster_name>-kafka-<num>.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

<cluster_name>-kafka-<num>.crt

Kafka 브로커 Pod < num>의 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

<cluster_name>-kafka-<num>.key

Kafka 브로커 Pod < num&gt;의 개인 키

Expand
표 10.4. < cluster_name> -zookeeper-nodes 시크릿의 필드
필드설명

<cluster_name>-zookeeper-<num>.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

<cluster_name>-zookeeper-<num>.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

<cluster_name>-zookeeper-<num>.crt

Zoo Cryostat 노드 < num& gt;의 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

<cluster_name>-zookeeper-<num>.key

Zoo Cryostat pod < num> 의 개인 키입니다.

Expand
표 10.5. < cluster_name> -cluster-operator-certs 시크릿의 필드
필드설명

cluster-operator.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

cluster-operator.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

cluster-operator.crt

Cluster Operator와 Kafka 또는 Zoo Cryostat 간의 TLS 통신 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

cluster-operator.key

Cluster Operator와 Kafka 또는 Zoo Cryostat 간의 TLS 통신용 개인 키입니다.

Expand
표 10.6. < cluster_name>-entity-topic-operator-certs 시크릿의 필드
필드설명

entity-operator.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

entity-operator.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

entity-operator.crt

Topic Operator와 Kafka 또는 Zoo Cryostat 간의 TLS 통신 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

entity-operator.key

Topic Operator와 Kafka 또는 Zoo Cryostat 간의 TLS 통신용 개인 키입니다.

Expand
표 10.7. < cluster_name>-entity-user-operator-certs 시크릿의 필드
필드설명

entity-operator.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

entity-operator.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

entity-operator.crt

User Operator와 Kafka 또는 Zoo Cryostat 간의 TLS 통신 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

entity-operator.key

User Operator와 Kafka 또는 Zoo Cryostat 간의 TLS 통신용 개인 키입니다.

Expand
표 10.8. < cluster_name> -cruise-control-certs 시크릿의 필드
필드설명

cruise-control.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

cruise-control.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

cruise-control.crt

Cruise Control과 Kafka 또는 Zoo Cryostat 간의 TLS 통신 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

cruise-control.key

Cruise Control과 Kafka 또는 Zoo Cryostat 간의 TLS 통신의 개인 키입니다.

Expand
표 10.9. < cluster_name>-kafka-exporter-certs 시크릿의 필드
필드설명

kafka-exporter.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

kafka-exporter.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

kafka-exporter.crt

Kafka Exporter와 Kafka 또는 Zoo Cryostat 간의 TLS 통신 인증서입니다. <cluster _name> -cluster-ca 에서 현재 또는 이전 클러스터 CA 개인 키로 서명했습니다.

kafka-exporter.key

Kafka Exporter와 Kafka 또는 Zoo Cryostat 간의 TLS 통신용 개인 키입니다.

10.2.4. 클라이언트 CA 시크릿

클라이언트 CA 보안은 Kafka 클러스터의 Cluster Operator에 의해 관리됩니다.

< cluster_name> -clients-ca-cert 의 인증서는 Kafka 브로커가 신뢰하는 인증서입니다.

& lt;cluster_name&gt; -clients-ca 시크릿은 클라이언트 애플리케이션의 인증서에 서명하는 데 사용됩니다. User Operator를 사용하지 않고 애플리케이션 인증서를 발급하려는 경우 AMQ Streams 구성 요소와 관리 액세스 권한을 위해 이 시크릿에 액세스할 수 있어야 합니다. 필요한 경우 OpenShift 역할 기반 액세스 제어를 사용하여 이를 적용할 수 있습니다.

Expand
표 10.10. < cluster_name> -clients-ca 시크릿의 필드
필드설명

ca.key

클라이언트 CA의 현재 개인 키입니다.

Expand
표 10.11. < cluster_name> -clients-ca-cert 시크릿의 필드
필드설명

ca.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

ca.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

ca.crt

클라이언트 CA의 현재 인증서입니다.

10.2.5. 사용자 보안

사용자 보안은 User Operator가 관리합니다.

User Operator를 사용하여 사용자를 생성하면 사용자 이름을 사용하여 보안이 생성됩니다.

Expand
표 10.12. user_name 시크릿의 필드
시크릿 이름시크릿 내 필드설명

<user_name>

user.p12

인증서 및 키를 저장하기 위한 PKCS #12 아카이브 파일.

user.password

PKCS #12 아카이브 파일을 보호하기 위한 암호입니다.

user.crt

클라이언트 CA에서 서명한 사용자의 인증서

user.key

사용자의 개인 키

10.2.6. 클러스터 CA 보안에 레이블 및 주석 추가

Kafka 사용자 정의 리소스에서 clusterCaCert 템플릿 속성을 구성하면 Cluster Operator에서 생성한 Cluster CA 보안에 사용자 정의 레이블 및 주석을 추가할 수 있습니다. 레이블 및 주석은 오브젝트를 식별하고 컨텍스트 정보를 추가하는 데 유용합니다. AMQ Streams 사용자 정의 리소스에서 템플릿 속성을 구성합니다.

보안에 레이블 및 주석을 추가하는 템플릿 사용자 정의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    template:
      clusterCaCert:
        metadata:
          labels:
            label1: value1
            label2: value2
          annotations:
            annotation1: value1
            annotation2: value2
    # ...
Copy to Clipboard Toggle word wrap

템플릿 속성 구성에 대한 자세한 내용은 2.8절. “OpenShift 리소스 사용자 정의” 을 참조하십시오.

10.2.7. CA 보안에서 ownerReference 비활성화

기본적으로 Cluster 및 Client CA 보안은 Kafka 사용자 정의 리소스로 설정된 ownerReference 속성을 사용하여 생성됩니다. 즉, Kafka 사용자 정의 리소스가 삭제되면 OpenShift에서 CA 시크릿도 삭제(가용됨)됩니다.

새 클러스터에 CA를 재사용하려면 Kafka 구성에서 Cluster 및 Client CA 시크릿의 generateSecretOwnerReference 속성을 false 로 설정하여 ownerReference 를 비활성화할 수 있습니다. ownerReference 가 비활성화되면 해당 Kafka 사용자 정의 리소스가 삭제되면 OpenShift에서 CA 시크릿이 삭제되지 않습니다.

클러스터 및 클라이언트 CA에 대해 비활성화된 ownerReference 를 사용한 Kafka 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
# ...
  clusterCa:
    generateSecretOwnerReference: false
  clientsCa:
    generateSecretOwnerReference: false
# ...
Copy to Clipboard Toggle word wrap

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동