ファイアウォール エンドポイントとエンドポイントの関連付けを作成する

ファイアウォール エンドポイントは、ネットワーク トラフィックのレイヤ 7 検査を提供するゾーンリソースです。ファイアウォール エンドポイントを作成して、侵入検知と防止などの高度なセキュリティ ポリシーを適用します。

ファイアウォール エンドポイントを作成したら、ファイアウォール エンドポイントの関連付けを作成して、エンドポイントを同じゾーン内の 1 つ以上の Virtual Private Cloud(VPC)ネットワークに関連付けます。VPC ネットワークに関連付けられたファイアウォール ポリシーでレイヤ 7 インスペクションが有効になっている場合、一致したトラフィックは透過的にインターセプトされ、ファイアウォール エンドポイントに転送されます。

ジャンボ フレームのサポートの有無にかかわらず、ファイアウォール エンドポイントを作成できます。ファイアウォール エンドポイントでサポートされているパケットサイズについては、サポートされているパケットサイズをご覧ください。

このページでは、 Google Cloud コンソール、Google Cloud CLI、または Terraform を使用してファイアウォール エンドポイントを作成し、Virtual Private Cloud(VPC)ネットワークに関連付ける方法について説明します。

始める前に

ファイアウォール エンドポイントと関連付けを構成する前に、次の操作を行います。

ロールと権限

ファイアウォール エンドポイントの作成に必要な権限を取得するには、組織またはプロジェクトに必要な Identity and Access Management(IAM)ロールを付与するよう管理者に依頼してください。詳細については、アクセスを管理するをご覧ください。

このページに記載されているオペレーションの進行状況を確認するには、ユーザー アカウントに Compute ネットワーク ユーザーroles/compute.networkUser)ロールが付与されていることを確認します。このロールには次の権限が含まれています。

  • networksecurity.operations.get
  • networksecurity.operations.list

割り当て

ファイアウォール エンドポイントと関連付けの割り当てについては、割り当てと上限をご覧ください。

ファイアウォール エンドポイントを作成する

特定のゾーンにファイアウォール エンドポイントを作成します。トラフィック検査を適切に行い、ルーティングの失敗を回避するには、検査するワークロードと同じゾーンにファイアウォール エンドポイントを作成します。

ファイアウォール エンドポイントは、組織レベルまたはプロジェクト レベルで作成できます。組織レベルのエンドポイントは、組織レベルのセキュリティ プロファイル グループのみをサポートします。プロジェクト レベルのエンドポイントは、組織レベルとプロジェクト レベルの両方のセキュリティ プロファイル グループをサポートします。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール エンドポイント] ページに移動します。

    [ファイアウォール エンドポイント] に移動

  2. [プロジェクト選択ツールを開く] をクリックし、組織またはプロジェクトを選択します。

  3. 組織を選択した場合は、[組織レベルのエンドポイントを作成] をクリックします。

    プロジェクトを選択した場合は、[このプロジェクト内にあるファイアウォール エンドポイント] セクションで、[プロジェクト レベルのエンドポイントを作成] をクリックします。

  4. [リージョン] リストで、ファイアウォール エンドポイントを作成するリージョンを選択します。

  5. [ゾーン] リストで、ファイアウォール エンドポイントを作成するゾーンを選択します。

  6. [名前] フィールドに、ファイアウォール エンドポイントの名前を入力します。

  7. 組織レベルのエンドポイントを作成する場合は、[課金プロジェクト] リストで、ファイアウォール エンドポイントの課金に使用する Google Cloud プロジェクトを選択します。

  8. [続行] をクリックします。[高度な構成] セクションが開きます。

  9. エンドポイントで WildFire のサポートを有効にするには、[Wildfire を有効にする](プレビュー)チェックボックスをオンにします。

    1. 選択したプロジェクトでエンドユーザー使用許諾契約(EULA)に同意していない場合は、[同意して続行] をクリックして、WildFire 固有の EULA に同意します。

    2. 省略可: [Additional Wildfire configurations] リストをクリックして、次の操作を行います。

      • [WildFire region] リストで、リージョンを選択します。
      • [コンテンツ クラウド リージョン] リストでリージョンを選択します。
      • [Signature lookup timeout] フィールドに、タイムアウト期間を入力します。
      • [シグネチャ ルックアップ タイムアウト アクション] リストで、Allow または Deny を選択します。
      • HTTP 部分応答をブロックするには、[HTTP 部分応答をブロックする] チェックボックスをオンにします。
      • [インライン クラウド分析の最大時間] フィールドに期間を入力します。
      • [インライン クラウド分析のタイムアウト アクション] リストで、Allow または Deny を選択します。
      • WildFire インライン クラウド分析中にタイムアウトしたファイルのログ生成を有効にするには、[送信タイムアウト ロギングを有効にする] チェックボックスをオンにします。
  10. エンドポイントでジャンボ フレームをサポートする場合は、[ジャンボ フレームのサポートを有効にする] チェックボックスをオンにします。それ以外の場合は、このチェックボックスをオフにします。

  11. [続行] をクリックします。

  12. ファイアウォール エンドポイントの関連付けを追加する場合は、[エンドポイントの関連付けを追加] をクリックします。それ以外の場合は、この手順をスキップします。

    1. [プロジェクト] リストで、ファイアウォール エンドポイントの関連付けを作成する Google Cloud プロジェクトを選択します。
    2. Google Cloud プロジェクトで Compute Engine API または Network Security API が有効になっていない場合は、[有効にする] をクリックします。
    3. [ネットワーク] リストで、ファイアウォール エンドポイントに関連付けるネットワークを選択します。
    4. [TLS インスペクション ポリシー] リストで、この関連付けに追加する TLS インスペクション ポリシーを選択します。
    5. 別の関連付けを追加するには、[エンドポイントの関連付けを追加] をクリックします。
  13. [作成] をクリックします。

gcloud

ファイアウォール エンドポイントを作成するには、gcloud network-security firewall-endpoints create コマンドを使用します。

gcloud network-security firewall-endpoints create NAME \
    --organization ORGANIZATION_ID | --project PROJECT_ID \
    --location LOCATION \
    [--billing-project QUOTA_PROJECT_ID] \
    [--enable-jumbo-frames]

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

  • NAME: ファイアウォール エンドポイントの名前。

  • ORGANIZATION_ID: 組織 ID。このフラグを使用して、組織レベルのファイアウォール エンドポイントを作成します。

  • PROJECT_ID: プロジェクト ID。このフラグを使用して、プロジェクト レベルのファイアウォール エンドポイントを作成します。

  • LOCATION: エンドポイントを作成するゾーン。

  • QUOTA_PROJECT_ID: 割り当てプロジェクト ID。このフラグは、組織レベルのファイアウォール エンドポイントにのみ使用します。

サイズが最大 8,500 バイトのジャンボ フレームをサポートするファイアウォール エンドポイントを作成するには、オプションの --enable-jumbo-frames フラグを使用します。このフラグをスキップすると、ジャンボ フレームのサポートなしでエンドポイントが作成されます。ファイアウォール エンドポイントでサポートされているパケットサイズについては、サポートされているパケットサイズをご覧ください。

WildFire をサポートするファイアウォール エンドポイントを作成するには、gcloud beta network-security firewall-endpoints create コマンドプレビュー)を使用します。

gcloud beta network-security firewall-endpoints create NAME \
    --organization ORGANIZATION_ID | --project PROJECT_ID \
    --zone ZONE \
    --enable-jumbo-frames \
    --enable-wildfire \
    --wildfire-region=WILDFIRE_REGION \
    --content-cloud-region=CONTENT_CLOUD_REGION \
    --hold-for-wildfire-realtime-signature-lookup-timeout-ms=TIMEOUT_MS \
    --hold-for-wildfire-realtime-signature-lookup-timeout-action=ACTION \
    --wildfire-inline-cloud-analysis-timeout-ms=TIMEOUT_MS \
    --wildfire-inline-cloud-analysis-timeout-action=ACTION \
    --[no-]enable-wildfire-analysis-logging \
    --[no-]block-partial-http \
    --billing-project BILLING_PROJECT_ID

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

  • WILDFIRE_REGION: エンドポイントが不明なファイルを送信する地理的リージョン。
  • CONTENT_CLOUD_REGION: エンドポイントが使用するコンテンツ クラウド リージョン。
  • TIMEOUT_MS: シグネチャ ルックアップまたはインライン分析のタイムアウトしきい値(ミリ秒単位)。
  • ACTION: タイムアウト アクション(Allow または Deny)。
  • --[no-]enable-wildfire-analysis-logging: タイムアウト イベントのロギングを有効にするかどうか。
  • --[no-]block-partial-http: ブロックされた悪意のある HTTP ファイルのダウンロードの再開をブロックする場合に選択します。

ファイアウォール エンドポイントを VPC ネットワークに関連付けるには、ファイアウォール エンドポイントの関連付けを作成するをご覧ください。

Terraform

google_network_security_firewall_endpoint Terraform リソースを使用します。

resource "google_network_security_firewall_endpoint" "default" {
  name               = "my-firewall-endpoint"
  parent             = "organizations/123456789"
  location           = "us-central1-a"
  billing_project_id = "my-project-name"
  enable_jumbo_frames = true
}

サイズが最大 8,500 バイトのジャンボ フレームをサポートするファイアウォール エンドポイントを作成するには、enable_jumbo_frames フィールドを true に設定します。ジャンボ フレームをサポートしないファイアウォール エンドポイントを作成するには、このフィールドを false に設定します。ファイアウォール エンドポイントでサポートされているパケットサイズについては、サポートされているパケットサイズをご覧ください。WildFire をサポートするファイアウォール エンドポイントを作成するには、フィールド enable_wildfireTrue に設定します。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

ファイアウォール エンドポイントの関連付けの作成

ファイアウォール エンドポイントの関連付けは、ファイアウォール エンドポイントを特定のゾーンの VPC ネットワークに接続します。この関連付けにより、そのゾーン内の関連付けられたネットワークのインターセプト ルールに一致するトラフィックがファイアウォール エンドポイントによって検査されます。

関連付けを作成する前に、ファイアウォール エンドポイントがあることを確認します。

関連付けの要件

エンドポイントの関連付けを構成する場合は、次の要件を満たしてください。

  • ゾーンの制約: 関連付けは、ファイアウォール エンドポイントと同じゾーンに作成する必要があります。トラフィック検査を効果的に行うには、コンピューティング インスタンスがデプロイされているゾーンで関連付けを作成します。
  • ゾーンごとに 1 つのエンドポイント: 単一のゾーンで、VPC ネットワークを 1 つのファイアウォール エンドポイント(プロジェクト レベルまたは組織レベル)にのみ関連付けることができます。ただし、単一の VPC ネットワークを複数の異なるゾーンにまたがる異なるファイアウォール エンドポイントに関連付けることはできます。
  • プロジェクト間の関連付け: VPC ネットワークを別のプロジェクトのファイアウォール エンドポイントに関連付けることができます。プロジェクト レベルのエンドポイントを使用する場合、エンドポイントのプロジェクトは VPC ネットワークと同じ組織に存在する必要があります。
  • リソース マッピング: 関連付けはプロジェクト レベルのリソースです。関連付けが組織レベルのファイアウォール エンドポイントを指している場合でも、コンピューティング インスタンスがデプロイされている特定のプロジェクト内で関連付けを作成します。

ジャンボ フレームをサポートするファイアウォール エンドポイントは、最大 8,500 バイトのパケットのみを受け入れることができます。ジャンボ フレームをサポートしていないファイアウォール エンドポイントは、最大 1,460 バイトのパケットのみを受け入れることができます。侵入検知 / 防御サービス、WildFire、URL フィルタリング サービスが必要な場合は、関連する VPC ネットワークで 8,500 バイトと 1,460 バイトの最大伝送単位(MTU)の上限を使用するように構成することをおすすめします。詳細については、 サポートされているパケットサイズをご覧ください。

コンソール

  1. Google Cloud コンソールで、[ファイアウォール エンドポイント] ページに移動します。

    [ファイアウォール エンドポイント] に移動

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

  3. [エンドポイントの関連付けを作成] をクリックします。

  4. [リージョン] リストで、ファイアウォール エンドポイントの関連付けを作成するリージョンを選択します。

  5. [ゾーン] リストで、ファイアウォール エンドポイントの関連付けを作成するゾーンを選択します。

  6. [ファイアウォール エンドポイント] リストで、関連付けに追加するファイアウォール エンドポイントを選択します。

  7. [ネットワーク] リストで、関連付けに追加するネットワークを選択します。

  8. [TLS インスペクション ポリシー] リストで、この関連付けに追加する TLS インスペクション ポリシーを選択します。

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

gcloud

ファイアウォール エンドポイントの関連付けを作成するには、gcloud network-security firewall-endpoint-associations create コマンドを使用します。

組織レベルのファイアウォール エンドポイント

gcloud network-security firewall-endpoint-associations \
    create NAME \
    --endpoint organizations/ORGANIZATION_ID/locations/LOCATION/firewallEndpoints/FIREWALL_ENDPOINT_NAME \
    --network projects/PROJECT_NAME/global/networks/NETWORK_NAME \
    --location LOCATION \
    --project PROJECT_ID \
    [ --tls-inspection-policy projects/TLS_PROJECT_NAME/locations/REGION_NAME/tlsInspectionPolicies/TLS_POLICY_NAME ]

プロジェクト レベルのファイアウォール エンドポイント

gcloud network-security firewall-endpoint-associations \
    create NAME \
    --endpoint projects/ENDPOINT_PROJECT_ID/locations/LOCATION/firewallEndpoints/FIREWALL_ENDPOINT_NAME \
    --network projects/PROJECT_NAME/global/networks/NETWORK_NAME \
    --location LOCATION \
    --project PROJECT_ID \
    [ --tls-inspection-policy projects/TLS_PROJECT_NAME/locations/REGION_NAME/tlsInspectionPolicies/TLS_POLICY_NAME ]

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

  • NAME: ファイアウォール エンドポイントの関連付けの名前。

  • ORGANIZATION_ID: ファイアウォール エンドポイントが存在する組織 ID。このフラグは、組織レベルのファイアウォール エンドポイントにのみ使用します。

  • ENDPOINT_PROJECT_ID: ファイアウォール エンドポイントが存在するプロジェクト ID。このフラグは、プロジェクト レベルのファイアウォール エンドポイントにのみ使用します。

  • LOCATION: ファイアウォール エンドポイントが存在するゾーン。

  • FIREWALL_ENDPOINT_NAME: ファイアウォール エンドポイントの名前。

  • PROJECT_NAME: ネットワークの Google Cloud プロジェクト名。

  • NETWORK_NAME: ネットワークの名前。

  • PROJECT_ID: 関連付けが作成される Google Cloud プロジェクト ID。これは、トラフィックをインターセプトするプロジェクトである必要があります。

  • TLS_PROJECT_NAME: TLS インスペクション ポリシーの Google Cloud プロジェクト名。

  • REGION_NAME: TLS インスペクション ポリシーのリージョン名。

  • TLS_POLICY_NAME: TLS インスペクション ポリシーの名前。

    このポリシーは、指定したネットワーク上の暗号化されたトラフィックの TLS インスペクションに使用されます。これは省略可能な引数です。

次のステップ