SSL 및 TLS 프로토콜을 위한 SSL 정책

SSL 정책은 클라이언트와 SSL을 협상할 때 Google Cloud 부하 분산기에서 사용하는 SSL 기능 집합을 지정합니다. 이 문서에서 SSL은 SSL 및 TLS 프로토콜 모두를 의미합니다.

다음 부하 분산기는 전역 SSL 정책을 지원합니다.

  • 전역 외부 애플리케이션 부하 분산기
  • 기본 애플리케이션 부하 분산기
  • 리전 간 내부 애플리케이션 부하 분산기
  • 전역 외부 프록시 네트워크 부하 분산기
  • 기존 프록시 네트워크 부하 분산기

다음 부하 분산기는 리전 SSL 정책을 지원합니다.

  • 리전 외부 애플리케이션 부하 분산기
  • 리전 내부 애플리케이션 부하 분산기

기본적으로 이러한 부하 분산기는 우수한 보안과 광범위한 호환성을 제공하는 SSL 기능 집합을 사용합니다. 일부 애플리케이션은 HTTPS 또는 SSL 연결에 사용되는 SSL 버전 및 암호화를 보다 강력하게 제어해야 합니다. SSL 정책을 정의하여 부하 분산기가 클라이언트와 SSL을 협상할 때 사용하는 SSL 기능 집합을 지정할 수 있습니다.

다음 예시에서는 클라이언트의 연결이 부하 분산기에서 설정되고 종료되는 방법을 보여줍니다.

외부 애플리케이션 부하 분산기 또는 외부 프록시 네트워크 부하 분산기의 클라이언트 연결
외부 애플리케이션 부하 분산기 또는 외부 프록시 네트워크 부하 분산기의 클라이언트 연결(확대하려면 클릭)

SSL 정책을 사용하여 부하 분산기에서 사용 설정된 최소 TLS 버전 및 SSL 기능을 구성할 수 있습니다. SSL 정책은 클라이언트와 부하 분산기 간의 연결에 영향을 미칩니다(이미지의 Connection-1). 부하 분산기와 백엔드 간의 연결(Connection-2)에는 영향을 미치지 않습니다.

SSL 정책 정의

SSL 정책을 정의하려면 최소 TLS 버전과 프로필을 지정하세요. 프로필을 통해 부하 분산기에서 사용 설정할 SSL 기능 집합을 선택합니다.

사전 구성된 Google 관리 프로필 세 개를 사용하면 애플리케이션에 적합한 호환성 수준을 지정할 수 있습니다. 사전 구성된 프로필 세 개는 다음과 같습니다.

  • 호환 가능: 오래된 SSL 기능만 지원되는 클라이언트 등 가장 폭넓은 클라이언트 모음을 지원해 부하 분산기와 SSL의 협상이 가능합니다.
  • 최신: 다양한 SSL 기능 세트를 지원하므로 현재 제공되는 클라이언트가 SSL과 협상할 수 있습니다.
  • 제한됨: 축소된 SSL 기능 세트를 지원합니다. 보다 엄격한 규정 준수 요구사항을 충족하도록 마련되었습니다.

네 번째 커스텀 프로필을 사용하면 SSL 기능을 개별적으로 선택할 수 있습니다.

또한 SSL 정책은 클라이언트에서 연결하는 데 사용할 수 있는 TLS 프로토콜의 최소 버전을 지정합니다. 프로필을 통해 부하 분산기에서 협상할 수 있는 TLS 버전을 제한할 수도 있습니다. 예를 들어 '제한됨' 프로필에서 사용할 수 있는 암호화는 TLS 1.2에서만 지원됩니다. '제한됨' 프로필을 효과적으로 선택하면 선택된 최소 TLS 버전과 상관없이 클라이언트에서 TLS 1.2를 사용해야 합니다.

사전 구성된 세 프로필 중 하나를 선택하지 않거나 커스텀 SSL 정책을 만들지 않으면 부하 분산기에서 기본 SSL 정책을 사용합니다. 기본 정책이란 최소 TLS 버전인 TLS 1.0의 '호환 가능' 프로필을 사용하는 SSL 정책을 의미합니다.

한 SSL 정책을 여러 대상 프록시에 연결할 수 있습니다. 특정 대상 프록시에 SSL 정책을 여러 개 구성할 수는 없습니다. SSL 정책을 변경해도 기존 부하 분산기 연결이 변경되거나 중단되지 않습니다.

Cloud Load Balancing에서는 SSL 버전 3.0 이하를 지원하지 않습니다. 다음 표에서는 TLS/SSL 버전별 기능 지원에 대해 설명합니다.

TLS/SSL 버전 기능 지원
TLS 1.0, 1.1 또는 1.2 암호화 스위트를 제어하는 SSL 정책의 설정이 클라이언트 연결에 적용됩니다.
TLS 1.3 SSL 정책의 설정이 암호화 선택을 제어하지 않습니다. TLS 1.3에서는 TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 암호화만 지원합니다.
QUIC SSL 정책의 설정이 암호화 선택을 제어하지 않습니다.
SSL 3.0 이전 버전 해당 없음 Cloud Load Balancing에서 지원되지 않습니다.

각 TLS 핸드셰이크 중에 클라이언트는 지원되는 가장 높은 TLS 프로토콜 버전을 나타냅니다. 서버는 클라이언트와 서버에서 지원되고 서버 구성에서 허용하는 가장 높은 프로토콜 버전을 선택해야 합니다. 예를 들어 부하 분산기가 최소 TLS 버전 1.2로 구성된 경우 TLS 1.3을 지원하는 최신 클라이언트와의 핸드셰이크는 TLS 1.3을 선택합니다. TLS 1.2만 지원하는 이전 클라이언트와의 핸드셰이크는 TLS 1.2를 사용합니다. TLS 1.1만 지원하는 더 이전의 클라이언트와의 핸드셰이크는 실패합니다.

다음 표에는 사전 구성된 프로필별로 사용 가능한 SSL 정책 기능이 나열되어 있습니다. 모든 기능은 특정 암호화 모음의 사용 가능성을 제어하고, TLS 1.2 이전 버전을 사용하는 클라이언트 연결에만 적용되며, QUIC를 사용하는 클라이언트에는 적용되지 않습니다.

IANA 기능 호환 가능 프로필 최신 프로필 제한됨 프로필
0xCCA9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
0xCCA8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
0xC02B TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
0xC02F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
0xC02C TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
0xC030 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
0xC009 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
0xC013 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
0xC00A TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
0xC014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
0x009C TLS_RSA_WITH_AES_128_GCM_SHA256
0x009D TLS_RSA_WITH_AES_256_GCM_SHA384
0x002F TLS_RSA_WITH_AES_128_CBC_SHA
0x0035 TLS_RSA_WITH_AES_256_CBC_SHA
0x000A TLS_RSA_WITH_3DES_EDE_CBC_SHA

기능 업데이트

Google은 호환 가능, 최신, 제한됨 프로필에 지원되는 기능 모음과 커스텀 프로필에서 구성 가능한 기능도 업데이트할 수 있는 권리를 보유합니다. 이전 SSL 기능 지원을 중단하고 최신 기능에 대한 지원을 추가하는 과정에서 이 같은 업데이트가 이루어집니다.

SSL 기능을 개선하는 기능을 추가하는 즉시 호환 가능, 최신, 제한됨 프로필에서 이를 지원하도록 조치해 해당 프로필을 선택하는 SSL 정책에서 새로운 기능을 활용할 수 있습니다. 단, 커스텀 프로필을 선택한 정책의 경우 추가 기능을 사용하려면 정책 설정을 수정해야 합니다.

보안상의 이유로 제어 기능을 없애야 하는 경우를 제외하고는(모든 정책에 강제 적용하거나 강제 적용하지 않도록) 제어하는 기능을 삭제할 경우 사전에 통지합니다.

제한사항

  • 특정 SSL 버전이나 암호화를 중지하면 일부 이전 클라이언트에서 HTTPS 또는 SSL을 사용하여 프록시에 연결하지 못하게 될 수 있습니다. 커스텀 프로필에서 중지하도록 선택한 암호화가 일정 범위에 이르면 클라이언트에서 HTTPS를 협상할 수 없게 됩니다.

  • 부하 분산기와 연결된 SSL 인증서는 ECDSA 또는 RSA 디지털 서명 중 하나를 사용합니다. 사전 정의된 프로필은 두 가지 유형의 인증서 서명과 모두 호환됩니다. 커스텀 프로필에서는 부하 분산기 인증서에 사용된 디지털 서명과 호환되는 암호화를 사용 설정해야 합니다.

  • 암호화 모음을 제어하는 기능은 TLS 1.2 이전 버전을 사용하는 클라이언트 연결에만 적용됩니다. QUIC 또는 TLS 1.3을 사용하는 연결에서는 암호화 선택을 제어하지 않습니다.

다음 단계