このドキュメントでは、コンソール、 Google Cloud CLI、または Terraform を使用してファイアウォール エンドポイントを作成し、 Virtual Private Cloud(VPC)ネットワークに関連付ける方法について説明します。 Google Cloud
ネットワーク トラフィックを制御し、仮想マシン(VM)インスタンスを保護するには、ファイアウォール エンドポイントとエンドポイントの関連付けを構成します。ファイアウォール エンドポイントを作成したら、 ゾーンの関連付け を作成して、エンドポイントを同じ ゾーン内の 1 つ以上の VPC ネットワークにリンクします。
このドキュメントは、ネットワーク セキュリティとファイアウォール エンドポイントを構成するネットワーク管理者、セキュリティ エンジニア、セキュリティ アーキテクトを対象としています。
始める前に
ファイアウォール エンドポイントと関連付けを構成する前に、次の操作を行います。
- ファイアウォール エンドポイントの概要のコンセプトを確認します。
- VPC ネットワーク とサブネットがあることを確認します。
- 必要な API を有効にします。
- プロジェクトの Compute Engine API(Compute Engine API) Google Cloud 。
- 課金に使用する Google Cloud プロジェクトのNetwork Security API。
- Certificate Authority Service API プロジェクト Google Cloud 。
- `gcloud` コマンドラインのサンプルを実行する場合は、gcloud CLI をインストールします。
gcloud
ロールと権限
ファイアウォール エンドポイントの作成に必要な権限を取得するには、 組織またはプロジェクトに必要な Identity and Access Management(IAM)ロール を付与するよう管理者に依頼してください。詳細については、 アクセスを管理するをご覧ください。
このページに記載されているオペレーションの進行状況を確認するには、
ユーザー アカウントに
Compute ネットワーク ユーザー
(roles/compute.networkUser)ロールが付与されていることを確認します。このロールには次の権限が含まれています。
networksecurity.operations.getnetworksecurity.operations.list
割り当て
ファイアウォール エンドポイントと関連付けの割り当てについては、 割り当てと上限をご覧ください。
ファイアウォール エンドポイントを作成する
特定のゾーンにファイアウォール エンドポイントを作成します。適切なトラフィック検査を行い、ルーティングの失敗を回避するには、検査するワークロードと同じゾーンにファイアウォール エンドポイントを作成します。
ファイアウォール エンドポイントは、組織レベルまたはプロジェクト レベルで作成できます。 組織レベルのエンドポイントは、組織レベルのセキュリティ プロファイル グループのみをサポートします。プロジェクト レベルのエンドポイントは、組織レベルとプロジェクト レベルの両方のセキュリティ プロファイル グループをサポートします。
ジャンボ フレームをサポートするファイアウォール エンドポイントを作成することも、ジャンボ フレームをサポートしないファイアウォール エンドポイントを作成することもできます。ファイアウォール エンドポイントでサポートされているパケットサイズについては、 サポートされているパケットサイズをご覧ください。
コンソール
Google Cloud コンソールで、[**ファイアウォール エンドポイント**] ページに移動します。
[プロジェクト選択ツールを開く] をクリックし、組織またはプロジェクトを選択します。
組織を選択した場合は、[組織レベルのエンドポイントを作成] をクリックします。
プロジェクトを選択した場合は、[このプロジェクトにあるファイアウォール エンドポイント] セクションで [プロジェクト レベルのエンドポイントを作成] をクリックします。
[リージョン] リストで、ファイアウォール エンドポイントを作成するリージョンを選択します。
[ゾーン] リストで、ファイアウォール エンドポイントを作成するゾーンを選択します。
[名前] フィールドに、ファイアウォール エンドポイントの名前を入力します。
組織レベルのエンドポイントを作成する場合は、[Billing project] リストで、ファイアウォール エンドポイントの課金に使用する Google Cloud プロジェクトを選択します。
[続行] をクリックします。[詳細構成] セクションが開きます。
エンドポイントで高度なマルウェア サンドボックスのサポートを有効にするには、 [高度なマルウェア サンドボックス(WildFire)を有効にする](プレビュー) チェックボックスをオンにします。
選択したプロジェクトでエンドユーザー使用許諾契約(EULA)に同意していない場合は、[同意して続行] をクリックして、Advanced malware sandbox 固有の EULA に同意します。
省略可: [高度なマルウェア サンドボックスの追加構成] リストをクリックして、次の操作を行います。
- [高度なマルウェア サンドボックスのリージョン] リストで、リージョンを選択します。
- [コンテンツ クラウド リージョン] リストで、リージョンを選択します。
- [署名ルックアップ タイムアウト] フィールドに、タイムアウト時間を入力します。
- [署名ルックアップ タイムアウト アクション] リストで、
AllowまたはDenyを選択します。 - HTTP 部分応答をブロックするには、[HTTP 部分応答をブロック] チェックボックスをオンにします。
- [インライン クラウド分析の最大時間] フィールドに、時間を入力します。
- [インライン クラウド分析のタイムアウト アクション] リストで、
AllowまたはDenyを選択します。 - 高度なマルウェア サンドボックスのインライン クラウド分析中にタイムアウトしたファイルのログ生成を有効にするには、[送信タイムアウトのロギングを有効にする] チェックボックスをオンにします。
エンドポイントでジャンボ フレームをサポートする場合は、[ジャンボ フレームのサポートを有効にする] チェックボックスをオンにします。それ以外の場合は、このチェックボックスをオフにします。
[続行] をクリックします。
ファイアウォール エンドポイントの関連付けを追加する場合は、 [エンドポイントの関連付けを追加] をクリックします。それ以外の場合は、この手順をスキップします。
- [**プロジェクト**] リストで、ファイアウォール エンドポイントの関連付けを作成する Google Cloud プロジェクトを選択します。
- プロジェクトで Compute Engine API または Network Security API が有効になっていない場合は、 プロジェクト Google Cloud で [有効にする] をクリックします。
- [ネットワーク] リストで、ファイアウォール エンドポイントに関連付けるネットワークを選択します。
- [TLS インスペクション ポリシー] リストで、この関連付けに追加する TLS インスペクション ポリシーを選択します。
- 別の関連付けを追加するには、[エンドポイントの関連付けを追加] をクリックします。
[作成] をクリックします。
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 フラグを使用します。このフラグを省略すると、ジャンボ フレームをサポートしないエンドポイントが作成されます。ファイアウォール エンドポイントでサポートされているパケットサイズについては、
サポートされているパケットサイズをご覧ください。
高度なマルウェア サンドボックスをサポートするファイアウォール エンドポイントを作成するには、
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 に設定します。ファイアウォール エンドポイントでサポートされているパケットサイズについては、
サポートされているパケットサイズをご覧ください。
高度なマルウェア サンドボックスをサポートするファイアウォール エンドポイントを作成するには、フィールド enable_wildfire を True に設定します。
Terraform 構成を適用または削除する方法については、 基本的な Terraform コマンドをご覧ください。
ファイアウォール エンドポイントの関連付けの作成
ファイアウォール エンドポイントの関連付けは、ファイアウォール エンドポイントを特定のゾーンの VPC ネットワークに接続します。この関連付けにより、そのゾーン内の関連付けられたネットワークのインターセプト ルールに一致するトラフィックがファイアウォール エンドポイントによって検査されます。
関連付けを作成する前に、ファイアウォール エンドポイント があることを確認してください。
関連付けの要件
エンドポイントの関連付けを構成する場合は、次の要件に従ってください。
- ゾーンの制約: 関連付けは、ファイアウォール エンドポイントと同じゾーンに作成する必要があります。トラフィック検査を効果的に行うには、コンピューティング インスタンスがデプロイされているゾーンに関連付けを作成します。
- ゾーンごとに 1 つのエンドポイント: 単一のゾーンでは、VPC ネットワークを 1 つのファイアウォール エンドポイント(プロジェクト レベルまたは組織レベル)にのみ関連付けることができます。ただし、1 つの VPC ネットワークを、複数の異なるゾーンにまたがる異なるファイアウォール エンドポイントに関連付けることができます。
- プロジェクト間の関連付け: VPC ネットワークを別のプロジェクトのファイアウォール エンドポイントに関連付けることができます。 プロジェクト レベルのエンドポイントを使用する場合、エンドポイントのプロジェクトは VPC ネットワークと同じ組織に存在する必要があります。
- リソース マッピング: 関連付けはプロジェクト レベルのリソースです。関連付けが組織レベルのファイアウォール エンドポイントを指している場合でも、コンピューティング インスタンスがデプロイされている特定のプロジェクト内で関連付けを作成します。
ジャンボ フレームをサポートするファイアウォール エンドポイントは、最大 8,500 バイトのパケットのみを受け入れることができます。ジャンボ フレームをサポートしないファイアウォール エンドポイントは、最大 1,460 バイトのパケットのみを受け入れることができます。侵入検知と防止サービス、高度なマルウェア サンドボックス、URL フィルタリング サービスが必要な場合は、関連付けられた VPC ネットワークを構成して、最大伝送単位(MTU)の上限を 8,500 バイトと 1,460 バイトにすることをおすすめします。詳細については、 サポートされているパケットサイズをご覧ください。
コンソール
Google Cloud コンソールで、[**ファイアウォール エンドポイント**] ページに移動します。
プロジェクト選択メニューで、 Google Cloud プロジェクトを選択します。
[エンドポイントの関連付けを作成] をクリックします。
[リージョン] リストで、ファイアウォール エンドポイントの関連付けを作成するリージョンを選択します。
[ゾーン] リストで、ファイアウォール エンドポイントの関連付けを作成するゾーンを選択します。
[ファイアウォール エンドポイント] リストで、関連付けに追加するファイアウォール エンドポイントを選択します。
[ネットワーク] リストで、関連付けに追加するネットワークを選択します。
[TLS インスペクション ポリシー] リストで、この関連付けに追加する TLS インスペクション ポリシーを選択します。
[作成] をクリックします。
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 インスペクションに使用されます。これは省略可能な引数です。