9.10. Red Hat OpenShift용 cert-manager Operator를 Istio-CSR과 통합


Red Hat OpenShift용 cert-manager Operator는 Red Hat OpenShift Service Mesh 또는 Istio에서 워크로드 및 제어 플레인 구성 요소의 보안을 강화하는 지원을 제공합니다. 여기에는 cert-manager 발급자를 사용하여 서명, 전달 및 갱신되는 상호 TLS(mTLS)를 활성화하는 인증서에 대한 지원이 포함됩니다. Red Hat OpenShift 관리형 Istio-CSR 에이전트용 cert-manager Operator를 사용하여 Istio 워크로드와 제어 플레인 구성요소를 보호할 수 있습니다.

이 Istio-CSR 통합을 통해 Istio는 이제 Red Hat OpenShift용 cert-manager 운영자로부터 인증서를 얻을 수 있어 보안 및 인증서 관리가 간소화됩니다.

9.10.1. Red Hat OpenShift용 cert-manager Operator를 통한 Istio-CSR 에이전트 설치

9.10.1.1. Istio-CSR 에이전트에 대한 루트 CA 발급자 생성

이 절차를 사용하여 Istio-CSR 에이전트에 대한 루트 CA 발급자를 만듭니다.

참고

ACME 발급자는 지원되지 않으므로, 다른 지원되는 발급자를 사용할 수 있습니다. 자세한 내용은 "Red Hat OpenShift 발급자 공급자를 위한 cert-manager 운영자"를 참조하세요.

프로세스

  1. 발급자인증서 객체를 정의하는 YAML 파일을 만듭니다.

    issuer.yaml 파일 예

    apiVersion: cert-manager.io/v1
    kind: Issuer 
    1
    
    metadata:
      name: selfsigned
      namespace: <istio_project_name> 
    2
    
    spec:
      selfSigned: {}
    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: istio-ca
      namespace: <istio_project_name>
    spec:
      isCA: true
      duration: 87600h # 10 years
      secretName: istio-ca
      commonName: istio-ca
      privateKey:
        algorithm: ECDSA
        size: 256
      subject:
        organizations:
          - cluster.local
          - cert-manager
      issuerRef:
        name: selfsigned
        kind: Issuer 
    3
    
        group: cert-manager.io
    ---
    apiVersion: cert-manager.io/v1
    kind: Issuer 
    4
    
    metadata:
      name: istio-ca
      namespace: <istio_project_name> 
    5
    
    spec:
      ca:
        secretName: istio-ca
    Copy to Clipboard Toggle word wrap

    1 3 4
    Issuer 또는 ClusterIssuer를 지정합니다.
    2 5
    Istio 프로젝트의 이름을 지정합니다.

검증

  • 다음 명령을 실행하여 발급자가 생성되어 사용할 준비가 되었는지 확인하세요.

    $ oc get issuer istio-ca -n <istio_project_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME       READY   AGE
    istio-ca   True    3m
    Copy to Clipboard Toggle word wrap

9.10.1.2. IstioCSR 사용자 정의 리소스 생성

Red Hat OpenShift용 cert-manager Operator를 통해 Istio-CSR 에이전트를 설치하려면 이 절차를 따르세요.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • Istio-CSR 기능을 활성화했습니다.
  • Istio-CSR 에이전트에 대한 인증서를 생성하는 데 필요한 Issuer 또는 ClusterIssuer 리소스를 생성했습니다.

    참고

    발급자 리소스를 사용하는 경우 Red Hat OpenShift Service Mesh 또는 Istiod 네임스페이스에 발급자인증서 리소스를 만듭니다. 인증서 요청은 동일한 네임스페이스에서 생성되며, 역할 기반 액세스 제어(RBAC)가 이에 따라 구성됩니다.

프로세스

  1. 다음 명령을 실행하여 Istio-CSR을 설치하기 위한 새 프로젝트를 만듭니다. Istio-CSR을 설치하기 위한 기존 프로젝트가 있는 경우 이 단계를 건너뜁니다.

    $ oc new-project <istio_csr_project_name>
    Copy to Clipboard Toggle word wrap
  2. Red Hat OpenShift의 cert-manager Operator가 관리하는 Istio-CSR 에이전트가 Istio 워크로드와 제어 평면 인증서 서명 요청을 처리할 수 있도록 IstioCSR 사용자 정의 리소스를 생성합니다.

    참고

    한 번에 하나의 IstioCSR 사용자 정의 리소스(CR)만 지원됩니다. 여러 개의 IstioCSR CR이 생성된 경우 하나만 활성화됩니다. IstioCSR상태 하위 리소스를 사용하여 리소스가 처리되지 않았는지 확인합니다.

    • 여러 개의 IstioCSR CR이 동시에 생성되는 경우 아무것도 처리되지 않습니다.
    • 여러 개의 IstioCSR CR이 순차적으로 생성되는 경우 첫 번째 CR만 처리됩니다.
    • 새로운 요청이 거부되는 것을 방지하려면 처리되지 않은 IstioCSR CR을 삭제하세요.
    • Operator는 IstioCSR 에 대해 생성된 객체를 자동으로 제거하지 않습니다. 활성 IstioCSR 리소스가 삭제되고 이전 배포를 제거하지 않고 다른 네임스페이스에 새 리소스가 생성되는 경우 여러 istio-csr 배포가 활성 상태로 유지될 수 있습니다. 이런 동작은 권장되지 않으며 지원되지도 않습니다.
    1. IstioCSR 객체를 정의하는 YAML 파일을 만듭니다.

      IstioCSR CR 예시

      apiVersion: operator.openshift.io/v1alpha1
      kind: IstioCSR
      metadata:
        name: default
        namespace: <istio_csr_project_name>
      spec:
        istioCSRConfig:
          certManager:
            issuerRef:
              name: istio-ca  
      1
      
              kind: Issuer 
      2
      
              group: cert-manager.io
          istiodTLSConfig:
            trustDomain: cluster.local
          istio:
            namespace: <istio_project_name>
      Copy to Clipboard Toggle word wrap

      1
      발급자 또는 클러스터 발급자 이름을 지정합니다. issuer.yaml 파일에 정의된 CA 발급자 이름과 동일해야 합니다.
      2
      발급자 또는 클러스터 발급자 종류를 지정합니다. issuer.yaml 파일에 정의된 CA 발급자와 동일한 종류여야 합니다.
    2. 다음 명령을 실행하여 IstioCSR 사용자 정의 리소스를 만듭니다.

      $ oc create -f IstioCSR.yaml
      Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 Istio-CSR 배포가 준비되었는지 확인하세요.

    $ oc get deployment -n <istio_csr_project_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
    cert-manager-istio-csr   1/1     1            1           24s
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 Istio-CSR 포드가 실행 중인지 확인하세요.

    $ oc get pod -n <istio_csr_project_name>
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                  	 READY   STATUS	  RESTARTS    AGE
    cert-manager-istio-csr-5c979f9b7c-bv57w  1/1     Running  0           45s
    Copy to Clipboard Toggle word wrap

    • 다음 명령을 실행하여 Istio-CSR 포드가 로그에 오류를 보고하지 않는지 확인하세요.

      $ oc -n <istio_csr_project_name> logs <istio_csr_pod_name>
      Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 Red Hat OpenShift Pod용 cert-manager Operator가 오류를 보고하지 않는지 확인하세요.

      $ oc -n cert-manager-operator logs <cert_manager_operator_pod_name>
      Copy to Clipboard Toggle word wrap

9.10.2. IstioCSR 사용자 정의 리소스 사용자 정의

IstioCSR 사용자 정의 리소스(CR)를 수정하여 Istio 워크로드가 cert-manager Operator와 상호 작용하는 방식을 정의할 수 있습니다.

9.10.2.1. istio-csr 구성 요소에 대한 로그 수준 설정

istio-csr 구성 요소의 로그 수준을 설정하여 로그 메시지의 자세한 내용과 형식을 제어할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • IstioCSR 사용자 정의 리소스(CR)를 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR CR을 편집합니다.

    oc edit istiocsrs.operator.openshift.io default -n <istio_csr_project_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <istio_csr_project_name>을 IstioCSR CR을 생성한 네임스페이스로 바꾸세요.
  2. spec.istioCSRConfig 섹션에서 로그 수준과 형식을 구성합니다.

    로그 수준 설정을 위한 IstioCSR CR 구성 샘플

    apiVersion: operator.openshift.io/v1alpha1
    kind: IstioCSR
    ...
    spec:
      istioCSRConfig:
        logFormat: text 
    1
    
        logLevel: 2 
    2
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    로그 출력 형식을 지정합니다. 이 필드를 text 또는 json 으로 설정할 수 있습니다.
    2
    로그 수준을 설정합니다. 지원되는 값은 Kubernetes 로깅 가이드라인에 정의된 대로 1 ~ 5 범위에 있습니다. 기본값은 1 입니다.
  3. 변경 사항을 적용하려면 편집기를 저장하고 닫으세요. 변경 사항이 적용된 후 cert-manager 연산자는 istio-csr 피연산자에 대한 로그 구성을 업데이트합니다.

9.10.2.2. CA 번들 배포를 위한 네임스페이스 선택기 구성

Istio-CSR 에이전트는 CA 번들을 포함하는 istio-ca-root-cert ConfigMap을 만들고 업데이트합니다. 서비스 메시의 워크로드는 이 CA 번들을 사용하여 Istio 제어 평면에 대한 연결을 검증합니다. Istio-CSR 에이전트가 이 ConfigMap을 생성하는 네임스페이스를 지정하기 위해 네임스페이스 선택기를 구성할 수 있습니다. 선택기를 구성하지 않으면 Istio-CSR 에이전트가 모든 네임스페이스에 ConfigMap을 생성합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • IstioCSR 사용자 정의 리소스(CR)를 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR CR을 편집합니다.

    oc edit istiocsrs.operator.openshift.io default -n <istio_csr_project_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <istio_csr_project_name>을 IstioCSR CR을 생성한 네임스페이스로 바꾸세요.
  2. spec.istioCSRConfig.istioDataPlaneNamespaceSelector 섹션을 구성하여 네임스페이스 선택기를 설정합니다.

    네임스페이스 선택기를 사용한 IstioCSR CR 구성 샘플

    apiVersion: operator.openshift.io/v1alpha1
    kind: IstioCSR
    ...
    spec:
      istioCSRConfig:
        istioDataPlaneNamespaceSelector: maistra.io/member-of=istio-system 
    1
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    maistra.io/member-of=istio-system을 서비스 메시의 네임스페이스를 식별하는 레이블 키와 값으로 바꿉니다. <키>=<값> 형식을 사용하세요.
    참고

    istio-csr 구성 요소는 구성된 선택기와 일치하지 않는 네임스페이스의 ConfigMap 객체를 삭제하거나 관리하지 않습니다. IstioCSR CR을 배포한 후 선택기를 생성하거나 업데이트하거나 네임스페이스에서 레이블을 제거하는 경우 충돌을 방지하기 위해 이러한 ConfigMap 객체를 수동으로 삭제해야 합니다.

    다음 명령을 실행하면 선택기와 일치하는 네임스페이스에 없는 ConfigMap 객체를 나열할 수 있습니다. 이 예에서 선택자는 maistra.io/member-of=istio-system 입니다.

    printf "%-25s %10s\n" "ConfigMap" "Namespace"; \
    for ns in $(oc get namespaces -l "maistra.io/member-of!=istio-system" -o=jsonpath='{.items[*].metadata.name}'); do \
      oc get configmaps -l "istio.io/config=true" -n $ns --no-headers -o jsonpath='{.items[*].metadata.name}{"\t"}{.items[*].metadata.namespace}{"\n"}' --ignore-not-found; \
    done
    Copy to Clipboard Toggle word wrap
  3. 변경 사항을 적용하려면 편집기를 저장하고 닫으세요. 변경 사항이 적용된 후 Red Hat OpenShift용 cert-manager Operator는 istio-csr 피연산자에 대한 네임스페이스 선택기 구성을 업데이트합니다.

9.10.2.3. Istio 서버에 대한 CA 인증서 구성

Istio 워크로드에서 Istio 서버 인증서를 확인하는 데 사용되는 CA 번들이 포함된 ConfigMap을 구성할 수 있습니다. 구성되지 않은 경우 Red Hat OpenShift용 cert-manager Operator는 구성된 발급자와 Istio 인증서가 포함된 Kubernetes Secret에서 CA 인증서를 찾습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • IstioCSR 사용자 정의 리소스(CR)를 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR CR을 편집합니다.

    oc edit istiocsrs.operator.openshift.io default -n <istio_csr_project_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    <istio_csr_project_name>을 IstioCSR CR을 생성한 네임스페이스로 바꾸세요.
  2. spec.istioCSRConfig.certManager 섹션을 편집하여 CA 번들을 구성합니다.

    CA 번들 구성을 사용한 IstioCSR CR 샘플

    apiVersion: operator.openshift.io/v1alpha1
    kind: IstioCSR
    ...
    spec:
      istioCSRConfig:
        certManager:
          istioCACertificate:
            key: <key_in_the_configmap> 
    1
    
            name: <configmap_name> 
    2
    
            namespace: <configmap_namespace> 
    3
    Copy to Clipboard Toggle word wrap

    1
    CA 번들이 포함된 ConfigMap 에서 키 이름을 지정합니다.
    2
    ConfigMap 의 이름을 지정합니다. 이 필드를 업데이트하기 전에 참조된 ConfigMap 과 키가 있는지 확인하세요.
    3
    선택 사항: ConfigMap 이 있는 네임스페이스를 지정합니다. 이 필드를 설정하지 않으면 Red Hat OpenShift용 cert-manager Operator는 IstioCSR CR을 설치한 네임스페이스에서 ConfigMap을 검색합니다.
    참고

    CA 인증서가 순환될 때마다 최신 인증서로 ConfigMap을 수동으로 업데이트해야 합니다.

  3. 변경 사항을 적용하려면 편집기를 저장하고 닫으세요. 변경 사항이 적용된 후 cert-manager 연산자는 istio-csr 피연산자에 대한 CA 번들을 업데이트합니다.

Red Hat OpenShift용 cert-manager Operator가 관리하는 Istio-CSR 에이전트를 제거하려면 이 절차를 사용하세요.

사전 요구 사항

  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • Istio-CSR 기능을 활성화했습니다.
  • IstioCSR 사용자 정의 리소스를 생성했습니다.

프로세스

  1. 다음 명령을 실행하여 IstioCSR 사용자 정의 리소스를 제거합니다.

    $ oc -n <istio_csr_project_name> delete istiocsrs.operator.openshift.io default
    Copy to Clipboard Toggle word wrap
  2. 관련 리소스를 제거합니다.

    중요

    Red Hat OpenShift Service Mesh 또는 Istio 구성 요소의 중단을 방지하려면 다음 리소스를 제거하기 전에 구성 요소가 Istio-CSR 서비스 또는 Istio에 대해 발급된 인증서를 참조하지 않는지 확인하세요.

    1. 다음 명령을 실행하여 클러스터 범위 리소스를 나열하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장합니다.

      $ oc get clusterrolebindings,clusterroles -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr"
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 Istio-csr에 배포된 네임스페이스의 리소스를 나열하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장합니다.

      $ oc get certificate,deployments,services,serviceaccounts -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr" -n <istio_csr_project_name>
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 Red Hat OpenShift Service Mesh 또는 Istio가 배포한 네임스페이스의 리소스를 나열하고 나중에 참조할 수 있도록 나열된 리소스의 이름을 저장합니다.

      $ oc get roles,rolebindings -l "app=cert-manager-istio-csr,app.kubernetes.io/name=cert-manager-istio-csr" -n <istio_csr_project_name>
      Copy to Clipboard Toggle word wrap
    4. 이전 단계에 나열된 각 리소스에 대해 다음 명령을 실행하여 리소스를 삭제합니다.

      $ oc -n <istio_csr_project_name> delete <resource_type>/<resource_name>
      Copy to Clipboard Toggle word wrap

      관련된 모든 리소스가 삭제될 때까지 이 과정을 반복합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat