7.4. 신뢰 구성
전송 암호화 기능을 활성화할 때 호출하는 모든 클라이언트가 전송 암호화에 사용되는 인증서를 발급하도록 CA(인증 기관)를 신뢰해야 합니다.
신뢰를 보장해야 하는 여러 위치가 있습니다.
- 브라우저 또는 기타 애플리케이션과 같은 클러스터 외부 클라이언트입니다. OpenShift Serverless의 범위를 벗어납니다.
- Activator, Queue-Proxy, Ingress-Controller와 같은 OpenShift Serverless 시스템 구성 요소.
- Knative 서비스 또는 기타 워크로드와 같은 클러스터 내부 클라이언트입니다.
7.4.1. OpenShift Serverless Serving 구성 요소 및 Knative 서비스에 대한 신뢰 구성
OpenShift Serverless Serving 구성 요소 및 Knative 서비스가 인증서를 발급하는 CA를 신뢰하도록 하려면 networking.knative.dev/trust-bundle: true
라벨을 사용하여 다음 네임스페이스에 ConfigMap을 생성할 수 있습니다.
knative-serving
- OpenShift Serverless Serving의 시스템 구성 요소입니다.
knative-serving-ingress
- OpenShift Serverless Serving의 수신 계층입니다.
Istio-system
또는 자체 Service Mesh 네임스페이스- Service Mesh 통합이 활성화된 경우
Knative는 이름에 관계없이 ConfigMap의 모든 데이터 키를 이 라벨을 사용하여 읽습니다. 하나의 키는 하나 이상의 CA 또는 중간 인증서를 포함할 수 있습니다. 유효한 경우 Knative 구성 요소의 신뢰 저장소에 추가됩니다.
다음은 예제 ConfigMap입니다.
apiVersion: v1 data: cacerts.pem: | 1 -----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIQMQuip05h7NLQq2TB+j9ZmTANBgkqhkiG9w0BAQsFADAW MRQwEgYDVQQDEwtrbmF0aXZlLmRldjAeFw0yMzExMjIwOTAwNDhaFw0yNDAyMjAw OTAwNDhaMBYxFDASBgNVBAMTC2tuYXRpdmUuZGV2MIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEA3clC3CV7sy0TpUKNuTku6QmP9z8JUCbLCPCLACCUc1zG FEokqOva6TakgvAntXLkB3TEsbdCJlNm6qFbbko6DBfX6rEggqZs40x3/T+KH66u 4PvMT3fzEtaMJDK/KQOBIvVHrKmPkvccUYK/qWY7rgBjVjjLVSJrCn4dKaEZ2JNr Fd0KNnaaW/dP9/FvviLqVJvHnTMHH5qyRRr1kUGTrc8njRKwpHcnUdauiDoWRKxo Zlyy+MhQfdbbyapX984WsDjCvrDXzkdGgbRNAf+erl6yUm6pHpQhyFFo/zndx6Uq QXA7jYvM2M3qCnXmaFowidoLDsDyhwoxD7WT8zur/QIDAQABo1cwVTAOBgNVHQ8B Af8EBAMCAgQwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB/zAd BgNVHQ4EFgQU7p4VuECNOcnrP9ulOjc4J37Q2VUwDQYJKoZIhvcNAQELBQADggEB AAv26Vnk+ptQrppouF7yHV8fZbfnehpm07HIZkmnXO2vAP+MZJDNrHjy8JAVzXjt +OlzqAL0cRQLsUptB0btoJuw23eq8RXgJo05OLOPQ2iGNbAATQh2kLwBWd/CMg+V KJ4EIEpF4dmwOohsNR6xa/JoArIYH0D7gh2CwjrdGZr/tq1eMSL+uZcuX5OiE44A 2oXF9/jsqerOcH7QUMejSnB8N7X0LmUvH4jAesQgr7jo1JTOBs7GF6wb+U76NzFa 8ms2iAWhoplQ+EHR52wffWb0k6trXspq4O6v/J+nq9Ky3vC36so+G1ZFkMhCdTVJ ZmrBsSMWeT2l07qeei2UFRU= -----END CERTIFICATE----- kind: ConfigMap metadata: labels: networking.knative.dev/trust-bundle: "true" name: knative-bundle 2 namespace: knative-serving
CA 번들 ConfigMap이 생성 또는 업데이트되면 Serving 구성 요소가 자동으로 이를 선택하여 CA 또는 중간 인증서를 CA 신뢰 저장소에 추가합니다. 신뢰 저장소는 모든 새로운 HTTP 연결에 대해 새로 고쳐집니다.
7.4.2. 사용자 정의 워크로드에 대한 신뢰 구성
OpenShift Serverless Serving이 모든 워크로드를 제어하고 신뢰를 관리하는 것은 런타임 및 언어에 따라 크게 달라지므로 사용자 지정 워크로드는 OpenShift Serverless의 범위를 벗어납니다. 다음은 사용자 정의 워크로드에 대한 기타 옵션입니다.
- 빌드 시 컨테이너 이미지에 CA 번들 추가 이렇게 하면 CA가 회전할 때 모든 애플리케이션을 다시 빌드하고 재배포해야 하므로 CA 교체가 어려워집니다.
- 시크릿 또는 ConfigMap과 같은 파일 시스템에 CA 번들을 마운트하고 애플리케이션에서 TLS 연결을 확인하는 데 사용합니다.
- 환경 변수에서 CA 번들을 읽고 애플리케이션이 TLS 연결을 확인하는 데 사용하는지 확인합니다.
- Kubernetes API를 사용하여 시크릿 또는 ConfigMap에서 CA 번들에 액세스하고 애플리케이션에서 TLS 연결을 확인하는 데 사용하는지 확인합니다.