SSL ポリシーでは、Google Cloud ロードバランサがクライアントと SSL のネゴシエーションで使用する一連の SSL 機能を指定します。このドキュメントでは、SSL という用語は、SSL プロトコルと TLS プロトコルの両方を指します。
SSL ポリシーは、次のロードバランサでサポートされています。
- グローバル SSL ポリシー
- グローバル外部アプリケーション ロードバランサ
- 従来のアプリケーション ロードバランサ
- 外部プロキシ ネットワーク ロードバランサ(ターゲット SSL プロキシを使用)
- クロスリージョン内部アプリケーション ロードバランサ
- リージョン SSL ポリシー
- リージョン外部アプリケーション ロードバランサ
- リージョン内部アプリケーション ロードバランサ
SSL ポリシーの仕組みの詳細については、SSL ポリシーの概要をご覧ください。
HTTPS ロードバランサや SSL ロードバランサを作成する際、または作成後はいつでも、Google Cloud コンソールや Google Cloud CLI を使用して SSL ポリシーを作成できます。
SSL ポリシーを作成する
SSL ポリシーは、Google が管理するプロファイルまたはカスタム プロファイルを使用して作成できます。
Google 管理のプロファイルを使用して SSL ポリシーを作成する
コンソール
グローバル SSL ポリシー
Google マネージド プロファイルを使用してグローバル SSL ポリシーを作成するには、次の手順を行います。
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
[ポリシーを作成] をクリックします。
グローバル SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。
[名前] を入力します。
[TLS の最小バージョン] を選択します。
[プロフィール] で、[互換]、[モダン]、または [制限付き] を選択します。プロファイルの [有効な機能] と [無効な機能] がページの右側に表示されます。
ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。
[作成] をクリックします。
リージョン SSL ポリシー
Google マネージド プロファイルを使用してリージョン SSL ポリシーを作成するには、次の手順を行います。
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
[ポリシーを作成] をクリックします。
リージョン SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。
[名前] を入力します。
リージョンを選択します。
[TLS の最小バージョン] を選択します。
[プロフィール] で、[互換]、[モダン]、または [制限付き] を選択します。プロファイルの [有効な機能] と [無効な機能] がページの右側に表示されます。
ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。
[作成] をクリックします。
gcloud
グローバル SSL ポリシー
Google 管理のプロファイルを使用してグローバル SSL ポリシーを作成する場合の一般的な構文は次のとおりです。
gcloud compute ssl-policies create SSL_POLICY_NAME \ --profile COMPATIBLE | MODERN | RESTRICTED \ --min-tls-version 1.0 | 1.1 | 1.2
次のコマンドは、MODERN
プロファイルでグローバル SSL ポリシーを作成します。
gcloud compute ssl-policies create my-ssl-policy \ --profile MODERN \ --min-tls-version 1.0
リージョン SSL ポリシー
Google 管理のプロファイルを使用してリージョン SSL ポリシーを作成する場合の一般的な構文は次のとおりです。
gcloud compute ssl-policies create SSL_POLICY_NAME \ --profile COMPATIBLE | MODERN | RESTRICTED \ --min-tls-version 1.0 | 1.1 | 1.2 \ --region REGION
次のコマンドは、COMPATIBLE
プロファイルを使用してリージョン SSL ポリシーを作成します。
gcloud compute ssl-policies create my-ssl-policy \ --profile COMPATIBLE \ --min-tls-version 1.1 \ --region us-west1
カスタム プロファイルを使用して SSL ポリシーを作成する
コンソール
グローバル SSL ポリシー
カスタム プロファイルを使用してグローバル SSL ポリシーを作成するには、次の操作を行います。
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
[ポリシーを作成] をクリックします。
グローバル SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。
[名前] を入力します。
[TLS の最小バージョン] を選択します。
[プロファイル] で、[カスタム] を選択します。すべての機能が、ページの右側の [無効な機能] に表示されます。
[機能] のリストで、有効にする各暗号スイートを選択します。有効にした暗号スイートは、[有効な機能] としてリストされます。
ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。
[作成] をクリックします。
リージョン SSL ポリシー
カスタム プロファイルを使用してリージョン SSL ポリシーを作成するには、次の手順を行います。
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
[ポリシーを作成] をクリックします。
リージョン SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。
[名前] を入力します。
リージョンを選択します。
[TLS の最小バージョン] を選択します。
[プロファイル] で、[カスタム] を選択します。すべての機能が、ページの右側の [無効な機能] に表示されます。
[機能] のリストで、有効にする各暗号スイートを選択します。有効にした暗号スイートは、[有効な機能] としてリストされます。
ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。
[作成] をクリックします。
gcloud
CUSTOM プロファイルを使用して SSL ポリシーを作成すると、create
コマンドで指定した機能だけがサポートされます。他の機能はサポートされません。
グローバル SSL ポリシー
カスタム プロファイルでグローバル SSL ポリシーを作成するための一般的な構文は次のとおりです。
gcloud compute ssl-policies create SSL_POLICY_NAME \ --profile CUSTOM \ --min-tls-version 1.0 | 1.1 | 1.2 \ --custom-features SSL_FEATURE_1[,SSL_FEATURE_2,SSL_FEATURE_3]
次の例では、最小 TLS バージョン 1.2、および TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
と TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
の各機能を使用した CUSTOM プロファイルでグローバル SSL ポリシーを作成します。
gcloud compute ssl-policies create SSL_POLICY_NAME \ --profile CUSTOM \ --min-tls-version 1.2 \ --custom-features TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
リージョン SSL ポリシー
カスタム プロファイルを使用してリージョン SSL ポリシーを作成する一般的な構文は次のとおりです。
gcloud compute ssl-policies create SSL_POLICY_NAME \ --profile CUSTOM \ --min-tls-version 1.0 | 1.1 | 1.2 \ --custom-features SSL_FEATURE_1[,SSL_FEATURE_2,SSL_FEATURE_3] \ --region REGION
次の例では、最小 TLS バージョン 1.2、および TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
と TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
の各機能を使用した CUSTOM プロファイルでリージョン SSL ポリシーを作成します。
gcloud compute ssl-policies create SSL_POLICY_NAME \ --profile CUSTOM \ --min-tls-version 1.2 \ --custom-features TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \ --region us-west1
SSL ポリシーの一覧取得
コンソール
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
使用可能なすべての SSL ポリシーのリストを表示できます。[スコープ] フィールドは、SSL ポリシーがグローバルかリージョンかを示します。
gcloud
グローバル SSL ポリシーとリージョン SSL ポリシーの両方を一覧表示するには、次のコマンドを実行します。
gcloud compute ssl-policies list
グローバル SSL ポリシーのみを一覧表示するには、次のコマンドを実行します。
gcloud compute ssl-policies list --global
リージョン SSL ポリシーのみを一覧表示するには、次のコマンドを実行します。
gcloud compute ssl-policies list --regions REGION
SSL ポリシーで使用可能な機能の一覧取得
コンソール
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
機能を表示するポリシーの名前をクリックします。 有効または無効の暗号スイートのリストがページの右側に表示されます。
gcloud
グローバル SSL ポリシーで使用可能な機能を一覧表示するには:
gcloud compute ssl-policies list-available-features
リージョン SSL ポリシーで使用可能な機能を一覧表示するには:
gcloud compute ssl-policies list-available-features \ --region REGION
SSL ポリシーを変更する
コンソール
グローバルまたは リージョン SSL ポリシーを変更するには、次の操作を行います。
Google Cloud コンソールで、[SSL ポリシー] ページに移動します。
変更するポリシーの名前をクリックします。
[編集] をクリックします。
必要な変更を行います。
[保存] をクリックします。
gcloud
既存の SSL ポリシーを変更するには、更新するフィールドに対応するフラグのいずれかまたはすべてを渡します。未指定のフィールドは更新されません。
機能を更新すると、以前有効になっていた機能は削除され、指定した新しい機能に置き換えられます。
グローバル SSL ポリシー
gcloud compute ssl-policies update SSL_POLICY_NAME \ --profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM \ --min-tls-version 1.0|1.1|1.2 \ --custom-features FEATURES
リージョン SSL ポリシー
gcloud compute ssl-policies update SSL_POLICY_NAME \ --profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM \ --min-tls-version 1.0|1.1|1.2 \ [--custom-features FEATURES \] --region REGION
SSL ポリシーでターゲット プロキシを作成する
コンソール
次のドキュメントに示すように、ロードバランサの作成または更新時に、Google Cloud コンソールを使用してターゲット プロキシを作成できます。
gcloud
グローバル SSL ポリシーを使用してターゲット SSL プロキシを作成するには:
gcloud compute target-ssl-proxies create TARGET_SSL_PROXY_NAME \ --backend-service BACKEND_SERVICE_NAME \ --ssl-certificate SSL_CERTIFICATE_NAME \ --ssl-policy SSL_POLICY_NAME
グローバル SSL ポリシーを使用してグローバル ターゲット HTTPS プロキシを作成するには:
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificate SSL_CERTIFICATE_NAME \ --url-map URL_MAP_NAME \ --ssl-policy SSL_POLICY_NAME
リージョン SSL ポリシーを使用してリージョン ターゲット HTTPS プロキシを作成するには:
gcloud compute target-https-proxies create REGIONAL_TARGET_HTTPS_PROXY_NAME \ --ssl-certificates SSL_CERTIFICATE_NAME \ --url-map URL_MAP_NAME \ --url-map-region REGION \ --ssl-policy SSL_POLICY_NAME \ --region REGION
既存のターゲット プロキシに既存の SSL ポリシーを追加する
コンソール
gcloud
次のコマンドを使用して、既存の SSL ポリシーを SSL プロキシまたは HTTPS プロキシに追加します。
組織内でターゲット SSL プロキシのあるすべてのプロジェクトを探すには:
gcloud asset search-all-resources \ --scope=organizations/ORGANIZATION_ID \ --asset-types=compute.googleapis.com/TargetSslProxy
組織内でターゲット HTTPS プロキシのあるすべてのプロジェクトを探すには:
gcloud asset search-all-resources \ --scope=organizations/ORGANIZATION_ID \ --asset-types=compute.googleapis.com/TargetHttpsProxy
プロジェクト内のすべてのグローバル ターゲット SSL プロキシを一覧表示するには、
targetSslProxies.aggregatedList
メソッドを使用します。次に、filter
クエリ パラメータを使用して、SSL ポリシーを参照していないターゲット SSL プロキシを検索します。curl \ 'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies?filter=sslPolicy%3D%22%22&key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Accept: application/json' \ --compressed
プロジェクト内のすべてのグローバル ターゲット HTTPS プロキシとリージョン ターゲット HTTPS プロキシを一覧表示するには、
includeAllScopes
クエリ パラメータをtrue
に設定してtargetHttpsProxies.aggregatedList
メソッドを使用します。 次に、filter
クエリ パラメータを使用して、SSL ポリシーを参照していないターゲット HTTPS プロキシを検索します。curl \ 'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/targetHttpsProxies?filter=sslPolicy%3D%22%22&includeAllScopes=true&key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Accept: application/json' \ --compressed
既存のグローバル SSL ポリシーをターゲット SSL プロキシに適用するには:
gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \ --ssl-policy SSL_POLICY_NAME
既存のグローバル SSL ポリシーをグローバル ターゲット HTTPS プロキシに追加するには:
gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \ --ssl-policy SSL_POLICY_NAME
既存のリージョン SSL ポリシーをリージョン ターゲット HTTPS プロキシに適用するには:
gcloud compute target-https-proxies update REGIONAL_TARGET_HTTPS_PROXY_NAME \ --ssl-policy SSL_POLICY_NAME \ --region REGION
ターゲット プロキシの更新(SSL 証明書の更新など)で --ssl-policy
フラグまたは --clear-ssl-policy
フラグを指定しないと、SSL ポリシーは変更されません。--clear-ssl-policy
フラグについては、ターゲット プロキシから SSL ポリシーを削除するをご覧ください。
API
グローバル ターゲット プロキシにグローバル SSL ポリシーを設定するには、targetHttpsProxies.patch
メソッドを使用します。
リージョン ターゲット プロキシにリージョン SSL ポリシーを設定するには、regionTargetHttpsProxies.patch
メソッドを使用します。
ターゲット プロキシから SSL ポリシーを削除する
コンソール
gcloud
次のコマンドを使用して、 SSL プロキシまたは HTTPS プロキシから SSL ポリシーを削除します。ターゲット プロキシに別の SSL ポリシーが適用されていなければ、ロードバランサはデフォルトの SSL ポリシーを使用します。--clear-ssl-policy
フラグを使用すると、SSL ポリシーをデフォルトの SSL ポリシーに置き換えることができます。
ターゲット SSL プロキシからグローバル SSL ポリシーを削除するには:
gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \ --clear-ssl-policy
グローバル ターゲット HTTPS プロキシからグローバル SSL ポリシーを削除するには:
gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \ --clear-ssl-policy
リージョン ターゲット HTTPS プロキシからリージョン SSL ポリシーを削除するには:
gcloud compute target-https-proxies update REGIONAL_TARGET_HTTPS_PROXY_NAME \ --clear-ssl-policy \ --region REGION
更新コマンドで --clear-ssl-policy
フラグを指定すると、SSL ポリシーはプロキシから削除されます。
--clear-ssl-policy
フラグや --ssl-policy
フラグをターゲット プロキシの更新(SSL 証明書の更新など)で指定しないと、SSL ポリシーは変更されません。--ssl-policy
フラグについては、既存の SSL ポリシーを既存のターゲット プロキシに適用するをご覧ください。
SSL ポリシーを管理する
カスタム制約を使用して TLS 機能を制限する場合は、ターゲット SSL プロキシとターゲット HTTPS プロキシに適用されている既存の SSL ポリシーで TLS の対応状況を手動で確認します。
セキュリティ目標を満たしていない SSL ポリシーを特定して更新します。次のサンプル手順を使用します。
組織内で SSL ポリシー リソースのあるすべてのプロジェクトを探すには:
gcloud asset search-all-resources \ --scope=organizations/ORGANIZATION_ID \ --asset-types=compute.googleapis.com/SslPolicy
プロジェクト内のすべてのグローバル SSL ポリシーとリージョン SSL ポリシーを一覧表示するには、
includeAllScopes
クエリ パラメータをtrue
に設定してsslPolicies.aggregatedList
メソッドを使用します。 次に、filter
クエリ パラメータを使用して、セキュリティ目標に適切でない SSL ポリシーを検索します。たとえば、TLS バージョンが
1.2
より小さい SSL ポリシーを探すには、フィルタminTlsVersion="TLS_1_0" OR minTlsVersion="TLS_1_1"
を使用します。curl \ 'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/sslPolicies?filter=minTlsVersion%3D%22TLS_1_0%22%20OR%20minTlsVersion%3D%22TLS_1_1%22&includeAllScopes=true&key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Accept: application/json' \ --compressed
API キーを取得するには、API キーを使用して認証するをご覧ください。アクセス トークンを取得するには、
projects.serviceAccounts.generateAccessToken
メソッドを使用します。次に、TLS の最小要件を満たしていない SSL ポリシーを更新します。
グローバル SSL ポリシーを更新するには、次のコマンドを使用します。
gcloud compute ssl-policies update SSL_POLICY_NAME \ --min-tls-version=TLS_1_2 \ --global
リージョン SSL ポリシーを更新するには、次のコマンドを使用します。
gcloud compute ssl-policies update SSL_POLICY_NAME \ --min-tls-version=TLS_1_2 \ --region REGION
SSL ポリシーに関連付けられていないプロジェクト内のすべてのターゲット SSL プロキシを一覧表示するには、次のコマンドを実行します。
curl \ 'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies?filter=sslPolicy%3D%22%22&key=YOUR_API_KEY' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'Accept: application/json' \ --compressed
これらのターゲット プロキシに SSL ポリシーを適用するには、既存のターゲット プロキシに既存の SSL ポリシーを適用するをご覧ください。
Cloud Asset Inventory または Google API Explorer を使用して、セキュリティ要件を満たしていないリソースを検索して更新することもできます。
たとえば、SSL ポリシーに関連付けられていないターゲット SSL プロキシのリストを検索するには、Cloud Asset Inventory で次の手順を実施します。
Google Cloud コンソールで、[アセット インベントリ] ページに移動します。
[アセットクエリ] をクリックします。
[Edit query] フィールドに次のクエリを入力し、[Run] をクリックします。
select * from `compute_googleapis_com_TargetSslProxy` where resource.data.sslPolicy IS NULL
これらのターゲット プロキシに SSL ポリシーを適用するには、既存のターゲット プロキシに既存の SSL ポリシーを適用するをご覧ください。
空のレスポンスが表示されるまで、Cloud Asset Inventory でクエリを実行します。
上限
ロードバランサの割り当てと上限をご覧ください。
API リファレンス
REST API で SSL ポリシーを操作する場合に使用できるプロパティとメソッドについては、以下をご覧ください。
製品 | API ドキュメント |
---|---|
|
sslPolicies |
|
regionSslPolicies |
gcloud CLI リファレンス
Google Cloud CLI リファレンスについては、以下をご覧ください。
-
- グローバル:
--global
- リージョン:
--region=[REGION]
- グローバル:
次のステップ
- SSL ポリシーのコンセプトについては、SSL プロトコルと TLS プロトコルの SSL ポリシーをご覧ください。
- 外部プロキシ ネットワーク ロードバランサの詳細については、外部プロキシ ネットワーク ロードバランサの概要をご覧ください。
- 外部アプリケーション ロードバランサの詳細については、外部アプリケーション ロードバランサの概要をご覧ください。