5.7.10.2. 보안 경로
보안 경로는 경로의 TLS 종료를 지정하고 선택적으로 키와 인증서를 제공합니다.
OpenShift Container Platform의 TLS 종료는 사용자 정의 인증서를 제공하기 위해 SNI 를 사용합니다. 포트 443에서 수신된 SNI 이외의 트래픽은 TLS 종료 및 기본 인증서(요청된 호스트 이름과 일치하지 않을 수 있으므로 유효성 검사 오류가 발생할 수 있음)를 사용하여 처리됩니다.
보안 경로는 다음 세 가지 유형의 보안 TLS 종료를 사용할 수 있습니다.
에지 종료
에지 종료를 사용하면 대상에 트래픽을 프록시하기 전에 라우터에서 TLS가 종료됩니다. TLS 인증서는 라우터의 프런트 엔드에서 제공하므로 경로에 구성해야 합니다. 그렇지 않으면 TLS 종료에 라우터의 기본 인증서를 사용합니다.
에지 종료를 사용하여 보안 경로
apiVersion: v1 kind: Route metadata: name: route-edge-secured 1 spec: host: www.example.com to: kind: Service name: service-name 2 tls: termination: edge 3 key: |- 4 -----BEGIN PRIVATE KEY----- [...] -----END PRIVATE KEY----- certificate: |- 5 -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- caCertificate: |- 6 -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
TLS가 라우터에서 종료되므로 내부 네트워크를 통한 라우터에서 엔드포인트로의 연결은 암호화되지 않습니다.
에지 종료 경로는 비보안 체계(
를 지정할 수 있습니다. HTTP
)의 트래픽을 비활성화, 허용 또는 리디렉션할 수 있는 비보안EdgeTerminationPolicyinsecureEdgeTerminationPolicy
에 허용되는 값은 다음과 같습니다. 없음
또는 비어 있음(비활성화된 경우), 허용
또는 리디렉션
. 기본 insecureEdgeTerminationPolicy
는 비보안 스키마에서 트래픽을 비활성화하는 것입니다. 일반적인 사용 사례는 콘텐츠를 보안 체계를 통해 제공할 수 있지만 비보안 스키마를 통해 자산(예: 이미지, 스타일시트 및 javascript)을 제공하는 것입니다.
HTTP 트래픽을 허용하는 에지 종료를 사용하여 보안 경로
apiVersion: v1 kind: Route metadata: name: route-edge-secured-allow-insecure 1 spec: host: www.example.com to: kind: Service name: service-name 2 tls: termination: edge 3 insecureEdgeTerminationPolicy: Allow 4 [ ... ]
HTTP 트래픽을 HTTPS로 리디렉션하는 에지 종료를 사용하여 보안 경로
apiVersion: v1 kind: Route metadata: name: route-edge-secured-redirect-insecure 1 spec: host: www.example.com to: kind: Service name: service-name 2 tls: termination: edge 3 insecureEdgeTerminationPolicy: Redirect 4 [ ... ]
패스스루 종료
패스스루 종료를 사용하면 암호화된 트래픽이 라우터에서 TLS 종료를 제공하지 않고 바로 대상으로 전송됩니다. 따라서 키 또는 인증서가 필요하지 않습니다.
패스스루 종료를 사용하는 보안 경로
apiVersion: v1 kind: Route metadata: name: route-passthrough-secured 1 spec: host: www.example.com to: kind: Service name: service-name 2 tls: termination: passthrough 3
대상 Pod는 끝점의 트래픽에 대한 인증서를 제공해야 합니다. 현재 이 방법은 클라이언트 인증서(양방향 인증이라고도 함)를 지원할 수 있는 유일한 방법입니다.
passthrough 경로에는 insecureEdgeTerminationPolicy
도 있을 수 있습니다. 유일한 유효한 값은 None
(또는 비어 있거나 비활성화된 경우) 또는 리디렉션
입니다.
재암호화 종료
재암호화는 에지 종료의 변형으로, 라우터에서 인증서를 사용하여 TLS를 종료한 다음 다른 인증서가 있을 수 있는 엔드포인트에 대한 연결을 다시 암호화합니다. 따라서 내부 네트워크를 통해서도 전체 연결 경로가 암호화됩니다. 라우터는 상태 점검을 사용하여 호스트의 신뢰성을 결정합니다.
재암호화 종료를 사용하여 보안 경로
apiVersion: v1 kind: Route metadata: name: route-pt-secured 1 spec: host: www.example.com to: kind: Service name: service-name 2 tls: termination: reencrypt 3 key: [as in edge termination] certificate: [as in edge termination] caCertificate: [as in edge termination] destinationCACertificate: |- 4 -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
destinationCACertificate
필드를 비워 두면 라우터는 서비스 제공 인증서에 대해 생성된 인증 기관을 자동으로 활용하고 모든 Pod에 /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
로 삽입됩니다. 이를 통해 경로에 대한 인증서를 생성하지 않고도 엔드 투 엔드 암호화를 활용하는 새 경로가 허용됩니다. 이는 관리자가 허용하지 않는 한 destinationCACertificate
를 허용하지 않을 수 있는 사용자 지정 라우터 또는 F5 라우터에 유용합니다.
재암호화 경로에는 edge 종료 경로와 동일한 값이 있는 insecureEdgeTerminationPolicy
가 있을 수 있습니다.