SSL プロトコルと TLS プロトコルに SSL ポリシーを使用する

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 ポリシーを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[SSL ポリシー] ページに移動します。

    [SSL ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. グローバル SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。

  4. [名前] を入力します。

  5. [TLS の最小バージョン] を選択します。

  6. [プロフィール] で、[互換]、[モダン]、または [制限付き] を選択します。プロファイルの [有効な機能] と [無効な機能] がページの右側に表示されます。

  7. ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。

  8. [作成] をクリックします。

リージョン SSL ポリシー

Google マネージド プロファイルを使用してリージョン SSL ポリシーを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[SSL ポリシー] ページに移動します。

    [SSL ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. リージョン SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。

  4. [名前] を入力します。

  5. リージョンを選択します。

  6. [TLS の最小バージョン] を選択します。

  7. [プロフィール] で、[互換]、[モダン]、または [制限付き] を選択します。プロファイルの [有効な機能] と [無効な機能] がページの右側に表示されます。

  8. ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。

  9. [作成] をクリックします。

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 ポリシーを作成するには、次の操作を行います。

  1. Google Cloud コンソールで、[SSL ポリシー] ページに移動します。

    [SSL ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. グローバル SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。

  4. [名前] を入力します。

  5. [TLS の最小バージョン] を選択します。

  6. [プロファイル] で、[カスタム] を選択します。すべての機能が、ページの右側の [無効な機能] に表示されます。

  7. [機能] のリストで、有効にする各暗号スイートを選択します。有効にした暗号スイートは、[有効な機能] としてリストされます。

  8. ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。

  9. [作成] をクリックします。

リージョン SSL ポリシー

カスタム プロファイルを使用してリージョン SSL ポリシーを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[SSL ポリシー] ページに移動します。

    [SSL ポリシー] に移動

  2. [ポリシーを作成] をクリックします。

  3. リージョン SSL ポリシーの横にある [作成] ボタンをクリックします。[ポリシーの作成] ページが表示されます。

  4. [名前] を入力します。

  5. リージョンを選択します。

  6. [TLS の最小バージョン] を選択します。

  7. [プロファイル] で、[カスタム] を選択します。すべての機能が、ページの右側の [無効な機能] に表示されます。

  8. [機能] のリストで、有効にする各暗号スイートを選択します。有効にした暗号スイートは、[有効な機能] としてリストされます。

  9. ポリシーを追加するロードバランサがある場合は、[ターゲットに適用] をクリックして、SSL ポリシーのターゲットとして転送ルールを選択します。必要に応じて、ターゲットを追加します。

  10. [作成] をクリックします。

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_SHA256TLS_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_SHA256TLS_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 ポリシーのリストを表示できます。[スコープ] フィールドは、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 ポリシーで使用可能な機能の一覧取得

コンソール

  1. Google Cloud コンソールで、[SSL ポリシー] ページに移動します。

    [SSL ポリシー] に移動

  2. 機能を表示するポリシーの名前をクリックします。 有効または無効の暗号スイートのリストがページの右側に表示されます。

gcloud

グローバル SSL ポリシーで使用可能な機能を一覧表示するには:

gcloud compute ssl-policies list-available-features

リージョン SSL ポリシーで使用可能な機能を一覧表示するには:

gcloud compute ssl-policies list-available-features \
    --region REGION

SSL ポリシーを変更する

コンソール

グローバルまたは リージョン SSL ポリシーを変更するには、次の操作を行います。

  1. Google Cloud コンソールで、[SSL ポリシー] ページに移動します。

    [SSL ポリシー] に移動

  2. 変更するポリシーの名前をクリックします。

  3. [編集] をクリックします。

  4. 必要な変更を行います。

  5. [保存] をクリックします。

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 で次の手順を実施します。

    1. Google Cloud コンソールで、[アセット インベントリ] ページに移動します。

      アセット インベントリに移動

    2. [アセットクエリ] をクリックします。

    3. [Edit query] フィールドに次のクエリを入力し、[Run] をクリックします。

      select * from `compute_googleapis_com_TargetSslProxy` where resource.data.sslPolicy IS NULL
      
    4. これらのターゲット プロキシに SSL ポリシーを適用するには、既存のターゲット プロキシに既存の SSL ポリシーを適用するをご覧ください。

    5. 空のレスポンスが表示されるまで、Cloud Asset Inventory でクエリを実行します。

上限

ロードバランサの割り当てと上限をご覧ください。

API リファレンス

REST API で SSL ポリシーを操作する場合に使用できるプロパティとメソッドについては、以下をご覧ください。

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

gcloud CLI リファレンス

Google Cloud CLI リファレンスについては、以下をご覧ください。

次のステップ