1.4. Ingress 오브젝트를 통한 경로 보안
Ingress 오브젝트를 통해 직접 인증서를 관리하여 애플리케이션 트래픽을 보호할 수 있습니다. 여기에는 수신 주석에서 대상 CA 인증서를 사용하거나 기본 인증서를 사용하여 경로를 생성하는 작업이 포함됩니다.
Ingress 컨트롤러는 Ingress 오브젝트를 통해 관리되는 인증서의 단방향 동기화를 유지 관리합니다. 생성된 경로의 TLS 구성에 직접 변경 사항을 직접 적용하지 마십시오. 다음번에 상위 ingress 오브젝트가 업데이트되거나 조정될 때 수동 수정은 자동으로 덮어씁니다. 이는 GitOps 관리 클러스터를 운영하는 경우 특히 중요합니다.
1.4.1. Ingress 주석에서 대상 CA 인증서를 사용하여 경로 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 대상 CA 인증서로 경로를 정의하려면 route.openshift.io/destination-ca-certificate-secret 주석을 Ingress 오브젝트에 적용합니다. 이 구성을 사용하면 Ingress 컨트롤러에서 지정된 보안을 사용하여 대상 서비스의 ID를 확인합니다.
사전 요구 사항
- PEM 인코딩 파일에 인증서/키 쌍이 있으며 경로 호스트에 인증서가 유효합니다.
- 인증서 체인을 완료하는 PEM 인코딩 파일에 별도의 CA 인증서가 있습니다.
- PEM 인코딩 파일에 별도의 대상 CA 인증서가 있습니다.
- 노출하려는 서비스가 있습니다.
프로세스
다음 명령을 입력하여 대상 CA 인증서에 대한 보안을 생성합니다.
$ oc create secret generic dest-ca-cert --from-file=tls.crt=<file_path>예를 들면 다음과 같습니다.
$ oc -n test-ns create secret generic dest-ca-cert --from-file=tls.crt=tls.crt출력 예
secret/dest-ca-cert createdIngress 주석에
route.openshift.io/destination-ca-certificate-secret을 추가합니다.apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: frontend annotations: route.openshift.io/termination: "reencrypt" route.openshift.io/destination-ca-certificate-secret: secret-ca-cert ...다음과 같습니다.
destination-ca-certificate-secretroute.openshift.io/destination-ca-certificate-secret주석을 지정합니다. 이 주석은 Kubernetes 시크릿을 참조합니다.Ingress 컨트롤러는 주석에서 참조되는 보안을 생성된 경로에 삽입합니다.
출력 예
apiVersion: route.openshift.io/v1 kind: Route metadata: name: frontend annotations: route.openshift.io/termination: reencrypt route.openshift.io/destination-ca-certificate-secret: secret-ca-cert spec: ... tls: insecureEdgeTerminationPolicy: Redirect termination: reencrypt destinationCACertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- ...