이 페이지에서는 전역 외부 애플리케이션 부하 분산기의 상호 TLS(mTLS)를 구성하는 예시를 보여줍니다.
시작하기 전에
- 외부 애플리케이션 부하 분산기 개요를 읽습니다.
- 상호 TLS 개요를 읽습니다.
- 사용자 제공 인증서로 상호 TLS를 설정하거나 비공개 CA로 상호 TLS를 설정합니다.
- 전역 외부 애플리케이션 부하 분산기는 다른 백엔드 서비스 및 버킷을 지원합니다. 다음과 같은 지원되는 백엔드로 전역 외부 애플리케이션 부하 분산기를 설정했는지 확인합니다.
부하 분산기에 mTLS 설정
상호 TLS 인증이 작동하려면 부하 분산기를 설정한 후 ServerTLSPolicy
리소스를 사용하여 대상 HTTPS 프록시를 업데이트해야 합니다.
ServerTLSPolicy
리소스를 이미 만들었는지 확인합니다. 자세한 내용은 네트워크 보안 리소스 만들기를 참조하세요.프로젝트의 모든 대상 HTTPS 프록시를 나열하려면
gcloud compute target-https-proxies list
명령어를 사용합니다.gcloud compute target-https-proxies list
ServerTLSPolicy
리소스를 연결할 대상 HTTPS 프록시의 이름을 기록해 둡니다. 다음 단계에서는 이 이름을TARGET_HTTPS_PROXY_NAME
이라고 합니다.대상 HTTPS 프록시의 구성을 파일로 내보내려면
gcloud compute target-https-proxies export
명령어를 사용합니다.gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --global \ --destination=xlb-mtls-target-proxy.yaml
현재 프로젝트의 지정된 위치에 있는 모든
ServerTlsPolicies
리소스를 나열합니다.콘솔
- Google Cloud 콘솔에서 클라이언트 인증 페이지로 이동합니다.
- 모든
ServerTlsPolicies
리소스가 표시됩니다.
gcloud
모든 클라이언트 인증(
ServerTlsPolicies
) 리소스를 나열하려면gcloud network-security server-tls-policies list
명령어를 사용합니다.gcloud network-security server-tls-policies list \ --location=global
mTLS를 구성하려면
ServerTlsPolicies
리소스 이름을 기록해 둡니다. 이 이름은 다음 단계에서SERVER_TLS_POLICY_NAME
이라고 합니다.ServerTlsPolicy
리소스 파일xlb-mtls-target-proxy.yaml
을 추가하려면 다음 명령어를 사용합니다.PROJECT_ID
를 Google Cloud 프로젝트의 ID로 바꿉니다.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/global/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> xlb-mtls-target-proxy.yaml
파일에서 대상 HTTPS 프록시 구성을 가져오려면
gcloud compute target-https-proxies import
명령어를 사용합니다.gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --global \ --source=xlb-mtls-target-proxy.yaml
mTLS 커스텀 헤더 추가
mTLS를 사용 설정하면 커스텀 요청 헤더를 사용하여 mTLS 연결에 대한 정보를 백엔드 서비스에 전달할 수 있습니다. mTLS 연결 실패가 로그에 캡처되도록 로깅을 사용 설정할 수도 있습니다.
프로젝트의 모든 백엔드 서비스를 나열하려면
gcloud compute backend-services list
명령어를 사용합니다.gcloud compute backend-services list
커스텀 헤더 및 로깅을 사용 설정하려면 백엔드 서비스의 이름을 기록해 둡니다. 이 이름은 다음 단계에서
BACKEND_SERVICE
라고 합니다.백엔드 서비스를 업데이트하려면
gcloud compute backend-services update
명령어를 사용합니다.gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1 \ --custom-request-header='X-Client-Cert-Present:{client_cert_present}' \ --custom-request-header='X-Client-Cert-Chain-Verified:{client_cert_chain_verified}' \ --custom-request-header='X-Client-Cert-Error:{client_cert_error}' \ --custom-request-header='X-Client-Cert-Hash:{client_cert_sha256_fingerprint}' \ --custom-request-header='X-Client-Cert-Serial-Number:{client_cert_serial_number}' \ --custom-request-header='X-Client-Cert-SPIFFE:{client_cert_spiffe_id}' \ --custom-request-header='X-Client-Cert-URI-SANs:{client_cert_uri_sans}' \ --custom-request-header='X-Client-Cert-DNSName-SANs:{client_cert_dnsname_sans}' \ --custom-request-header='X-Client-Cert-Valid-Not-Before:{client_cert_valid_not_before}' \ --custom-request-header='X-Client-Cert-Valid-Not-After:{client_cert_valid_not_after}'
다음 단계
- 기본 애플리케이션 부하 분산기에 대한 상호 TLS 설정
- 비공개 CA로 상호 TLS 설정
- 사용자 제공 인증서로 상호 TLS 설정
- mTLS 클라이언트 인증서 검증 로그 보기
- 부하 분산 설정 삭제