🔑

Google Cloud デフォルトの SSL ポリシーは使ってはいけない

2022/11/14に公開

「カスタム SSL ポリシー」を作成し、TLS 1.0 と TLS 1.1 が使用されないようにしましょう。

どういうことか

「SSL ポリシー」では、Google Cloud ロードバランサがクライアントと SSL のネゴシエートするときに使用する一連の SSL 機能を指定します。
独自に「カスタム SSL ポリシー」を作成してロードバランサーに適用することができますが、そうでない場合は「デフォルトの SSL ポリシー」が使用されます。

https://cloud.google.com/load-balancing/docs/ssl-policies-concepts?hl=ja

しかし、この「デフォルトの SSL ポリシー」は下図のように、Minimum TLS Version: 1.0 と設定されており TLS 1.0 と TLS 1.1 が有効となっています。このポリシーを使用するとそれらのバージョンも使用できることになってしまいます。

TLS 1.0 と TLS 1.1 は、脆弱性のため RFC 8996deprecated となり、非推奨とされているバージョンです。すなわち、基本的には デフォルトの SSL ポリシー は使用すべきではないというわけです。

どうすればいいか

「カスタム SSL ポリシー」を作成し、Minimum TLS Version: 1.2 と設定してください。こうすることで、TLS 1.2 以上のバージョンのみが使用されるようになり、それ以下のバージョンは無効化されます。

Terraform での設定例は下記の通りです。
(グローバル外部 HTTPS ロードバランサの場合)

resource "google_compute_ssl_policy" "default" {
  name            = "my-custom-policy"
  profile         = "MODERN"
  min_tls_version = "TLS_1_2"
}

resource "google_compute_target_https_proxy" "default" {
  name            = "my-proxy"
  url_map         = google_compute_url_map.default.name
  # 省略
  ssl_policy      = google_compute_ssl_policy.default.name
}

Discussion