부하 분산기에서 백엔드까지 암호화

모든 Google Cloud 리전의 암호화

VPC 네트워크 및 피어링된 VPC 네트워크 내의 모든 VM 간 트래픽이 암호화됩니다. 여기에는 물리적 경계 내 VM 간 트래픽(즉, 클러스터 내 트래픽)이 포함됩니다.

프록시 부하 분산기와 백엔드 간의 암호화

일부 프록시 부하 분산기의 경우(표 1 참조) Google은 Google Cloud VPC 네트워크 내에 상주하는 백엔드에 대한 트래픽을 자동으로 암호화합니다. 이를 자동 네트워크 수준 암호화라고 합니다. 자동 네트워크 수준 암호화는 다음 유형의 백엔드를 포함하는 커뮤니케이션에만 적용됩니다.

  • 인스턴스 그룹
  • 영역 NEG(GCE_VM_IP_PORT 엔드포인트)

또한 Google Cloud에서는 백엔드 서비스와의 통신을 암호화할 수 있는 보안 프로토콜 옵션을 제공합니다.

일부 Google Cloud 부하 분산기는 Google 프런트엔드(GFE)를 백엔드에 대한 클라이언트로 사용합니다. 일부는 오픈소스 Envoy 프록시를 사용합니다. 모든 경우에 부하 분산기는 TLS 1.3의 RFC 8446, 섹션 9.1에 나열된 암호화 스위트를 지원합니다. TLS 1.2 이하의 경우 부하 분산기는 COMPATIBLE SSL 정책 프로필과 연결된 암호화 스위트를 지원합니다.

다음 표는 요약 정보입니다.

표 1. 부하 분산기와 백엔드 사이의 커뮤니케이션
프록시 부하 분산기 프록시(클라이언트에서 백엔드로) 자동 네트워크 수준 암호화 백엔드 서비스 프로토콜 옵션
전역 외부 애플리케이션 부하 분산기 GFE(고급 라우팅 기능을 위한 Envoy 소프트웨어 포함) HTTP, HTTPS, HTTP/2
백엔드 전송에 감사 가능한 암호화가 필요하면 HTTPS 또는 HTTP/2를 선택합니다.
기본 애플리케이션 부하 분산기 GFE HTTP, HTTPS, HTTP/2
백엔드 전송에 감사 가능한 암호화가 필요하면 HTTPS 또는 HTTP/2를 선택합니다.
리전별 외부 애플리케이션 부하 분산기 Envoy 프록시 HTTP, HTTPS, HTTP/2
백엔드 전송에 감사 가능한 암호화가 필요하면 HTTPS 또는 HTTP/2를 선택합니다.
외부 프록시 네트워크 부하 분산기 GFE SSL 또는 TCP
백엔드 전송에 감사 가능한 암호화가 필요하면 SSL을 선택합니다.
내부 애플리케이션 부하 분산기 Envoy 프록시 HTTP, HTTPS, HTTP/2
백엔드 전송에 감사 가능한 암호화가 필요하면 HTTPS 또는 HTTP/2를 선택합니다.
리전별 내부 프록시 네트워크 부하 분산기 Envoy 프록시 TCP
Cloud Service Mesh 클라이언트 측 프록시 HTTPS 및 HTTP/2

보안 백엔드 프로토콜 사용 사례

다음과 같은 경우 백엔드 인스턴스에 연결하기 위한 보안 프로토콜이 권장됩니다.

  • 부하 분산기(또는 Cloud Service Mesh)에서 백엔드 인스턴스로 감사 가능하고 암호화된 연결이 필요한 경우

  • 부하 분산기가 인터넷 NEG를 통해 Google Cloud 외부에 있는 백엔드 인스턴스에 연결하는 경우 인터넷 NEG 백엔드와의 통신은 공개 인터넷을 전송할 수 있습니다. 부하 분산기가 인터넷 NEG에 연결될 때 공개 CA 서명 인증서는 유효성 검사 요구사항을 충족해야 합니다.

보안 백엔드 프로토콜 고려사항

보안 백엔드 서비스 프로토콜을 사용할 때는 다음 사항에 유의하세요.

  • 부하 분산기의 백엔드 인스턴스 또는 엔드포인트는 백엔드 서비스와 동일한 프로토콜을 사용하여 제공해야 합니다. 예를 들어 백엔드 서비스 프로토콜이 HTTPS이면 백엔드는 HTTPS 서버여야 합니다.

  • 백엔드 서비스 프로토콜이 HTTP/2이면 백엔드는 TLS를 사용해야 합니다. 구성 안내는 백엔드 인스턴스 또는 엔드포인트에서 실행되는 소프트웨어에 대한 문서를 참조하세요.

  • 백엔드 인스턴스 또는 엔드포인트가 HTTPS 또는 SSL 서버로 작동하도록 비공개 키와 인증서를 설치해야 합니다. 이러한 인증서는 부하 분산기의 프런트엔드 SSL 인증서와 일치하지 않아도 됩니다. 설치 안내는 백엔드 인스턴스 또는 엔드포인트에서 실행되는 소프트웨어에 대한 문서를 참조하세요.

  • 인터넷 NEG 백엔드가 있는 HTTPS 부하 분산기를 제외하고, 부하 분산기는 백엔드 연결에 서버 이름 표시(SNI) 확장 프로그램을 사용하지 않습니다.

  • 부하 분산기가 Google Cloud 내의 백엔드에 연결할 때, 부하 분산기는 백엔드의 모든 인증서를 수락합니다. 이 경우 부하 분산기는 인증서 유효성 검사를 수행하지 않습니다. 예를 들어 다음 상황에서도 인증서가 유효한 것으로 간주됩니다.

    • 인증서가 자체 서명됩니다.
    • 인증서가 알 수 없는 인증 기관(CA)에 의해 서명됩니다.
    • 인증서가 만료되었거나 아직 유효하지 않습니다.
    • CNsubjectAlternativeName 속성이 Host 헤더 또는 DNS PTR 레코드와 일치하지 않습니다.

보안 프런트엔드 프로토콜

대상 HTTPS 또는 대상 SSL 프록시를 구성의 일부로 사용할 경우 Google Cloud는 보안 프런트엔드 프로토콜을 사용합니다.

외부 애플리케이션 부하 분산기와 외부 프록시 네트워크 부하 분산기는 Google의 BoringCrypto 라이브러리를 사용합니다. FIPS 140-2에 대한 자세한 내용은 NIST 암호화 모듈 검증 프로그램 인증서 #3678를 참조하세요.

내부 애플리케이션 부하 분산기는 Google의 BoringSSL 라이브러리를 사용합니다. FIPS 140-2에 대한 자세한 내용은 Envoy 문서를 참조하세요. Google은 FIPS 준수 모드에서 내부 애플리케이션 부하 분산기를 위한 Envoy 프록시를 빌드합니다.

Cloud Service Mesh는 FIPS 준수 모드로 빌드된 Envoy 프록시를 지원합니다.