説明
古い TLS バージョンを許可する SSL ポリシーは、現在の通信セキュリティ要件を満たさない場合があります。実際にネゴシエーションできる接続は、最小 TLS バージョン、プロファイル、暗号スイートによって決まるため、併せて確認する必要があります。
ポリシーは実際のターゲット HTTPS または SSL プロキシに関連付けて適用します。クライアントとロードバランサー間の TLS を管理するもので、バックエンドの暗号化は別途構成が必要です。
想定される影響
- 許可された古いプロトコルを使う接続が、組織のセキュリティ要件を満たさない場合があります。
- 互換性を確認せずにポリシーを強化すると、必要なクライアントが接続できなくなるおそれがあります。
対処方法
対応するプロファイルと暗号スイートの組み合わせで、min_tls_version を TLS_1_2 以上に設定してください。実際のプロキシへ関連付け、必要なクライアントが接続でき、許可しないプロトコルが拒否されることを試験してください。バックエンドの通信暗号化も別途確認してください。
例
SSL ポリシーの定義を比較する抜粋です。ポリシー名、プロジェクト名、サービスアカウントの JSON ファイルへのパスを実際の値に置き換えてください。プロキシへの関連付けは省略しています。
変更前
yaml
- name: create a SSL policy
google.cloud.gcp_compute_ssl_policy:
name: test-ssl-policy
profile: CUSTOM
custom_features:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
- name: create a SSL policy2
google.cloud.gcp_compute_ssl_policy:
name: test-ssl-policy2
profile: CUSTOM
min_tls_version: TLS_1_1
custom_features:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
最小バージョンを省略するか TLS_1_1 に設定しています。記載の二つの GCM スイートは TLS 1.2 用なので、この値だけで実際の TLS 1.1 接続や弱い暗号の使用を断定することはできません。
変更後
yaml
- name: create a SSL policy
google.cloud.gcp_compute_ssl_policy:
name: test-ssl-policy
profile: CUSTOM
min_tls_version: TLS_1_2
custom_features:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
state: present
同じ CUSTOM 暗号スイートに TLS_1_2 を明示します。ポリシーの関連付けと、クライアントが実際にネゴシエーションする TLS を確認してください。