本頁說明如何啟用及停用虛擬私有雲防火牆規則的記錄功能。如需虛擬私有雲 (VPC) 防火牆規則記錄的相關操作說明,請參閱「啟用及停用 VPC 防火牆規則記錄」。 您也可以瞭解如何查看虛擬私有雲防火牆規則產生的記錄。如要瞭解虛擬私有雲防火牆規則記錄,請參閱「 虛擬私有雲防火牆規則記錄總覽」。
如果您在虛擬私有雲防火牆規則中啟用記錄功能,即可透過防火牆洞察功能查看相關深入分析和建議。詳情請參閱 Network Intelligence Center 說明文件中的「防火牆洞察」。
權限
如要修改 VPC 防火牆規則或存取記錄,身分與存取權管理 (IAM) 主體必須是下列角色之一。
| 工作 | 必要角色 |
|---|---|
| 建立、刪除或更新防火牆規則 | 專案擁有者或編輯者,或安全管理員角色 (roles/compute.securityAdmin) |
| 查看記錄 | 專案擁有者、編輯者或檢視者「或」記錄檢視者角色 (roles/logging.viewer)
如要進一步瞭解 Logging IAM 角色和權限,請參閱「 預先定義的角色」。 |
啟用及停用虛擬私有雲防火牆規則記錄
建立虛擬私有雲防火牆規則時,您可以啟用虛擬私有雲防火牆規則記錄。詳情請參閱「建立虛擬私有雲防火牆規則」。
啟用記錄功能時,您可以指定是否要納入中繼資料欄位。如果省略這些欄位,即可節省儲存空間費用。如要為現有的防火牆政策規則啟用或停用虛擬私有雲防火牆規則記錄,請參閱下列各節。
啟用虛擬私有雲防火牆規則記錄
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在專案選取器選單中,選取專案名稱。
在「虛擬私有雲防火牆規則」部分,您可以查看虛擬私有雲防火牆規則清單。
在「記錄」欄中,判斷每項防火牆規則的「記錄」是「開啟」還是「關閉」。
如要為一或多項規則啟用記錄功能,請勾選要更新的每項規則旁邊的核取方塊。
在「虛擬私有雲防火牆規則」動作列中,按一下「設定記錄」。
在「設定記錄」對話方塊中,選取「開啟」。
如要省略中繼資料欄位,請展開「顯示記錄詳細資料」,然後取消勾選「包含中繼資料」核取方塊。
點選 [Save configuration] (儲存設定)。
gcloud
gcloud compute firewall-rules update RULE_NAME \
--enable-logging \
--logging-metadata=LOGGING_METADATA
更改下列內容:
RULE_NAME:虛擬私有雲防火牆規則的名稱。LOGGING_METADATA:虛擬私有雲防火牆規則記錄是否包含虛擬私有雲防火牆規則記錄格式中的中繼資料欄位。只有在啟用記錄功能時,才能設定這個欄位。這個值必須是exclude-all或include-all。根據預設,系統會納入中繼資料欄位。
詳情請參閱 SDK 參考文件。
Terraform
您可以使用 Terraform 資源建立已啟用記錄功能的虛擬私有雲防火牆規則。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
API
為現有的虛擬私有雲防火牆規則啟用虛擬私有雲防火牆規則記錄。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
"name": "RULE_NAME",
"logConfig": {
"enable": true,
"metadata": "LOGGING_METADATA"
}
}
更改下列內容:
PROJECT_ID:虛擬私有雲防火牆規則所在的專案 ID。RULE_NAME:虛擬私有雲防火牆規則的名稱。LOGGING_METADATA:虛擬私有雲防火牆規則記錄是否包含虛擬私有雲防火牆規則記錄格式中的中繼資料欄位。只有在啟用記錄功能時,才能設定這個欄位。這個值必須是exclude-all或include-all。根據預設,系統會納入中繼資料欄位。
詳情請參閱 firewalls.patch 方法。
停用虛擬私有雲防火牆規則記錄
控制台
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在專案選取器選單中,選取專案名稱。
在「虛擬私有雲防火牆規則」部分,您可以查看虛擬私有雲防火牆規則清單。
在「記錄」欄中,判斷每項防火牆規則的「記錄」是「開啟」還是「關閉」。
如要停用一或多項規則的記錄功能,請勾選要更新的規則旁邊的核取方塊。
在「虛擬私有雲防火牆規則」動作列中,按一下「設定記錄」。
在「設定記錄」對話方塊中選取「關閉」,然後按一下「儲存設定」。
gcloud
gcloud compute firewall-rules update RULE_NAME \
--no-enable-logging
將 RULE_NAME 替換為虛擬私有雲防火牆規則的名稱。
API
為現有的虛擬私有雲防火牆規則停用虛擬私有雲防火牆規則記錄。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
{
"name": "RULE_NAME",
"logConfig": {
"enable": false
}
}
更改下列內容:
PROJECT_ID:虛擬私有雲防火牆規則所在的專案 ID。RULE_NAME:虛擬私有雲防火牆規則的名稱。
詳情請參閱 firewalls.patch 方法。
查看記錄
系統會根據 VM 執行個體和防火牆規則所屬的網路,在託管該網路的專案中建立防火牆政策規則記錄。採用共用虛擬私人雲端時,您會在服務專案中建立 VM 執行個體,但這些執行個體會使用主專案中的共用虛擬私人雲端網路。在這種情況下,主專案會儲存防火牆政策規則記錄。
系統會根據 VM 執行個體和虛擬私有雲防火牆規則所屬的網路,在託管該網路的專案中建立虛擬私有雲防火牆規則記錄。採用Shared VPC時,您會在服務專案中建立 VM 執行個體,但這些執行個體會使用主專案中的 Shared VPC 網路。在這種情況下,主專案會儲存防火牆政策規則記錄。
如要查看虛擬私有雲防火牆規則記錄,請使用 Google Cloud 控制台的「Logs Explorer」(記錄探索器) 區段。詳情請參閱「查看及分析記錄」。
下列查詢示範如何搜尋特定 VPC 防火牆事件。
查看所有防火牆記錄
如要查看虛擬私有雲防火牆規則記錄,請使用下列其中一個選項。
選項 1
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「選取資源」清單中,按一下「子網路」,然後按一下「套用」。
按一下「所有記錄名稱」,然後在清單中選取「firewall」。
按一下「套用」。
選項 2
前往 Google Cloud 控制台的「Logs Explorer」頁面。
將下列內容貼入查詢編輯器欄位。
resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
將
PROJECT_ID替換為專案 ID。如果沒有看到查詢編輯器欄位,請點選「顯示查詢」切換鈕。
點選「執行查詢」。
查看特定子網路的記錄
如要查看特定子網路的虛擬私有雲防火牆規則記錄,請使用下列其中一個選項。
選項 1
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「選取資源」清單中,按一下「子網路」。
選取要查看記錄的子網路,然後按一下「套用」。
按一下「所有記錄名稱」,然後在清單中選取「firewall」。
按一下「套用」。
選項 2
前往 Google Cloud 控制台的「Logs Explorer」頁面。
將下列內容貼入查詢編輯器欄位。
resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" resource.labels.subnetwork_name="SUBNET_NAME"
更改下列內容:
PROJECT_ID:專案 IDSUBNET_NAME:子網路名稱
如果沒有看到查詢編輯器欄位,請點選「顯示查詢」切換鈕。
點選「執行查詢」。
查看特定 VM 的記錄
如要查看特定 VM 的虛擬私有雲防火牆規則記錄,請使用下列任一選項。
選項 1
前往 Google Cloud 控制台的「Logs Explorer」頁面。
按一下「所有資源」。
在「選取資源」清單中,按一下「VM 執行個體」。
選取要查看記錄的執行個體,然後按一下「套用」。
按一下「所有記錄名稱」,然後在清單中選取「firewall」。
按一下「套用」。
選項 2
前往 Google Cloud 控制台的「Logs Explorer」頁面。
將下列內容貼入查詢編輯器欄位。
resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" jsonPayload.instance.vm_name="INSTANCE_ID"
更改下列內容:
PROJECT_ID:專案 IDINSTANCE_ID:要查看記錄的 VM ID
如果沒有看到查詢編輯器欄位,請點選「顯示查詢」切換鈕。
點選「執行查詢」。
查看來自特定國家/地區的連線記錄
如要查看特定國家/地區的虛擬私有雲防火牆規則記錄,請按照下列步驟操作:
前往 Google Cloud 控制台的「Logs Explorer」頁面。
將下列內容貼入查詢編輯器欄位。
resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall" jsonPayload.remote_location.country=COUNTRY
更改下列內容:
PROJECT_ID:專案 IDCOUNTRY:要查看記錄的國家/地區的 ISO 3166-1 alpha-3 代碼
如果沒有看到查詢編輯器欄位,請點選「顯示查詢」切換鈕。
點選「執行查詢」。
匯出記錄
如要匯出虛擬私有雲防火牆規則記錄,請參閱「將記錄檔轉送至支援的目的地」。您可以使用查詢範例縮小匯出記錄的範圍。
互動表
- 如果是 VM 對 VM 通訊,兩個 VM 可能都會產生記錄檔,這要視其各自的防火牆規則而定。
- 假如防火牆允許初始封包,則記錄的連線會將雙向的流通封包全數納入。
- 如果是指定的 VM,系統會根據該 VM 中設定的輸入防火牆規則比對連入連線;並根據在該 VM 中設定的輸出防火牆規則比對連出連線。
- 系統只會記錄一次符合「允許並記錄」防火牆規則的允許連線;即使持續保持連線狀態,也不會每 5 秒重複一次記錄項目。
- 只要遭拒連線中還有封包,就不會每 5 秒重複一次符合「拒絕並記錄」防火牆規則的遭拒連線記錄項目。
- 如果啟用防火牆規則的記錄功能,但該規則與已啟用的 TCP 或 UDP 連線相符,系統就不會產生新的記錄項目。只有在連線閒置至少 10 分鐘,且透過同一連線傳送新封包時,系統才會建立記錄項目。如果流量持續不斷,且閒置時間短於 10 分鐘,系統只會為連線產生一筆記錄項目。
下表說明單一 VM 的防火牆記錄行為。
假設 VM1 有一個用來比對封包的輸入規則 R1 和輸出規則 R2,則防火牆記錄行為將如下所示:
| VM1 具有輸入規則 R1 (符合封包) | VM1 具有輸出規則 R2 (符合封包) | 連線方向 | 動作 | 記錄 |
|---|---|---|---|---|
| 允許 + 記錄 | 允許 | 輸入 | 允許 | 單一記錄項目: disposition=allow, rule=R1 |
| 拒絕 | ||||
| 允許 + 記錄 | ||||
| 拒絕 + 記錄 | ||||
| 允許 | 允許 | 輸入 | 允許 | 不啟用記錄功能 |
| 拒絕 | ||||
| 允許 + 記錄 | ||||
| 拒絕 + 記錄 | ||||
| 拒絕 + 記錄 | 不適用 | 輸入 | 拒絕 | 每 5 秒記錄一次: disposition=deny, rule=R1 |
| 拒絕 | 不適用 | 輸入 | 拒絕 | 不啟用記錄功能 |
| 允許 | 允許 + 記錄 | 輸出 | 允許 | 單一記錄項目: disposition=allow, rule=R2 |
| 拒絕 | ||||
| 允許 + 記錄 | ||||
| 拒絕 + 記錄 | ||||
| 允許 | 允許 | 輸出 | 允許 | 不啟用記錄功能 |
| 拒絕 | ||||
| 允許 + 記錄 | ||||
| 拒絕 + 記錄 | ||||
| 不適用 | 拒絕 + 記錄 | 輸出 | 拒絕 | 每 5 秒記錄一次: disposition=deny, rule=R2 |
| 不適用 | 拒絕 | 輸出 | 拒絕 | 不啟用記錄功能 |
請注意,輸入和輸出是相互對稱的。
防火牆記錄語意詳細說明如下:
允許 + 記錄 (記錄功能只適用於 TCP 和 UDP)
- 依適用規則方向起始的連線只會建立一個記錄檔。
- 系統允許連線追蹤所導致的回覆流量。無論該方向的虛擬私有雲防火牆規則是什麼,回覆流量都不會產生記錄。
- 假使防火牆中的連線到期 (閒置達 10 分鐘或收到 TCP RST),則任一方向的其他封包都有可能會觸發記錄。
- 記錄以 5 元組數為基礎;TCP 標記不會影響記錄行為。
拒絕 + 記錄 (記錄功能僅適用 TCP 和 UDP)
- 會捨棄封包 (不起始任何連線)。
- 會將每個對應於唯一 5 元組數的封包記為一次失敗的連線嘗試。
- 如果系統持續收到封包,每 5 秒鐘會記錄同一組 5 元組數一次。