使用全域網路防火牆政策允許輸出流量
瞭解如何限制虛擬機器 (VM) 執行個體的輸出流量,確保網路安全。本快速入門導覽課程說明如何設定全域網路防火牆政策,允許 VM 執行個體將輸出流量傳送至特定 IP 位址,同時封鎖相同虛擬私有雲 (VPC) 網路中所有其他 VM 執行個體的輸出流量。
在本快速入門導覽課程中,您將完成下列工作:
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 為專案啟用 Compute Engine API。
必要的角色
如要建立自訂模式虛擬私有雲網路、VM 執行個體和全域網路防火牆政策,或查看記錄,請要求管理員授予您專案的必要 Identity and Access Management (IAM) 角色:
- Compute 網路管理員角色 (
roles/compute.networkAdmin) - Compute 執行個體管理員 (v1) 角色 (
roles/compute.instanceAdmin.v1) - Compute 安全管理員角色 (
roles/compute.securityAdmin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立含有子網路的自訂模式虛擬私有雲網路
在本節中,您將建立自訂模式的虛擬私有雲網路和 IPv4 子網路,以代管 VM。
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下「建立虛擬私有雲網路」。
在「Name」(名稱) 中輸入
vpc-fw-rules。在「說明」中輸入
VPC network for the firewall rules quickstart。在「子網路建立模式」部分,選取「自訂」。
在「New subnet」(新的子網路) 區段中,指定下列項目:
- Name (名稱):
subnet-fw-rules - Region (區域):
us-central1 - IPv4 範圍:
10.0.0.0/24 - Private Google Access:開啟
將Private Google Access設為「開啟」,即可讓這個子網路中的 VM 存取 Google Cloud 服務,無須使用外部 IP 位址。
- Name (名稱):
依序點選「完成」和「建立」。
根據預設,虛擬私有雲網路包含下列隱含的 IPv4 規則:
- 允許輸出規則,目的地為
0.0.0.0/0,優先順序為最低 (65535),可允許任何執行個體將流量傳送至任意目的地,但 Google Cloud封鎖的流量除外。 - 拒絕輸入,來源為
0.0.0.0/0,優先順序為最低 (65535),可封鎖傳入執行個體的連線,保護所有執行個體。
如要進一步瞭解輸入或輸出流量的隱含規則或動作,請參閱「防火牆規則評估程序」。
建立用戶端和伺服器 VM
在本節中,您會在先前建立的虛擬私有雲網路子網路中,建立兩個沒有外部 IP 位址的 Linux VM。
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
在「Name」(名稱) 中輸入
vm-fw-rules-server。在「Region」(區域) 中選取
us-central1 (Iowa)。在「Networking」(網路) 選單的「Network interfaces」(網路介面) 下方,選取:
- Network (網路):
vpc-fw-rules - Subnetwork (子網路):
subnet-fw-rules IPv4 (10.0.0.0/24) - 外部 IPv4 位址:臨時
- Network (網路):
依序點選「完成」和「建立」。
建立 VM 後,請記下 VM 的內部 IP 位址。
重複上述步驟,建立名為
vm-fw-rules-client的第二個 VM,使用相同的網路設定,但將「外部 IPv4 位址」設為「無」。
如要在 vm-fw-rules-server 上安裝及執行 nginx 網路伺服器,請按照下列步驟操作:
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點按
vm-fw-rules-server的「SSH」SSH。在「SSH-in-browser」(直接透過瀏覽器進行 SSH 連線) 對話方塊中,按一下「Authorize」(授權),然後等待連線建立。
如要安裝及執行
nginx網路伺服器,請執行sudo apt update && sudo apt install nginx指令。
建立全域網路防火牆政策
在本節中,您會建立全域網路防火牆政策,並與先前建立的虛擬私有雲網路建立關聯。
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
按一下「建立防火牆政策」。
在「Policy name」(政策名稱) 中輸入
fw-policy。在「部署範圍」部分,選取「全域」。
按一下「繼續」,略過規則部分。您會在快速入門導覽課程的下一節中新增防火牆規則。
在「將政策與網路建立關聯」部分中,按一下「建立關聯」。
選取
vpc-fw-rules核取方塊,然後按一下「建立關聯」,將虛擬私有雲網路與政策建立關聯。依序點選「繼續」和「建立」。
新增防火牆規則
在本節中,您會將防火牆規則新增至先前建立的全域網路防火牆政策。
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
按一下防火牆政策名稱,在政策的「防火牆規則」分頁中,按一下「建立防火牆規則」。
新增輸入規則,允許 TCP 流量進入通訊埠
22。這項規則可讓 Identity-Aware Proxy (IAP) 存取虛擬私有雲網路中的 VM 執行個體。IAP 服務會使用中央授權層,協助您存取用戶端和伺服器 VM。詳情請參閱 Identity-Aware Proxy 總覽。- 在「Priority」(優先順序) 中輸入
100。 - 在「目標類型」部分,選取「執行個體」。
- 在「目標」中,選取「套用至所有項目」。
- 「流量方向」請選取「輸入」。
- 「相符時執行的動作」請選取「允許」。
在「記錄」部分選取「已啟用」。
注意:啟用記錄功能可能會產生大量記錄檔,導致費用增加。
在「來源網路情境」中選取「所有網路情境」。
在「來源」部分,針對「IP 類型」選取「IPv4」。在「IP ranges」(IP 範圍) 中,輸入
35.235.240.0/20。在「Protocols and ports」(通訊協定和通訊埠) 中選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後選取「TCP」。在「Ports」(通訊埠) 部分,輸入
22。在「違規處置」部分,選取「已啟用」。
- 在「Priority」(優先順序) 中輸入
點選「建立」。
新增輸入規則,允許來自用戶端 VM 的輸入流量傳送至伺服器 VM:
- 在「Priority」(優先順序) 中輸入
200。 - 在「目標類型」部分,選取「執行個體」。
- 在「目標」中,選取「套用至所有項目」。
- 「流量方向」請選取「輸入」。
- 「相符時執行的動作」請選取「允許」。
在「記錄」部分選取「已啟用」。
注意:啟用記錄功能可能會產生大量記錄檔,導致費用增加。
在「來源網路環境」中,選取「特定網路環境」,然後選取「VPC 內部」。
在「來源」部分,針對「IP 類型」選取「IPv4」。在「IP 範圍」中,指定用戶端 VM 的內部 IP 位址。例如:
10.0.0.2/32。在「目的地」部分,將「IP 類型」選取為「IPv4」。在「IP 範圍」中,指定伺服器 VM 的內部 IP 位址。例如:
10.0.0.1/32。在「Protocols and ports」(通訊協定和通訊埠) 中選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後選取「TCP」。在「Ports」(通訊埠) 部分,輸入
80。在「違規處置」部分,選取「已啟用」。
- 在「Priority」(優先順序) 中輸入
點選「建立」。
為提升安全性,您可以限制所有輸出流量,並建立定義明確的輸出規則,只允許已識別的流量。
- 新增輸出規則,將用戶端 VM (朝向伺服器 VM) 的輸出流量委派給防火牆規則評估順序中的下一個規則,也就是允許所有輸出流量的隱含 IPv4 動作。
- 在「Priority」(優先順序) 中輸入
300。 - 在「目標類型」部分,選取「執行個體」。
- 在「目標」中,選取「套用至所有項目」。
- 在「Direction of traffic」(流量方向) 中選取「Egress」(輸出)。
- 在「Action on match」(相符時執行的動作) 中選取「Go to next」(前往下一個)。
- 在「目標網路情境」部分,選取「特定網路情境」,然後選取「非網際網路」。
- 在「目的地」部分,將「IP 類型」選取為「IPv4」。在「IP 範圍」中,指定伺服器 VM 的內部 IP 位址。例如:
10.0.0.1/32。 - 在「來源」部分,針對「IP 類型」選取「IPv4」。在「IP 範圍」中,指定用戶端 VM 的內部 IP 位址。例如:
10.0.0.2/32。 - 在「Protocols and ports」(通訊協定和通訊埠) 中選取「Specified protocols and ports」(指定的通訊協定和通訊埠),然後選取「TCP」。在「Ports」(通訊埠) 部分,輸入
80。 - 在「違規處置」部分,選取「已啟用」。
- 在「Priority」(優先順序) 中輸入
- 點選「建立」。
新增輸出規則,拒絕所有 VM 的輸出流量:
- 在「Priority」(優先順序) 中輸入
400。 - 在「目標類型」部分,選取「執行個體」。
- 在「目標」中,選取「套用至所有項目」。
- 在「Direction of traffic」(流量方向) 中選取「Egress」(輸出)。
- 在「Action on match」(相符時執行的動作) 中選取「Deny」(拒絕)。
在「記錄」部分選取「已啟用」。
注意:啟用記錄功能可能會產生大量記錄檔,導致費用增加。
在「Destination network context」(目的地網路情境) 中,選取「All network contexts」(所有網路情境)。
在「目的地」部分,將「IP 類型」選取為「IPv4」。在「IP ranges」(IP 範圍) 中,輸入
0.0.0.0/0。在「Protocols and ports」(通訊協定和通訊埠) 中選取「Allow all」(全部允許)。
在「違規處置」部分,選取「已啟用」。
- 在「Priority」(優先順序) 中輸入
點選「建立」。
- 新增輸出規則,將用戶端 VM (朝向伺服器 VM) 的輸出流量委派給防火牆規則評估順序中的下一個規則,也就是允許所有輸出流量的隱含 IPv4 動作。
測試防火牆政策
在本節中,您將測試全域網路防火牆政策。
如要確認 vm-fw-rules-client 能將流量傳送至 vm-fw-rules-server,請按照下列步驟操作:
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點按
vm-fw-rules-client的「SSH」SSH。在「SSH-in-browser」(直接透過瀏覽器進行 SSH 連線) 對話方塊中,按一下「Authorize」(授權),然後等待連線建立。
如要確認連線是否成功,請執行下列指令:
curl <IP_vm-fw-rules-server> -m 2將
IP_vm-fw-rules-server替換為vm-fw-rules-serverVM 的內部 IP 位址。
如要確認虛擬私有雲網路中任何 VM 的輸出流量都遭到封鎖,請按照下列步驟操作:
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
點按
vm-fw-rules-server的「SSH」SSH。在「SSH-in-browser」(直接透過瀏覽器進行 SSH 連線) 對話方塊中,按一下「Authorize」(授權),然後等待連線建立。
如要確認連線逾時,請執行下列指令:
curl <IP_vm-fw-rules-client> -m 2將
IP_vm-fw-rules-client替換為vm-fw-rules-clientVM 的內部 IP 位址。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本快速入門所用資源的費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
在本節中,您將刪除在本快速入門導覽課程中建立的資源。
刪除防火牆政策
前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
在「Network firewall policies」(網路防火牆政策) 區段中,選取
fw-policy名稱。按一下「關聯項目」分頁標籤,然後移除與
vpc-fw-rules的關聯。找到
fw-policy標題,然後按一下旁邊的「刪除」,即可刪除防火牆政策。
刪除 VM
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
勾選
vm-fw-rules-client和vm-fw-rules-serverVM 的核取方塊。點選「刪除」。
刪除虛擬私有雲網路和子網路
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
在「Name」(名稱) 欄中,按一下
vpc-fw-rules。按一下「刪除虛擬私有雲網路」。刪除 VPC 時,系統也會一併刪除子網路。