本頁說明設定虛擬私有雲 (VPC) 防火牆規則的正確指令,並提供使用範例。有了 VPC 防火牆規則,您就能根據通訊埠號碼、標記或通訊協定,允許或拒絕 VPC 網路中虛擬機器 (VM) 執行個體的往來流量。
事前準備
如要進一步瞭解虛擬私有雲防火牆規則,例如預設網路的隱含規則和系統產生的規則,請參閱「虛擬私有雲防火牆規則」。
設定防火牆規則前,請先查看防火牆規則組成部分,熟悉 Trusted Cloud中使用的防火牆元件。
建立虛擬私有雲防火牆規則
虛擬私有雲防火牆規則是在網路層級定義,且僅會套用到規則建立時所在的網路。不過,您為各個防火牆規則選擇的名稱在專案內必須為專屬名稱。
防火牆規則可包含 IPv4 或 IPv6 範圍,但不能同時包含兩者。
建立防火牆規則時,您可以選擇啟用防火牆規則記錄。啟用記錄功能後,您可以省略中繼資料欄位,以節省儲存費用。詳情請參閱使用防火牆規則記錄。
如要為目標或來源服務帳戶欄位指定多個服務帳戶,請使用 Google Cloud CLI、API 或用戶端程式庫。
預設網路會在建立時提供自動防火牆規則。如果您使用 Trusted Cloud 控制台,在建立網路時,可以輕鬆為自訂和自動模式網路建立類似的防火牆。如果您使用 gcloud CLI 或 API,並想建立與預設網路提供的防火牆規則類似的規則,請參閱「設定常見用途的防火牆規則」。
主控台
在 Trusted Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
點按「建立防火牆規則」。
輸入防火牆規則的「Name」(名稱)。
此名稱在專案中不得重複。
(選用) 您可以啟用防火牆規則記錄:
- 按一下 [Logs] (記錄) > [On] (啟用)。
- 如要省略中繼資料,請按一下「顯示記錄詳細資料」,然後取消勾選「包含中繼資料」核取方塊。
指定防火牆規則的「Network」(網路)。
指定規則的「優先順序」。
數值越低,優先順序越高。
針對「Direction of traffic」(流量方向),選擇輸入或輸出。
針對「Action on match」(相符時執行的動作),選擇允許或拒絕。
指定規則的「Targets」(目標)。
- 如要將規則套用到網路中的所有執行個體,請選擇 All instances in the network。
- 如要根據網路 (目標) 標記將規則套用到特定執行個體,請選擇「指定的目標標記」,接著在「目標標記」欄位中,輸入要套用規則的標記。
- 如要讓規則套用至與特定服務帳戶相關聯的執行個體,請選擇「指定的服務帳戶」,並在「服務帳戶範圍」底下,指示服務帳戶是位於目前專案還是其他專案,接著在「目標服務帳戶」欄位中選擇或輸入服務帳戶名稱。
針對輸入規則,指定「Source filter」(來源篩選器):
- 如要依來源 IPv4 範圍篩選傳入流量,請選取「IPv4 範圍」,然後在「來源 IPv4 範圍」欄位中輸入 CIDR 區塊。如為任何 IPv4 來源,請使用
0.0.0.0/0
。 - 如要依來源 IPv6 範圍篩選傳入流量,請選取「IPv6 範圍」,然後在「來源 IPv6 範圍」欄位中輸入 CIDR 區塊。如為任何 IPv6 來源,請使用
::/0
。 - 如要依網路標記篩選傳入流量,請選擇「來源標記」,然後在「來源標記」欄位中輸入網路標記。如需瞭解來源標記數量限制,請參閱每個網路的限制。只有在目標「並非」以服務帳戶指定時,才可依據來源標記進行篩選。詳情請參閱依服務帳戶篩選與依網路標記篩選的比較。
- 如要依服務帳戶篩選傳入流量,請選擇「Service account」(服務帳戶),並在「Service account scope」(服務帳戶範圍) 底下,指示服務帳戶是位於目前專案還是其他專案,接著在「Source service account」(來源服務帳戶) 欄位中選擇或輸入服務帳戶名稱。只有在目標「並非」以網路標記指定時,才可依據來源服務帳戶進行篩選。詳情請參閱依服務帳戶篩選與依網路標記篩選的比較。
- 必要時,可以指定「Second source filter」(次要來源篩選器)。次要來源篩選器無法使用與主要來源篩選器相同的篩選條件。來源 IP 範圍可與來源標記或來源服務帳戶搭配使用。有效的來源設定會「結合」來源範圍 IP 位址,以及使用網路標記或服務帳戶標示的執行個體。也就是說,只要來源 IP 範圍「或」來源標記 (或來源服務帳戶) 符合篩選條件,來源就會納入有效來源集。
- 來源標記和來源服務帳戶無法同時使用。
- 如要依來源 IPv4 範圍篩選傳入流量,請選取「IPv4 範圍」,然後在「來源 IPv4 範圍」欄位中輸入 CIDR 區塊。如為任何 IPv4 來源,請使用
針對輸入規則,指定「Destination filter」(目的地篩選器):
- 如要依目的地 IPv4 範圍篩選傳入流量,請選取「IPv4 範圍」,並在「目的地 IPv4 範圍」欄位中輸入 CIDR 區塊。針對任何 IPv4 目的地使用
0.0.0.0/0
。 - 如要依目的地 IPv6 範圍篩選傳入流量,請選取「IPv6 範圍」,並在「目的地 IPv6 範圍」欄位中輸入 CIDR 區塊。任何 IPv6 目的地都可使用
::/0
。 詳情請參閱「連入規則的目的地」。
- 如要依目的地 IPv4 範圍篩選傳入流量,請選取「IPv4 範圍」,並在「目的地 IPv4 範圍」欄位中輸入 CIDR 區塊。針對任何 IPv4 目的地使用
針對輸出規則,指定「Destination filter」(目的地篩選器):
- 如要依目的地 IPv4 範圍篩選傳出流量,請選取「IPv4 ranges」(IPv4 範圍),並在「Destination IPv4 ranges」(目的地 IPv4 範圍) 欄位中輸入 CIDR 區塊。針對任何 IPv4 目的地使用
0.0.0.0/0
。 - 如要依目的地 IPv6 範圍篩選傳出流量,請選取「IPv6 範圍」,並在「目的地 IPv6 範圍」欄位中輸入 CIDR 區塊。針對任何 IPv6 目的地使用
::/0
。
- 如要依目的地 IPv4 範圍篩選傳出流量,請選取「IPv4 ranges」(IPv4 範圍),並在「Destination IPv4 ranges」(目的地 IPv4 範圍) 欄位中輸入 CIDR 區塊。針對任何 IPv4 目的地使用
針對輸出規則,指定「Source filter」(來源篩選器):
- 如要依來源 IPv4 範圍篩選傳出流量,請選取「IPv4 ranges」(IPv4 範圍),並在「Source IPv4 ranges」(來源 IPv4 範圍) 欄位中輸入 CIDR 區塊。如為任何 IPv4 來源,請使用
0.0.0.0/0
。 - 如要依來源 IPv6 範圍篩選傳出流量,請選取「IPv6 範圍」,並在「來源 IPv6 範圍」欄位中輸入 CIDR 區塊。任何 IPv6 目的地都可使用
::/0
。 詳情請參閱輸出規則的來源。
- 如要依來源 IPv4 範圍篩選傳出流量,請選取「IPv4 ranges」(IPv4 範圍),並在「Source IPv4 ranges」(來源 IPv4 範圍) 欄位中輸入 CIDR 區塊。如為任何 IPv4 來源,請使用
定義要套用規則的「Protocols and ports」(通訊協定和通訊埠):
- 如要將規則套用到所有通訊協定和目的地通訊埠,請根據要採取的動作選取「全部允許」或「全部拒絕」。
如要定義特定通訊協定和目的地通訊埠,請選取「指定的通訊協定和通訊埠」:
- 選取「TCP」TCP以包含 TCP 通訊協定和目的地通訊埠。輸入
all
或以逗號分隔的目的地通訊埠清單,例如20-22, 80, 8080
。 - 選取「UDP」以包含 UDP 通訊協定和目的地通訊埠。輸入
all
或以逗號分隔的目的地通訊埠清單,例如67-69, 123
。 選取「其他」,以包含
icmp
、sctp
等通訊協定或通訊協定編號。舉例來說,使用icmp
或通訊協定編號1
代表 IPv4 ICMP。針對 IPv6 ICMP 使用通訊協定編號58
。詳情請參閱通訊協定和目的地連接埠。
- 選取「TCP」TCP以包含 TCP 通訊協定和目的地通訊埠。輸入
(選用) 您可以將防火牆規則的強制執行狀態設為已停用,如此一來,您就能在不強制執行防火牆規則的情況下建立規則。按一下「停用規則」,然後選取「已停用」。
點選「建立」。
gcloud
如要建立虛擬私有雲防火牆規則,請使用 gcloud compute firewall-rules create
指令:
gcloud compute firewall-rules create RULE_NAME \ [--network NETWORK; default="default"] \ [--priority PRIORITY;default=1000] \ [--direction (ingress|egress|in|out); default="ingress"] \ [--action (deny | allow )] \ [--target-tags TAG[,TAG,...]] \ [--target-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \ [--source-ranges CIDR_RANGE[,CIDR_RANGE,...]] \ [--source-tags TAG,TAG,] \ [--source-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \ [--destination-ranges CIDR_RANGE[,CIDR_RANGE,...]] \ [--rules (PROTOCOL[:PORT[-PORT]],[PROTOCOL[:PORT[-PORT]],...]] | all ) \ [--disabled | --no-disabled] \ [--enable-logging | --no-enable-logging] \ [--logging-metadata LOGGING_METADATA]
請依照以下說明的方式來使用參數。如要進一步瞭解每個參數,請參閱 SDK 參考資料說明文件。
--network
規則的網路。如果省略此參數,系統會在default
網路中建立規則。如果您沒有預設網路,或想在特定網路中建立規則,就必須使用這個欄位。--priority
:代表規則優先順序的數值。數值越低,優先順序越高。--direction
流量方向,INGRESS
或EGRESS
擇一。--action
相符時執行的動作,allow
或deny
擇一。必須與--rules
旗標搭配使用。- 指定目標的方式有下列幾種:
如要進一步精確指定輸入規則的目的地,請使用
--destination-ranges
以 CIDR 格式指定 IPv4 或 IPv6 位址範圍。如果省略--destination-ranges
,則傳入目的地為任何 IPv4 位址0.0.0.0/0
。詳情請參閱輸入規則的目的地和輸入規則的目標和 IP 位址。針對輸入規則,指定來源:
--source-ranges
使用這個標記指定 CIDR 格式的來源 IPv4 或 IPv6 位址範圍。- 如果省略
--source-ranges
、source-tags
和--source-service-accounts
,則傳入來源為任何 IPv4 位址0.0.0.0/0
。 --source-tags
使用這個標記以透過網路標記來指定來源執行個體。只有在目標「並非」以服務帳戶指定時,才可依據來源標記進行篩選。詳情請參閱依服務帳戶篩選與依網路標記篩選的比較。--source-ranges
和--source-tags
可以「一起」使用。如果兩者都有指定,則有效的來源設定會「結合」來源範圍 IP 位址以及使用網路標記標示的執行個體,即使受到標記的執行個體在來源範圍中沒有 IP 也是如此。--source-service-accounts
使用此標記來根據執行個體使用的服務帳戶指定執行個體。只有在目標「並非」以網路標記指定時,才可依據來源服務帳戶進行篩選。詳情請參閱依服務帳戶篩選與依網路標記篩選的比較。--source-ranges
和--source-service-accounts
可以「一起」使用。如果兩者都有指定,則有效的來源設定會結合來源範圍 IP 位址以及使用來源服務帳戶標示的執行個體,即使使用來源服務帳戶標示的執行個體在來源範圍中沒有 IP 也是如此。
如果是輸出規則,如要進一步調整來源,請使用
--source-ranges
以 CIDR 格式指定 IPv4 或 IPv6 位址範圍。如果省略--source-ranges
,則輸出來源為任何 IPv4 位址0.0.0.0/0
。詳情請參閱「Egress 規則的來源」和「Egress 規則的目標和 IP 位址」。針對輸出規則,指定目的地:
--destination-ranges
使用這個標記指定 CIDR 格式的目的地 IPv4 或 IPv6 位址範圍。- 如果省略
--destination-ranges
,輸出目的地會是任何 IPv4 位址0.0.0.0/0
。
--rules
:要套用規則的通訊協定和目的地通訊埠清單。使用all
可讓規則適用於所有通訊協定和所有目的地通訊埠。需要--action
旗標。根據預設,防火牆規則建立後會自動強制執行,不過您可以變更這項行為。
- 如果同時省略
--disabled
和--no-disabled
,會建立並強制執行防火牆規則。 --disabled
加入此標記可在不強制執行防火牆規則的情況下建立規則。除非您更新防火牆規則,將狀態變更為啟用,否則防火牆規則將維持停用狀態。--no-disabled
加入此標記可確保強制執行防火牆規則。
- 如果同時省略
--enable-logging | --no-enable-logging
您可以在建立或更新防火牆規則時啟用防火牆規則記錄。「防火牆規則記錄」可讓您稽核、驗證及分析防火牆規則的效果。詳情請參閱「防火牆規則記錄」。--logging-metadata
啟用記錄功能後,防火牆規則記錄功能預設會納入基礎和中繼資料欄位。您可以省略中繼資料欄位,以節省儲存費用。詳情請參閱「使用防火牆規則記錄」。
Terraform
如要建立防火牆規則,可以使用 google_compute_firewall
資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
API
建立虛擬私有雲防火牆規則。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "RULE_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。NETWORK
:建立防火牆規則的虛擬私有雲網路名稱。RULE_NAME
:防火牆規則的名稱。針對輸入防火牆規則,指定輸入來源和目的地:
使用
sourceRanges
、sourceTags
或sourceServiceAccounts
欄位指定進入來源。sourceRanges
可以是 IPv4 或 IPv6 範圍,但不能同時包含兩者。如要使用範圍0.0.0.0/0
,請勿指定任何欄位。您無法同時使用
sourceTags
和sourceServiceAccounts
欄位。不過,您可以搭配sourceTags
或sourceServiceAccounts
使用sourceRanges
。如果有的話,連線只要符合其中一項,就會套用防火牆規則。如果是目標欄位,使用
sourceTags
欄位時,就無法使用targetServiceAccounts
欄位。您必須使用targetTags
欄位或不使用目標欄位。同樣地,如果您使用sourceServiceAccounts
欄位,就無法使用targetTags
欄位。如未指定目標欄位,規則會套用至網路中的所有目標。使用
destinationRanges
欄位指定連入目的地。destinationRanges
可以是 IPv4 或 IPv6 範圍,但不能同時包含兩者。
如果未指定目的地, Trusted Cloud 會使用0.0.0.0/0
。詳情請參閱「連入規則的目的地」和「連入規則的目標和 IP 位址」。
針對輸出防火牆規則,請指定輸出來源和目的地:
使用
sourceRanges
欄位指定輸出來源。sourceRange
可以是 IPv4 或 IPv6 範圍,但不能同時包含兩者。
如未指定來源, Trusted Cloud 會使用0.0.0.0/0
。 詳情請參閱「Egress 規則的來源」和「Egress 規則的目標和 IP 位址」。使用
destinationRanges
欄位指定目的地。destinationRanges
可以是 IPv4 或 IPv6 範圍,但不得同時包含兩者。
如未指定目的地, Trusted Cloud會使用0.0.0.0/0
。使用targetTags
或targetServiceAccounts
欄位,指定規則套用的目標。如未指定目標欄位,規則會套用至網路中的所有目標。
如要進一步瞭解每個欄位,請參閱 firewalls.insert
方法。
C#
Go
Java
Node.js
PHP
Python
Ruby
更新虛擬私有雲防火牆規則
您可以修改虛擬私有雲防火牆規則的部分元件,例如相符條件中指定的通訊協定和目的地通訊埠。您無法修改防火牆規則的名稱、網路、相符時執行的動作和流量方向。
如要變更名稱、網路、動作或方向部分,您必須改為刪除規則並建立新規則。
如要新增或移除多個服務帳戶,請使用 gcloud CLI、API 或用戶端程式庫。您無法使用 Trusted Cloud 主控台指定多個目標服務帳戶或來源服務帳戶。
主控台
在 Trusted Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
按一下要修改的防火牆規則。
按一下 [Edit] (編輯)。
修改任何可編輯的元件以符合您的需求。
按一下 [儲存]。
gcloud
如要更新虛擬私有雲防火牆規則,請使用 gcloud compute firewall-rules update
指令:
gcloud compute firewall-rules update RULE_NAME \ [--priority=PRIORITY] \ [--description=DESCRIPTION] \ [--target-tags=TAG,...] \ [--target-service-accounts=IAM_SERVICE_ACCOUNT,_] \ [--source-ranges=CIDR_RANGE,...] \ [--source-tags=TAG,...] \ [--source-service-accounts=IAM_SERVICE_ACCOUNT,_] \ [--destination-ranges=CIDR_RANGE,...] \ [--rules=[PROTOCOL[:PORT[-PORT]],…]] \ [--disabled | --no-disabled] \ [--enable-logging | --no-enable-logging]
每個標記的說明與建立防火牆規則一節的內容相同。如要進一步瞭解各個標記,請參閱 SDK 參考說明文件。
API
使用 PATCH 更新下列欄位:allowed
、description
、sourceRanges
、sourceTags
或 targetTags
。其他所有欄位都使用 PUT 或 POST。
(PATCH|(POST|PUT)) https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME { "name": "RULE_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。NETWORK
:防火牆規則所在的虛擬私有雲網路名稱。RULE_NAME
:要更新的防火牆規則名稱。
如要進一步瞭解每個欄位,請參閱 firewalls.patch
或 firewalls.update
方法。
C#
Go
Java
Node.js
PHP
Python
Ruby
列出虛擬私有雲網路的虛擬私有雲防火牆規則
您可以列出專案或特定 VPC 網路的所有 VPC 防火牆規則。針對每個防火牆規則,Trusted Cloud 會顯示規則類型、目標和篩選器等詳細資料。
啟用防火牆規則記錄後,防火牆深入分析就能提供防火牆規則的深入分析資訊,協助您瞭解並安全地最佳化規則設定。舉例來說,您可以查看過去六週內未使用的 allow
規則。詳情請參閱防火牆洞察說明文件中的「使用防火牆規則詳細資料畫面」。
主控台
如要顯示專案中所有網路的所有虛擬私有雲防火牆規則:
在 Trusted Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
如要顯示特定網路的虛擬私有雲防火牆規則:
在 Trusted Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
按一下 VPC 網路的名稱,即可前往該 VPC 網路的詳細資料頁面。
在網路的詳細資料頁面中,按一下「Firewalls」(防火牆) 分頁標籤。
展開「vpc-firewall-rules」。
gcloud
如要產生特定網路的虛擬私有雲防火牆規則排序清單,請使用 gcloud compute firewall-rules list
指令:
gcloud compute firewall-rules list --filter network=NETWORK \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, targetTags.list():label=TARGET_TAGS )"
請將 NETWORK
替換為要列出防火牆規則的網路名稱。
API
列出特定網路的所有虛擬私有雲防火牆規則。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/?filter=network="NETWORK
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。NETWORK
:虛擬私有雲網路的名稱,其中包含要列出的防火牆規則。
詳情請參閱 firewalls.list
方法。
C#
Go
Java
Node.js
PHP
Python
Ruby
列出 VM 執行個體網路介面的虛擬私有雲防火牆規則
針對每個網路介面, Trusted Cloud 主控台會列出套用到該介面的所有 VPC 防火牆規則,以及介面實際使用的規則。防火牆規則可以遮蔽其他規則,因此介面實際上可能不會使用所有套用到介面的規則。
防火牆規則是透過規則的目標參數,與 VM 執行個體建立關聯並套用到該執行個體。您可以查看所有套用規則,確認特定規則是否正套用至介面。
啟用防火牆規則記錄後,防火牆深入分析就能提供防火牆規則的深入分析資訊,協助您瞭解並安全地最佳化規則設定。舉例來說,您可以查看介面上的哪些規則在過去六週內發揮作用。詳情請參閱防火牆洞察說明文件中的「使用 VM 網路介面詳細資料畫面」一文。
主控台
如要查看套用到 VM 執行個體特定網路介面的 VPC 規則:
前往 Trusted Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
找出要查看的執行個體。
在執行個體的「更多動作」選單 (
) 中,選取「查看網路詳細資料」。如果執行個體擁有多個網路介面,請在「Selected network interface」(選取的網路介面) 欄位中,選取要查看的網路介面。
在「防火牆和路徑詳細資料」部分中,選取「防火牆」分頁標籤。
展開「vpc-firewall-rules」。
查看資料表,判斷是否允許進出特定 IP 位址的流量。
查看虛擬私有雲防火牆規則詳細資料
您可以檢查虛擬私有雲防火牆規則,查看其名稱、適用網路和元件等資訊,包含該規則是否啟用或停用在內。
主控台
- 列出您的防火牆規則,您可以查看所有規則的清單或特定網路中的規則清單。
- 按一下要查看的規則。
gcloud
下列指令會說明個別的 VPC 防火牆規則,由於防火牆規則名稱為專案內的專屬名稱,因此在說明現有防火牆規則時,您不必指定網路。
gcloud compute firewall-rules describe RULE_NAME
將 RULE_NAME
替換為防火牆規則的名稱。
API
說明指定的虛擬私有雲防火牆規則。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
將預留位置替換為有效值:
PROJECT_ID
:防火牆規則所在的專案 ID。RULE_NAME
:要說明的防火牆規則名稱。
詳情請參閱 firewalls.get
方法。
刪除虛擬私有雲防火牆規則
主控台
- 列出虛擬私有雲防火牆規則,您可以查看所有規則的清單或特定網路中的規則清單。
- 按一下要刪除的規則。
- 按一下 [Delete] (刪除)。
- 再按一下 [刪除] 加以確認。
gcloud
如要刪除虛擬私有雲防火牆規則,請使用 gcloud compute firewall-rules delete
指令:
gcloud compute firewall-rules delete RULE_NAME
將 RULE_NAME
替換為要刪除的規則名稱。
API
刪除虛擬私有雲防火牆規則。
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
更改下列內容:
PROJECT_ID
:防火牆規則所在專案的 ID。RULE_NAME
:要刪除的防火牆規則名稱。
詳情請參閱 firewalls.delete
方法。
C#
Go
Java
Node.js
PHP
Python
Ruby
監控虛擬私有雲防火牆規則
您可以啟用虛擬私有雲防火牆規則記錄,查看每項規則允許或封鎖的流量。如需操作說明,請參閱「使用防火牆規則記錄」。
設定常見用途的虛擬私有雲防火牆規則
以下各節提供範例,說明如何使用 gcloud CLI 和 API,重新建立為預設網路建立的預先定義虛擬私有雲防火牆規則。您可以參考這些範例,為自訂和自動模式網路建立類似規則。每項防火牆規則只能包含 IPv4 或 IPv6 位址範圍,不能同時包含兩者。
允許 VM 之間的內部輸入連線
下列範例會建立防火牆規則,允許內部 TCP、UDP 和 ICMP 連線連至 VM 執行個體,類似於預設網路的 allow-internal
規則。
gcloud
使用 gcloud compute firewall-rules create
指令:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=tcp:0-65535,udp:0-65535,ICMP_PROTOCOL \ --source-ranges=SUBNET_RANGES
更改下列內容:
RULE_NAME
:這個防火牆規則的名稱。NETWORK
:這個防火牆規則套用到的網路名稱。預設值為default
。ICMP_PROTOCOL
:ICMP 通訊協定類型。使用通訊協定名稱icmp
或通訊協定編號1
,指定 ICMPv4。使用通訊協定編號58
指定 ICMPv6。SUBNET_RANGES
:一或多個 IP 位址範圍。 加入 IP 位址範圍後,該範圍的流量就能抵達虛擬私有雲網路中的任何 VM 目的地。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。IPv4 子網路範圍:
- 自動模式虛擬私有雲端網路使用的 IP 位址範圍位於
10.128.0.0/9
內。 - 自訂模式網路可以使用任何有效 IPv4 範圍。如果虛擬私有雲網路中的子網路未使用連續範圍,您可能需要指定多個範圍。
- 您可以使用
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
允許來自所有私人 IPv4 位址範圍 (RFC 1918 範圍) 的流量。
IPv6 子網路範圍:
如果您已為 VPC 網路指派內部 IPv6 位址範圍,即可將該範圍做為來源範圍。使用 VPC 網路的內部 IPv6 範圍,表示防火牆規則包含所有目前和未來的內部 IPv6 子網路範圍。您可以使用下列指令,找出虛擬私有雲網路的內部 IPv6 範圍:
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
您也可以指定特定的內部 IPv6 子網路範圍。
如要允許外部 IPv6 子網路範圍的流量,您必須指定要納入的每個子網路的 IPv6 位址範圍。
- 自動模式虛擬私有雲端網路使用的 IP 位址範圍位於
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "0-65535" ] }, { "IPProtocol": "udp", "ports": [ "0-65535" ] }, { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "SUBNET_RANGES" ] }
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。RULE_NAME
:防火牆規則的名稱。NETWORK
:建立防火牆規則的虛擬私有雲網路名稱。預設值為default
。ICMP_PROTOCOL
:ICMP 通訊協定類型。 使用通訊協定名稱icmp
或通訊協定編號1
指定 ICMPv4。使用通訊協定編號58
指定 ICMPv6。INTERNAL_SOURCE_RANGES
:一或多個 IP 範圍。 如要允許虛擬私有雲網路中所有子網路的內部流量,請指定虛擬私有雲網路中使用的 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。IPv4 子網路範圍:
- 自動模式虛擬私有雲端網路使用的 IP 位址範圍位於
10.128.0.0/9
內。 - 自訂模式網路可以使用任何有效 IPv4 範圍。如果虛擬私有雲網路中的子網路未使用連續範圍,您可能需要指定多個範圍。
- 您可以使用
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
允許來自所有私人 IPv4 位址範圍 (RFC 1918 範圍) 的流量。
IPv6 子網路範圍:
如果您已為 VPC 網路指派內部 IPv6 位址範圍,即可將該範圍做為來源範圍。使用 VPC 網路的內部 IPv6 範圍,表示防火牆規則包含所有目前和未來的內部 IPv6 子網路範圍。您可以使用下列指令,找出虛擬私有雲網路的內部 IPv6 範圍:
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
您也可以指定特定的內部 IPv6 子網路範圍。
如要允許外部 IPv6 子網路範圍的流量,您必須指定要納入的每個子網路的 IPv6 位址範圍。
- 自動模式虛擬私有雲端網路使用的 IP 位址範圍位於
允許連線至 VM 的輸入 SSH 連線
下列範例會建立防火牆規則,允許與 VM 執行個體建立 SSH 連線,類似於預設網路的 allow-ssh
規則。
gcloud
使用 gcloud compute firewall-rules create
指令:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=tcp:22 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
更改下列內容:
RULE_NAME
:這個防火牆規則的名稱。NETWORK
:這個防火牆規則套用到的網路名稱。預設值為default
。RANGES_OUTSIDE_VPC_NETWORK
:一或多個 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。- 如果來源範圍包含
35.235.240.0/20
,且符合所有其他必要條件,系統就會允許使用 Identity-Aware Proxy (IAP) TCP 轉送的 SSH 連線。詳情請參閱「使用 IAP 進行轉送 TCP」一文。 - 如果來源範圍是
0.0.0.0/0
,系統會允許來自所有 IPv4 來源的流量,包括 Trusted Cloud外部的來源。 - 如果來源範圍是
::/0
,系統會允許來自所有 IPv6 來源的流量,包括 Trusted Cloud外部的來源。
- 如果來源範圍包含
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。RULE_NAME
:防火牆規則的名稱。NETWORK
:建立防火牆規則的虛擬私有雲網路名稱。RANGES_OUTSIDE_VPC_NETWORK
:一或多個 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。- 如果來源範圍包含
35.235.240.0/20
,且符合所有其他必要條件,系統就會允許使用 Identity-Aware Proxy (IAP) TCP 轉送的 SSH 連線。詳情請參閱「使用 IAP 進行轉送 TCP」。 - 如果來源範圍是
0.0.0.0/0
,系統會允許來自所有 IPv4 來源的流量,包括 Trusted Cloud外部的來源。 - 如果來源範圍是
::/0
,系統會允許來自所有 IPv6 來源的流量,包括 Trusted Cloud外部的來源。
- 如果來源範圍包含
允許連入 VM 的 RDP 連線
下列範例會建立防火牆規則,允許 Microsoft 遠端桌面通訊協定 (RDP) 連線至 VM 執行個體,類似於預設網路的 allow-rdp
規則。
gcloud
使用 gcloud compute firewall-rules create
指令:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=tcp:3389 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
更改下列內容:
RULE_NAME
:這個防火牆規則的名稱。NETWORK
:這個防火牆規則套用到的網路名稱。預設值為default
。RANGES_OUTSIDE_VPC_NETWORK
:一或多個 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。- 如果來源範圍包含
35.235.240.0/20
,且符合所有其他必要條件,即可使用 Identity-Aware Proxy (IAP) TCP 轉送功能建立遠端桌面協定連線。詳情請參閱「使用 IAP 進行轉送 TCP」一文。 - 如果來源範圍是
0.0.0.0/0
,系統會允許來自所有 IPv4 來源的流量,包括 Trusted Cloud外部的來源。 - 如果來源範圍是
::/0
,系統會允許來自所有 IPv6 來源的流量,包括 Trusted Cloud外部的來源。
- 如果來源範圍包含
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "allowed": [ { "IPProtocol": "tcp", "ports": [ "3389" ] } ], "sourceRanges": [ "EXTERNAL_SOURCE_RANGES" ] }
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。RULE_NAME
:防火牆規則的名稱。NETWORK
:建立防火牆規則的虛擬私有雲網路名稱。RANGES_OUTSIDE_VPC_NETWORK
:一或多個 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。- 如果來源範圍包含
35.235.240.0/20
,且符合所有其他必要條件,即可使用 Identity-Aware Proxy (IAP) TCP 轉送功能建立遠端桌面協定連線。詳情請參閱「使用 IAP 進行轉送 TCP」。 - 如果來源範圍是
0.0.0.0/0
,系統會允許來自所有 IPv4 來源的流量,包括 Trusted Cloud外部的來源。 - 如果來源範圍是
::/0
,系統會允許來自所有 IPv6 來源的流量,包括 Trusted Cloud外部的來源。
- 如果來源範圍包含
允許輸入 ICMP 連線至 VM
下列範例會建立防火牆規則,允許與 VM 執行個體建立 ICMP 連線,類似於預設網路的 allow-icmp
規則。
gcloud
使用 gcloud compute firewall-rules create
指令:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK \ --priority=1000 \ --rules=ICMP_PROTOCOL \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
更改下列內容:
RULE_NAME
:防火牆規則的名稱。NETWORK
:這個防火牆規則套用到的網路名稱。預設值為default
。ICMP_PROTOCOL
:ICMP 通訊協定類型。 使用通訊協定名稱icmp
或通訊協定編號1
指定 ICMPv4。使用通訊協定編號58
指定 ICMPv6。RANGES_OUTSIDE_VPC_NETWORK
:一或多個 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。- 如果來源範圍是
0.0.0.0/0
,系統會允許來自所有 IPv4 來源的流量,包括 Trusted Cloud外部的來源。 - 如果來源範圍是
::/0
,系統會允許來自所有 IPv6 來源的流量,包括 Trusted Cloud外部的來源。
- 如果來源範圍是
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "RULE_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
更改下列內容:
PROJECT_ID
:虛擬私有雲網路所在的專案 ID。RULE_NAME
:防火牆規則的名稱。NETWORK
:建立防火牆規則的虛擬私有雲網路名稱。ICMP_PROTOCOL
:要使用的 ICMP 通訊協定類型。使用通訊協定名稱icmp
或通訊協定編號1
指定 ICMPv4。 使用通訊協定編號58
指定 ICMPv6。RANGES_OUTSIDE_VPC_NETWORK
:一或多個 IP 位址範圍。您可以在特定防火牆規則中指定 IPv4 或 IPv6 範圍。最佳做法是指定需要允許存取的特定 IP 位址範圍,而非所有 IPv4 或 IPv6 來源。- 如果來源範圍是
0.0.0.0/0
,系統會允許來自所有 IPv4 來源的流量,包括 Trusted Cloud外部的來源。 - 如果來源範圍是
::/0
,系統會允許來自所有 IPv6 來源的流量,包括 Trusted Cloud外部的來源。
- 如果來源範圍是
其他設定範例
圖 1 說明名為 my-network
的虛擬私有雲網路設定範例。網路包含下列項目:
- 名為
subnet1
的子網路,IP 範圍為10.240.10.0/24
,且只有一個執行個體 - 名為
subnet2
的子網路,IP 範圍為192.168.1.0/24
subnet2
中名為vm1
的執行個體,標記為webserver
,內部 IP 位址為192.168.1.2
subnet2
中名為vm2
的執行個體,標記為database
,內部 IP 位址為192.168.1.3
範例 1:除了從 subnet1 到通訊埠 80 的連線以外,拒絕其他所有輸入 TCP 連線
本範例會建立一系列防火牆虛擬私有雲規則,拒絕所有輸入 TCP 連線,從 subnet1
到通訊埠 80
的連線則除外。
gcloud
建立防火牆規則,拒絕所有輸入 TCP 流量傳送到具有
webserver
標記的執行個體。gcloud compute firewall-rules create deny-subnet1-webserver-access \ --network NETWORK_NAME \ --action deny \ --direction INGRESS \ --rules tcp \ --source-ranges 0.0.0.0/0 \ --priority 1000 \ --target-tags webserver
將
NETWORK_NAME
替換為網路名稱。建立防火牆規則,允許
subnet1
中的所有 IP 位址 (10.240.10.0/24
) 存取具有webserver
標記的執行個體上的 TCP 通訊埠80
。gcloud compute firewall-rules create vm1-allow-ingress-tcp-port80-from-subnet1 \ --network NETWORK_NAME \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.240.10.0/24 \ --priority 50 \ --target-tags webserver
將
NETWORK_NAME
替換為網路名稱。
範例 2:除了與 vm1 的通訊埠 80 的連線以外,拒絕其他所有輸出 TCP 連線
gcloud
建立防火牆規則,拒絕所有輸出 TCP 流量。
gcloud compute firewall-rules create deny-all-access \ --network NETWORK_NAME \ --action deny \ --direction EGRESS \ --rules tcp \ --destination-ranges 0.0.0.0/0 \ --priority 1000
將
NETWORK_NAME
替換為網路名稱。建立防火牆規則,允許目的地為
vm1
通訊埠80
的 TCP 流量。gcloud compute firewall-rules create vm1-allow-egress-tcp-port80-to-vm1 \ --network NETWORK_NAME \ --action allow \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 192.168.1.2/32 \ --priority 60
將
NETWORK_NAME
替換為網路名稱。
範例 3:允許與外部主機的通訊埠 443 建立輸出 TCP 連線
建立防火牆規則,允許具有 webserver
標記的執行個體傳送輸出 TCP 流量到外部 IP 位址範例 192.0.2.5
的通訊埠 443
。
gcloud
gcloud compute firewall-rules create vm1-allow-egress-tcp-port443-to-192-0-2-5 \ --network NETWORK_NAME \ --action allow \ --direction EGRESS \ --rules tcp:443 \ --destination-ranges 192.0.2.5/32 \ --priority 70 \ --target-tags webserver
將 NETWORK_NAME
替換為網路名稱。
範例 4:允許從 vm2 到 vm1 的 SSH 連線
建立防火牆規則,允許 SSH 流量從具有 database
標記的執行個體 (vm2
) 傳送到具有 webserver
標記的執行個體 (vm1
)。
gcloud
gcloud compute firewall-rules create vm1-allow-ingress-tcp-ssh-from-vm2 \ --network NETWORK_NAME \ --action allow \ --direction INGRESS \ --rules tcp:22 \ --source-tags database \ --priority 80 \ --target-tags webserver
將 NETWORK_NAME
替換為網路名稱。
範例 5:使用服務帳戶允許從網路伺服器到資料庫之間的 TCP:1443
如要進一步瞭解服務帳戶與角色,請參閱將角色授予服務帳戶。
設想圖 2 中的情境。在範例情境中,有兩個會透過範本自動調整資源配置的應用程式:一個與 my-sa-webserver
服務帳戶相關聯的網路伺服器應用程式,以及一個與 my-sa-database
服務帳戶相關聯的資料庫應用程式。安全管理員想要允許 TCP 流量從具有 my-sa-webserver
服務帳戶的 VM,傳送到具有 my-sa-database
服務帳戶的 VM 的目的地通訊埠 1443
。
包含建立服務帳戶在內的設定步驟如下所示。
gcloud
專案「編輯者」或專案「擁有者」建立服務帳戶
my-sa-webserver
和my-sa-database
。gcloud iam service-accounts create my-sa-webserver \ --display-name "webserver service account"
gcloud iam service-accounts create my-sa-database \ --display-name "database service account"
專案「擁有者」設定身分與存取權管理 (IAM) 政策,以針對網路伺服器開發人員 web-dev@example.com 指派服務帳戶
my-sa-webserver
的 serviceAccountUser 角色。gcloud iam service-accounts add-iam-policy-binding \ my-sa-webserver@my-project.s3ns-system.iam.gserviceaccount.com \ --member='user:web-dev@example.com' \ --role='roles/iam.serviceAccountUser'
專案「擁有者」設定身分與存取權管理政策,以針對資料庫開發人員
db-dev@example.com
指派服務帳戶my-sa-database
的 serviceAccountUser 角色。gcloud iam service-accounts add-iam-policy-binding \ my-sa-database@my-project.s3ns-system.iam.gserviceaccount.com \ --member='user:db-dev@example.com' \ --role='roles/iam.serviceAccountUser'
擁有執行個體管理員角色的開發人員
web-dev@example.com
建立網路伺服器執行個體範本,並授權執行個體以服務帳戶my-sa-webserver
的身分執行。gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --service-account my-sa-webserver@my-project-123.s3ns-system.iam.gserviceaccount.com
擁有執行個體管理員角色的開發人員
db-dev@example.com
建立資料庫執行個體範本,並授權執行個體以服務帳戶my-sa-database
的身分執行。gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --service-account my-sa-database@my-project-123.s3ns-system.iam.gserviceaccount.com
安全管理員建立防火牆規則,允許來自服務帳戶
my-sa-webserver
的 VM 流量,連線至服務帳戶my-sa-database
的 VM 通訊埠 1443。gcloud compute firewall-rules create RULE_NAME \ --network network_a \ --allow TCP:1443 \ --source-service-accounts my-sa-webserver@my-project.s3ns-system.iam.gserviceaccount.com \ --target-service-accounts my-sa-database@my-project.s3ns-system.iam.gserviceaccount.com
疑難排解
建立或更新虛擬私有雲防火牆規則時出現錯誤訊息
你可能會看到下列其中一則錯誤訊息:
Should not specify destination range for ingress direction.
目的地範圍並非輸入防火牆規則的有效參數。 除非另外指定
EGRESS
方向,否則系統會假設防火牆規則為輸入規則。如果您在建立規則時未指定方向,系統會將規則建立為輸入規則,而輸入規則不允許使用目的地範圍。此外,來源範圍並非輸出規則的有效參數。Firewall direction cannot be changed once created.
您無法變更現有防火牆規則的方向。您必須使用正確的參數建立新的規則,然後刪除舊的規則。
Firewall traffic control action cannot be changed once created.
您無法變更現有防火牆規則的動作。您必須使用正確的參數建立新的規則,然後刪除舊的規則。
Service accounts must be valid RFC 822 email addresses.
防火牆規則中指定的服務帳戶必須為符合 RFC 822 的電子郵件地址格式。gcloud compute firewall-rules create bad --allow tcp --source-service-accounts invalid-email
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – Invalid value for field 'resource.sourceServiceAccounts[0]': 'invalid-email'. Service accounts must be valid RFC 822 email addresses.
ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
您無法在同一個規則中同時指定服務帳戶和標記。gcloud compute firewall-rules create bad --allow tcp --source-service-accounts test@google.com --target-tags target
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
找不到資源錯誤
刪除虛擬私有雲網路或防火牆規則時,您可能會看到類似下列訊息:
The resource "aet-uscentral1-subnet--1-egrfw" was not found.
這個錯誤可能會導致您無法刪除默示防火牆規則或查看其詳細資料。處於這種狀態的防火牆規則也可能會導致您無法刪除虛擬私有雲網路。
如要刪除以這種方式封鎖的防火牆規則或網路,請先刪除相關聯的無伺服器虛擬私有雲存取連接器,然後再試一次。如要進一步瞭解如何刪除無伺服器虛擬私有雲存取連接器,請參閱刪除連接器。
防火牆過大錯誤
您可能會看到下列錯誤訊息:
Google Compute Engine: The network contains too many large firewalls.
為維護安全性和效能,虛擬私有雲網路可實作的防火牆規則複雜度和數量設有限制。如果看到這個錯誤,請要求帳戶管理團隊簡化或合併防火牆規則。
無法連線至 VM 執行個體
如果您無法連線至 VM 執行個體,請檢查您的防火牆規則。
gcloud
如果您從另一個 VM 執行個體啟動連線,請列出該執行個體的輸出防火牆規則。
gcloud compute firewall-rules list --filter network=NETWORK_NAME \ --filter EGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"
將
NETWORK_NAME
替換為網路名稱。檢查是否有任何輸出規則拒絕目的地 IP。優先順序最高 (優先順序數字最小) 的規則會覆寫優先順序較低的規則。如果有兩個規則的優先順序相同,將以動作為拒絕的規則為優先。
針對包含目的地 VM 執行個體的網路,檢查輸入防火牆規則。
gcloud compute firewall-rules list --filter network=NETWORK_NAME \ --filter INGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"
將
NETWORK_NAME
替換為網路名稱。輸出範例。您的輸出內容視您的防火牆規則清單而定。
NAME NETWORK DIRECTION PRIORITY SRC_RANGES DEST_RANGES ALLOW DENY SRC_TAGS SRC_SVC_ACCT TARGET_TAGS TARGET_SVC_ACCT default-allow-icmp default INGRESS 65534 0.0.0.0/0 icmp default-allow-internal default INGRESS 65534 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp default-allow-rdp default INGRESS 65534 0.0.0.0/0 tcp:3389 default-allow-ssh default INGRESS 65534 0.0.0.0/0 tcp:22 firewall-with-sa default INGRESS 1000 tcp:10000 test1@google.com target@google.com
您也可以對虛擬私有雲網路中的 VM 執行個體,以及其他虛擬私有雲網路或非 Google 雲端網路執行連線測試,藉此排解流量是否遭任何輸入或輸出防火牆規則捨棄的問題。如要進一步瞭解如何執行連線能力測試來排解各種情境的問題,請參閱「執行連線能力測試」。
我的虛擬私有雲防火牆規則為啟用狀態或停用狀態?
如要查看是否啟用或停用防火牆規則,請參閱防火牆規則詳細資料。
在 Trusted Cloud console中,查看「Enforcement」(強制執行) 區段顯示為「Enabled」(已啟用) 還是「Disabled」(已停用)。
在 gcloud CLI 輸出內容中,找出 disabled
欄位。
如果顯示 disabled:false
,則規則為啟用狀態且強制執行中;如果顯示 disabled: true
,則規則為停用狀態。
哪個規則會套用在 VM 執行個體上?
建立規則後,您可以檢查規則是否正確套用到特定執行個體。詳情請參閱列出 VM 執行個體網路介面的防火牆規則。
含有來源標記的虛擬私有雲防火牆規則不會立即生效
使用來源標記的輸入防火牆規則可能需要一段時間才能傳播。詳情請參閱與輸入防火牆規則來源標記相關的注意事項。
後續步驟
- 如需防火牆規則的簡介,請參閱虛擬私有雲防火牆規則。