TLS インスペクションを設定する

このページでは、Cloud Next Generation Firewall に Transport Layer Security(TLS)インスペクションを設定する方法について説明します。

始める前に

TLS インスペクションを構成する前に、次のセクションの作業を完了します。

Certificate Authority Service を有効にする

Cloud NGFW は、Certificate Authority Service を使用して、中間認証局(CA)を生成します。Cloud NGFW は、これらの中間 CA を使用して TLS インスペクションに使用される証明書を生成します。

CA Service API は、Google Cloud コンソールを使用して有効にできます。

Enable the API

Google Cloud CLI を使用して CA Service を有効にするには、次のコマンドを使用します。

   gcloud services enable privateca.googleapis.com
  

Certificate Manager を有効にする

Cloud NGFW は、Certificate Manager を使用して信頼構成を作成します。信頼構成を使用しない場合は、この手順をスキップしてください。

Certificate Manager API は、Google Cloud コンソールを使用して有効にできます。

Enable the API

Google Cloud CLI を使用して Certificate Manager を有効にするには、次のコマンドを使用します。

   gcloud services enable certificatemanager.googleapis.com
  

信頼構成を作成する

このステップの実行は任意です。信頼構成を作成するには、このセクションの手順を行います。

  1. CA プールを作成します

    この手順で作成する CA プールは、TLS インスペクション ポリシーの構成用に作成する CA プールとは異なります。

  2. 前に作成した CA プールを使用して、ルート CA を作成します。

  3. 自動生成された鍵を使用して証明書を作成します。前に作成した CA プール名を使用します。

  4. 作成した証明書から CA の公開証明書を取得します。

    $PEM-CERT=$(gcloud privateca roots describe ROOT_CA_NAME \
       --location LOCATION \
       --project PROJECT_ID \
       --pool CA_POOL \
       --format "value(pemCaCertificates)")
    

    次のように置き換えます。

    • ROOT_CA_NAME: ルート CA の名前
    • LOCATION: ルート CA のロケーション
    • PROJECT_ID: ルート CA のプロジェクト ID
    • CA_POOL: 証明書を作成する CA プールの名前
  5. 前の手順で取得した PEM-CERT を使用して、信頼構成を作成してインポートします。独自の CA を使用する場合は、CA から取得した公開証明書を使用します。

この信頼構成を使用して、TLS インスペクション ポリシーを作成します。

CA プールを作成する

CA Service を使用して CA を作成する前に、CA プールを作成する必要があります。CA プールを作成するには、CA プールの作成の手順に沿って操作します。

この CA プールを使用して、TLS インスペクション ポリシーを作成します。

ルート CA を作成する

既存のルート CA がない場合は、CA Service 内に作成できます。ルート CA を作成するには、ルート CA の作成の手順に沿って、前に作成した CA プールを使用します(CA プールを作成するを参照)。

サービス アカウントを作成する

サービス アカウントがない場合は、サービス アカウントを作成して必要な権限を付与する必要があります。

  1. サービス アカウントを作成します。

     gcloud beta services identity create \
         --service networksecurity.googleapis.com \
         --project PROJECT_ID
    

    PROJECT_ID は、サービス アカウントのプロジェクト ID に置き換えます。

    Google Cloud CLI によって、service-PROJECT_NUMBER@gcp-sa-networksecurity.iam.gserviceaccount.com という名前のサービス アカウントが作成されます。 この PROJECT_NUMBER は、前のコマンドで指定した PROJECT_ID の固有識別子です。

  2. CA プールを使用する証明書の生成権限をサービス アカウントに付与します。

     gcloud privateca pools add-iam-policy-binding CA_POOL \
         --member 'serviceAccount:SERVICE_ACCOUNT' \
         --role 'roles/privateca.certificateRequester' \
         --location REGION
    

    次のように置き換えます。

    • CA_POOL: 証明書を作成する CA プールの名前
    • SERVICE_ACCOUNT: 前の手順で作成したサービス アカウントの名前
    • LOCATION: CA プールのリージョン

TLS インスペクションを構成する

このセクションのタスクを進める前に、証明書が構成されていることと、始める前にセクションにある前提条件を満たしていることを確認してください。

TLS インスペクションを構成するには、次のセクションの作業を完了します。

TLS インスペクション ポリシーの作成

コンソール

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

    [TLS インスペクション ポリシー] に移動

  2. プロジェクト選択メニューで、プロジェクトを選択します。

  3. [TLS インスペクション ポリシーを作成] をクリックします。

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

  5. 省略可: [説明] フィールドに説明を入力します。

  6. [リージョン] リストで、TLS インスペクション ポリシーを作成するリージョンを選択します。

  7. [CA プール] リストで、証明書を作成する元となる CA プールを選択します。

    CA プールが構成されていない場合は、[新しいプール] をクリックし、CA プールを作成するの手順に沿って操作します。

  8. 省略可: [TLS の最小バージョン] リストで、ポリシーでサポートされている最小 TLS バージョンを選択します。

  9. [信頼の構成] で、次のいずれかのオプションを選択します。

    • パブリック CA のみ: 公開署名された証明書を持つサーバーを信頼する場合は、このオプションを選択します。
    • プライベート CA のみ: 非公開で署名された証明書を持つサーバーを信頼する場合は、このオプションを選択します。

      [プライベートの信頼の構成] リストで、アップストリーム サーバー証明書の信頼に使用するトラストストアが構成されている信頼構成を選択します。信頼構成の作成方法については、信頼構成を作成するをご覧ください。

    • パブリック CA とプライベート CA: Public CA とプライベート CA の両方を使用する場合は、このオプションを選択します。

  10. 省略可: [暗号スイート プロファイル] リストで、TLS プロファイル タイプを選択します。次のいずれかの値を選択できます。

    • 互換性あり: 古い TLS 機能のみをサポートするクライアントなど、最も幅広いクライアントに TLS のネゴシエーションを許可します。
    • 最新: 幅広い TLS 機能をサポートし、最新のクライアントが TLS をネゴシエートできるようにします。
    • 制限あり: 厳しいコンプライアンス要件を満たす限定された TLS 機能のみをサポートします。
    • カスタム: TLS 機能を個別に選択できます。

      [暗号スイート] リストで、カスタム プロファイルでサポートされている暗号スイートの名前を選択します。

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

gcloud

  1. YAML ファイル TLS_INSPECTION_FILE.yaml を作成します。TLS_INSPECTION_FILE は任意のファイル名に置き換えます。

  2. 次のコードを YAML ファイルに追加して、TLS インスペクション ポリシーを構成します。

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    minTlsVersion: TLS_VERSION
    tlsFeatureProfile: PROFILE_TYPECIPHER_NAME
    excludePublicCaSet: `TRUE`|`FALSE`
    trustConfig: projects/PROJECT_ID/locations/REGION/trustConfigs/TRUST_CONFIG_NAME
    

    次のように置き換えます。

    • PROJECT_ID: TLS インスペクション ポリシーのプロジェクト ID
    • REGION: TLS インスペクション ポリシーが作成されるリージョン
    • TLS_INSPECTION_NAME: TLS インスペクション ポリシーの名前。
    • CA_POOL: 証明書を作成する CA プールの名前

      CA プールは同じリージョン内に存在する必要があります。

    • TLS_VERSION: Cloud NGFW でサポートされる最小 TLS バージョンを指定するオプションの引数

      次のいずれかの値を選択できます。

      • TLS_1_0
      • TLS_1_1
      • TLS_1_2
    • PROFILE_TYPE: TLS プロファイルのタイプを指定するオプションの引数

      次のいずれかの値を選択できます。

      • PROFILE_COMPATIBLE: 古い TLS 機能のみをサポートするクライアントなど、最も幅広いクライアントに TLS のネゴシエーションを許可します。
      • PROFILE_MODERN: 幅広い TLS 機能をサポートし、最新のクライアントが TLS をネゴシエートできるようにします。
      • PROFILE_RESTRICTED: 厳しいコンプライアンス要件を満たす限定された TLS 機能のみをサポートします。
      • PROFILE_CUSTOM: TLS 機能を個別に選択できます。
    • CIPHER_NAME: カスタム プロファイルでサポートされている暗号スイートの名前を指定するオプションの引数。

      この引数は、プロファイル タイプが PROFILE_CUSTOM に設定されている場合にのみ指定します。

    • excludePublicCaSet: Public CA セットを含めるか除外するかを示すフラグ(省略可)。デフォルトでは、このフラグは false に設定されています。このフラグを true に設定すると、TLS 接続は Public CA サーバーを信頼しません。この場合、Cloud NGFW は、信頼構成内の CA によって署名された証明書を持つサーバーとのみ TLS 接続を行うことができます。

    • TRUST_CONFIG_NAME: 信頼構成リソースの名前を指定するオプションの引数

  3. TLS インスペクション ポリシーを作成するで作成した TLS インスペクション ポリシーをインポートします。

    gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
        --source TLS_INSPECTION_FILE.yaml \
        --location REGION
    

    次のように置き換えます。

    • TLS_INSPECTION_NAME: TLS インスペクション ポリシーの名前
    • TLS_INSPECTION_FILE: TLS インスペクション ポリシーの YAML ファイルの名前

TLS インスペクション ポリシーの詳細を表示する

プロジェクトで作成した TLS インスペクション ポリシーに関する情報を表示できます。

コンソール

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

    [TLS インスペクション ポリシー] に移動

  2. プロジェクト選択メニューで、プロジェクトを選択します。

  3. TLS インスペクション ポリシーは [TLS インスペクション] セクションに一覧表示されます。

  4. 詳細を表示するには、TLS インスペクション ポリシーの名前をクリックします。

TLS インスペクション ポリシーをファイアウォール エンドポイントの関連付けに追加する

TLS インスペクション ポリシーをファイアウォール エンドポイントの関連付けに追加するには、ファイアウォール エンドポイントの関連付けを作成するの手順に沿って操作します。

TLS インスペクションを含むファイアウォール ポリシー ルールを構成する

Virtual Private Cloud(VPC)ネットワークで TLS インスペクションを有効にするには、ファイアウォール ポリシー ルールに --tls-inspect フラグを設定します。このフラグは、セキュリティ プロファイル グループが適用されているときに TLS インスペクションを実行できることを示します。

階層型ファイアウォール ポリシー ルールで --tls-inspect フラグを有効にする方法については、ファイアウォール ルールを作成するをご覧ください。

グローバル ネットワーク ファイアウォール ポリシー ルールで --tls-inspect フラグを有効にする方法については、グローバル ネットワーク ファイアウォール ルールを作成するをご覧ください。

TLS インスペクション ポリシーを管理する

プロジェクト内の TLS インスペクション ポリシーを一覧表示、更新、削除できます。

すべての TLS インスペクション ポリシーを一覧表示する

プロジェクト内のすべての TLS インスペクション ポリシーを一覧表示できます。

コンソール

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

    [TLS インスペクション ポリシー] に移動

  2. プロジェクト選択メニューで、プロジェクトを選択します。

  3. TLS インスペクション ポリシーは [TLS インスペクション] セクションに一覧表示されます。

gcloud

すべての TLS インスペクション ポリシーを一覧表示するには、gcloud network-security tls-inspection-policies list コマンドを使用します。

gcloud network-security tls-inspection-policies list \
    --project PROJECT_ID \
    --location REGION

次のように置き換えます。

  • PROJECT_ID: TLS インスペクション ポリシーのプロジェクト ID
  • REGION: TLS インスペクション ポリシーを一覧表示するリージョンの名前

TLS インスペクション ポリシーを編集する

プロジェクト内の既存の TLS インスペクション ポリシーを変更できます。

コンソール

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

    [TLS インスペクション ポリシー] に移動

  2. プロジェクト選択メニューで、プロジェクトを選択します。

  3. TLS インスペクション ポリシーは [TLS インスペクション] セクションに一覧表示されます。

  4. ポリシーを編集するには、TLS インスペクション ポリシーの名前をクリックします。

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

  6. 必須フィールドを変更します。各フィールドの詳細については、TLS インスペクション ポリシーを作成するをご覧ください。

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

TLS インスペクション ポリシーを削除する

TLS インスペクション ポリシーはプロジェクトから削除できます。ただし、TLS インスペクション ポリシーがファイアウォール エンドポイントの関連付けによって参照されている場合、対象の TLS インスペクション ポリシーは削除できません。

コンソール

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

    [TLS インスペクション ポリシー] に移動

  2. プロジェクト選択メニューで、プロジェクトを選択します。

  3. TLS インスペクション ポリシーは [TLS インスペクション] セクションに一覧表示されます。

  4. TLS インスペクション ポリシーを削除するには、名前の横にあるチェックボックスをオンにします。

  5. [削除] をクリックします。

  6. もう一度 [削除] をクリックします。

gcloud

TLS インスペクション ポリシーを削除するには、gcloud network-security tls-inspection-policies delete コマンドを使用します。

gcloud network-security tls-inspection-policies delete \
    projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME \
    --location REGION

次のように置き換えます。

  • PROJECT_ID: TLS インスペクション ポリシーのプロジェクト ID
  • TLS_INSPECTION_NAME: TLS インスペクションの名前
  • REGION: TLS インスペクション ポリシーが作成されるリージョン

次のステップ