3.2.7. 상호 TLS 인증
라우터 및 백엔드 서비스에 대한 클라이언트 액세스는 상호 TLS 인증을 사용하여 제한할 수 있습니다. 라우터는 인증된
세트에 없는 클라이언트의 요청을 거부합니다. 상호 TLS 인증은 클라이언트 인증서에 구현되며 인증서를 발급한 CA(인증 기관), 인증서 폐기 목록 및/또는 모든 인증 대상 필터를 기반으로 제어할 수 있습니다. 라우터를 생성할 때 상호 tls 구성 옵션 --
mutual-tls-auth,
--mutual-tls-auth-ca
, --mutual-tls-auth-filter
를 사용합니다.
$ oc adm router --mutual-tls-auth=required \ --mutual-tls-auth-ca=/local/path/to/cacerts.pem ....
mutual -tls-auth
값은 required
,optional
또는 none
이며 기본값으로 none
입니다. mutual -tls-auth-ca
값은 하나 이상의 CA 인증서가 포함된 파일을 지정합니다. 이러한 CA 인증서는 라우터에서 클라이언트의 인증서를 확인하는 데 사용됩니다.
mutual -tls-auth-crl
을 사용하면 인증서 취소 목록을 지정하여 인증서(유효한 인증 기관에서 발급)가 취소된 경우를 처리할 수 있습니다.
$ oc adm router --mutual-tls-auth=required \ --mutual-tls-auth-ca=/local/path/to/cacerts.pem \ --mutual-tls-auth-filter='^/CN=my.org/ST=CA/C=US/O=Security/OU=OSE$' \ ....
인증서 제목에 따라 --mutual-tls-auth-filter
값을 사용하여 세분화된 액세스 제어에 사용할 수 있습니다. 값은 인증서 제목과 일치하는 데 사용되는 정규식입니다.
위의 상호 TLS 인증 필터 예제는 인증서 제목과 정확히 일치하는 제한적인 정규 표현식(regex)( regex
) 살펴봅니다. 덜 제한적인 정규 표현식을 사용하기로 결정한 경우 유효한 것으로 간주되는 CA에서 발급한 인증서와 일치할 수 있다는 점에 유의하십시오. 또한 발급한 인증서를 더 세부적으로 제어할
수 있도록 --mutual-tls-auth-ca
옵션을 사용하는 것이 좋습니다.
mutual -tls-auth=required
를 사용하면 인증된 클라이언트 만 백엔드 리소스에 액세스할 수 있습니다. 즉, 클라이언트가 인증 정보( 클라이언트 인증서라고 함)를 항상 제공해야 합니다. 상호 TLS 인증을 선택하도록 하려면 --mutual-tls-auth=optional
을 사용합니다(또는 none
을 사용하여 이를 비활성화 - 기본값임). 여기서 선택사항
은 인증 정보를 제공하는 클라이언트가 인증 정보를 제공하지 않아도 되며 클라이언트가 인증 정보를 제공하는 경우 X-SSL*
HTTP 헤더의 백엔드로만 전달됩니다.
$ oc adm router --mutual-tls-auth=optional \ --mutual-tls-auth-ca=/local/path/to/cacerts.pem \ ....
상호 TLS 인증 지원이 활성화된 경우( --mutual-tls-auth
플래그에 필수
또는 선택적
값 사용) 클라이언트 인증 정보는 X-SSL*
HTTP 헤더 형식의 백엔드로 전달됩니다.
X-SSL*
HTTP 헤더 X-SSL-Client-DN
: 인증서 제목의 전체 고유 이름(DN)의 예. X-SSL-Client-NotBefore
: YYMMDDhhmmss[Z] 형식의 클라이언트 인증서 시작 날짜입니다. X-SSL-Client-NotAfter
: YYMMDDhhmmss[Z] 형식의 클라이언트 인증서 종료일입니다. X-SSL-Client-SHA1
: 클라이언트 인증서의 SHA-1 지문입니다. X-SSL-Client-DER
: 클라이언트 인증서에 대한 전체 액세스를 제공합니다. base-64 형식으로 인코딩된 DER 형식 클라이언트 인증서를 포함합니다.