SSL プロトコルと TLS プロトコルの SSL ポリシー

このドキュメントでは、SSL という用語は、SSL(セキュア ソケット レイヤ)プロトコルと TLS(Transport Layer Security)プロトコルの両方を指します。

SSL ポリシーでは、Google Cloud ロードバランサがクライアントと SSL のネゴシエートするときに使用する一連の SSL 機能を指定します。たとえば、SSL ポリシーを使用して、ロードバランサにトラフィックを送信するためにすべてのクライアントでサポートする必要のある TLS の最小バージョンと機能を定義できます。

次のロードバランサは、グローバル SSL ポリシーをサポートしています。

  • グローバル外部アプリケーション ロードバランサ
  • 従来のアプリケーション ロードバランサ
  • クロスリージョン内部アプリケーション ロードバランサ
  • グローバル外部プロキシ ネットワーク ロードバランサ
  • 従来のプロキシ ネットワーク ロードバランサ

次のロードバランサは、リージョン SSL ポリシーをサポートしています。

  • リージョン外部アプリケーション ロードバランサ
  • リージョン内部アプリケーション ロードバランサ

デフォルトでは、これらのロードバランサは、優れたセキュリティと幅広い互換性を提供する一連の SSL 機能を使用します。アプリケーションの中には、HTTPS または SSL 接続に使用される SSL のバージョンおよび暗号をより詳細に管理しなければならないものがあります。SSL ポリシーを定義して、ロードバランサがクライアントと SSL をネゴシエートする際に使用する一連の SSL 機能を指定できます。

次の例は、クライアントからの接続がロードバランサで確立および終了される方法を示しています。

外部アプリケーション ロードバランサまたは外部プロキシ ネットワーク ロードバランサでのクライアント接続。
外部アプリケーション ロードバランサまたは外部プロキシ ネットワーク ロードバランサでのクライアント接続(クリックして拡大)

SSL ポリシーを使用して、ロードバランサで有効にする最小の TLS バージョンと SSL 機能を構成できます。SSL ポリシーは、クライアントとロードバランサ間の接続に影響を与えます(図の接続 1)。SSL ポリシーは、ロードバランサとバックエンド間の接続(接続 2)に影響しません。

SSL ポリシーの定義

SSL ポリシーを定義するには、最小の TLS バージョンとプロファイルを指定します。このプロファイルにより、ロードバランサで有効にする一連の SSL 機能が選択されます。

事前に構成された 3 つの Google 管理プロファイルを使用すると、アプリケーションに適した互換性レベルを指定できます。3 つの事前構成プロファイルは次のとおりです。

  • COMPATIBLE。最も幅広い範囲のクライアントがロードバランサと SSL をネゴシエートできるようにします。古くなった SSL 機能にしか対応していないクライアントも含みます。
  • MODERN。幅広い SSL 機能を使って、最新のクライアントが SSL をネゴシエートできるようにします。
  • RESTRICTED。厳しいコンプライアンス要件を満たす限定された SSL 機能のみをサポートします。

4 番目の CUSTOM プロファイルでは、SSL 機能を個別に選択できます。

SSL ポリシーは、クライアントが接続を確立するために使用できる TLS プロトコルの最小バージョンも指定します。

プロファイルでは、ロードバランサがネゴシエートできる TLS のバージョンを間接的に制限できます。たとえば、RESTRICTED プロファイルで有効になっている暗号は、TLS 1.2 でのみサポートされます。したがって、RESTRICTED プロファイルを選択すると、SSL ポリシーの最小 TLS バージョンで TLS 1.0 と 1.1 が許可されていても、クライアントは TLS 1.0 と 1.1 を使用できなくなります。

3 つの事前構成プロファイルのいずれかを選択しない場合やカスタム SSL ポリシーを作成しない場合、ロードバランサはデフォルトの SSL ポリシーを使用します。デフォルトの SSL ポリシーは、TLS 1.0 の最小 TLS バージョンの COMPATIBLE プロファイルを使用する 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_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256 の暗号のみをサポートしています。
QUIC SSL ポリシーの設定では、暗号の選択は制御されません。
SSL 3.0 以前 該当なし。Cloud Load Balancing ではサポートされていません。

それぞれの TLS handshake を行っているときに、クライアントはサポートしている TLS プロトコルの最大バージョンを提示します。サーバーは、クライアントとサーバーでサポートされていて、かつサーバー構成で許可されている、最大のプロトコル バージョンを選択する必要があります。たとえば、ロードバランサの最小の TLS バージョンの構成が 1.2 の場合、TLS 1.3 をサポートするモダンなクライアントとの handshake では TLS 1.3 が選択されます。TLS 1.2 のみをサポートする古いクライアントとの handshake では TLS 1.2 が使用されます。TLS 1.1 のみをサポートするさらに古いクライアントとの handshake は失敗します。

次の表に、それぞれの事前構成プロファイルで使用可能な SSL ポリシーの機能を示します。これらの機能はすべて、特定の暗号スイートが使用できるかどうかを制御します。これらは TLS バージョン 1.2 以前を使用するクライアント接続にのみ適用され、QUIC を使用するクライアントには適用されません。

IANA 機能 COMPATIBLE プロファイル MODERN プロファイル RESTRICTED プロファイル
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

機能の更新

COMPATIBLE、MODERN、RESTRICTED の各プロファイルで有効になっている一連の機能、および CUSTOM プロファイルで構成可能な機能を更新する権利を留保します。これは Google が古い SSL 機能のサポートを終了し、新しい SSL 機能のサポートを追加する際に行われます。

SSL 機能を強化する機能を追加する際、COMPATIBLE、MODERN、および RESTRICTED の各プロファイルで機能を有効にすることで、そのプロファイルを選択する SSL ポリシーで新しい機能を使用できるようになります。ただし、ポリシーが CUSTOM プロファイルを選択している場合は、追加機能を使用するようにポリシーの設定を変更する必要があります。

制限事項

  • 特定の SSL バージョンまたは暗号を無効にすると、一部の古いクライアントが、HTTPS または SSL を使用してプロキシに接続できなくなる場合があります。CUSTOM プロファイルで十分に広範な暗号を無効にすると、HTTPS をネゴシエートできるクライアントがいなくなる可能性があります。

  • ロードバランサに関連付けられた SSL 証明書は、ECDSA または RSA のデジタル署名を使用します。事前定義されたプロファイルは、この両方のタイプの証明書署名と互換性があります。カスタム プロファイルでは、ロードバランサの証明書で使用されるデジタル署名と互換性のある暗号を有効にする必要があります。

  • 暗号スイートを管理する機能は、TLS バージョン 1.2 以前を使用するクライアント接続にのみ適用されます。QUIC または TLS 1.3 を使用する接続では、暗号の選択が制御されません。

次のステップ