arrow_back

導入 Private Google Access 和 Cloud NAT

登录 加入
访问 700 多个实验和课程

導入 Private Google Access 和 Cloud NAT

实验 1 小时 20 分钟 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

簡介

在本實驗室中,您將針對沒有外部 IP 位址的 VM 執行個體導入 Private Google Access 和 Cloud NAT。接著,再驗證是否可以存取 Google API 與服務的公開 IP 位址,以及能否進行其他網路連線。

沒有外部 IP 位址的 VM 執行個體會與外部網路隔絕。透過 Cloud NAT,這類執行個體可以存取網際網路,以便接收更新和修補程式,在某些情況下還能執行啟動程序。Cloud NAT 為代管服務,提供高可用性,且不須使用者管理和介入。

目標

在本實驗室中,您將瞭解如何執行下列工作:

  • 設定沒有外部 IP 位址的 VM 執行個體
  • 透過 Identity-Aware Proxy (IAP) 通道連線至 VM 執行個體
  • 在子網路中啟用 Private Google Access
  • 設定 Cloud NAT 閘道
  • 驗證能否存取 Google API 與服務的公開 IP 位址,以及能否進行其他網路連線

設定和需求

每個實驗室都會提供新的 Google Cloud 專案和一組資源,讓您在時限內免費使用。

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。 「導覽選單」圖示

工作 1:建立 VM 執行個體

建立具備防火牆規則的虛擬私有雲網路和沒有外部 IP 位址的 VM 執行個體,然後透過 IAP 通道連線至該執行個體。

建立虛擬私有雲網路和防火牆規則

首先,請為 VM 執行個體建立虛擬私有雲網路,並設定允許透過 SSH 存取的防火牆規則。

  1. 前往 Google Cloud 控制台的「導覽選單」「導覽選單」圖示,依序點選「虛擬私有雲網路」>「虛擬私有雲網路」

  2. 點選「建立虛擬私有雲網路」

  3. 在「名稱」部分,輸入 privatenet

  4. 在「子網路建立模式」部分,按一下「自訂」

  5. 在「新的子網路」部分中指定下列屬性,並將剩餘設定保持預設狀態:

    屬性 值 (依指示輸入值或選取選項)
    名稱 privatenet-us
    區域
    IPv4 位址範圍 10.130.0.0/20
注意:現在還不要啟用 Private Google Access
  1. 按一下「完成」

  2. 按一下「建立」,然後等待網路建立完成。

  3. 在左側窗格中點選「防火牆」

  4. 按一下「建立防火牆規則」

  5. 指定下列屬性,其餘設定保持預設狀態:

    屬性 值 (依指示輸入值或選取選項)
    名稱 privatenet-allow-ssh
    網路 privatenet
    目標 網路中的所有執行個體
    來源篩選器 IPv4 範圍
    來源 IPv4 範圍 35.235.240.0/20
    通訊協定和通訊埠 指定的通訊協定和通訊埠
  6. 在「TCP」部分,勾選核取方塊並指定通訊埠 22

  7. 點選「建立」

注意:您必須在防火牆中開啟適當的通訊埠,才能使用 SSH 連線至私人執行個體。IAP 連線來自一組特定的 IP 位址 (35.235.240.0/20)。因此,您可以將規則限制在這個 CIDR 範圍內。

建立沒有公開 IP 位址的 VM 執行個體

  1. 前往 Google Cloud 控制台的「導覽選單」「導覽選單」圖示,依序點選「Compute Engine」>「VM 執行個體」

  2. 點選「建立執行個體」

  3. 在「機器設定」頁面指定下列屬性,其餘設定保持預設狀態:

    屬性 值 (依指示輸入值或選取選項)
    名稱 vm-internal
    區域
    可用區
    系列 E2
    機型 e2-medium (2 個 vCPU,1 個核心,4 GB 記憶體)
  4. 按一下「OS 和儲存空間」

  5. 如果顯示的「映像檔」不是「Debian GNU/Linux 12 (bookworm)」,請按一下「變更」並選擇「Debian GNU/Linux 12 (bookworm)」,再點按「選取」

  6. 按一下「網路」

  7. 在「網路介面」部分,請指定下列資訊來編輯網路介面:

    屬性 值 (按照指示輸入值或選取選項)
    網路 privatenet
    子網路 privatenet-us
    外部 IPv4 位址
注意:VM 執行個體預設的設定會包含臨時的外部 IP 位址。您可以透過機構或專案層級的政策限制來變更這項行為。如要進一步瞭解如何控管 VM 執行個體的外部 IP 位址,請參閱外部 IP 位址說明文件
  1. 按一下「完成」
  2. 按一下「建立」,然後等待 VM 執行個體建立完成。
  3. 在「VM 執行個體」頁面上,確認 vm-internal 的「外部 IP」一欄顯示「無」

點選「Check my progress」來確認目標已達成。 建立 VM 執行個體

使用 SSH 連線至 vm-internal 以測試 IAP 通道

  1. 在 Cloud 控制台中,按一下「啟用 Cloud Shell」圖示 Cloud Shell

  2. 如果出現提示訊息,請點選「繼續」

  3. 請在 Cloud Shell 執行下列指令來設定驗證作業 (不用開啟瀏覽器)。

    gcloud auth login --no-launch-browser

    如果出現 [Y/n] 提示訊息,請依序按下 YENTER 鍵。

    系統會顯示可以在瀏覽器中開啟的連結。在您登入 qwiklabs 帳戶的瀏覽器中開啟這個連結。登入之後,請複製系統顯示的驗證碼。接著,將這組驗證碼貼上 Cloud Shell。

  4. 如要連線至 vm-internal,請執行下列指令:

gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
  1. 如果出現提示訊息,請點按「授權」
  2. 如果系統提示您繼續操作,請輸入 Y
  3. 出現要求輸入通關密語的提示時,請按下 Enter 鍵。
  4. 如果系統要求您再次輸入相同通關密語,請按下 ENTER 鍵。

  1. 如要測試 vm-internal 的外部連線,請執行下列指令:
ping -c 2 www.google.com

這項指令應該會無法運作,因為 vm-internal 沒有外部 IP 位址!

  1. 等待 ping 指令執行完畢。
  2. 如要返回 Cloud Shell 執行個體,請執行下列指令:
exit 注意:當執行個體沒有外部 IP 位址時,網路上的其他執行個體只能透過代管 VPN 閘道或 Cloud IAP 通道存取這類執行個體。Cloud IAP 不需堡壘主機就能透過 SSH 和 RDP 啟用 VM 的情境感知存取權,詳情請參閱這篇網誌文章。

工作 2:啟用 Private Google Access

沒有外部 IP 位址的 VM 執行個體可以使用 Private Google Access,存取 Google API 和服務的外部 IP 位址。系統預設會在虛擬私有雲網路中停用 Private Google Access。

建立 Cloud Storage bucket

建立 Cloud Storage bucket,用來測試能否存取 Google API 和服務。

  1. 前往 Google Cloud 控制台的「導覽選單」「導覽選單」圖示,依序點選「Cloud Storage」>「bucket」

  2. 點選「建立」

  3. 指定下列屬性,其餘設定保持預設狀態:

    屬性 值 (依指示輸入值或選取選項)
    名稱 輸入全域不重複的名稱
    位置類型 多區域
  4. 點選「建立」。如果系統提示您啟用禁止公開存取功能,請確定已勾選該選項,然後點選「確認」。 接著,記下 Cloud Storage bucket 的名稱。

  5. 將 bucket 名稱存在環境變數中:

export MY_BUCKET=[在此輸入值區名稱]
  1. 使用 echo 指令進行驗證:
echo $MY_BUCKET

將圖片檔複製到 bucket 中

從公開的 Cloud Storage bucket 複製圖片到自己的 bucket。

  1. 在 Cloud Shell 中執行下列指令:
gcloud storage cp gs://cloud-training/gcpnet/private/access.svg gs://$MY_BUCKET
  1. 在 Cloud 控制台點選 bucket 名稱,確認圖片已複製完成。

您可以在 Cloud 控制台中點選該圖片的名稱,查看 Private Google Access 導入方式的示例。

從 VM 執行個體存取圖片

  1. 在 Cloud Shell 執行下列指令,從 bucket 複製圖片:
gcloud storage cp gs://$MY_BUCKET/*.svg .

這項指令應可正常運作,因為 Cloud Shell 具有外部 IP 位址!

  1. 如要連線至 vm-internal,請執行下列指令:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
  1. 如果出現提示訊息,輸入 Y 即可繼續操作。

  2. 將 bucket 名稱存在環境變數中:

export MY_BUCKET=[在此輸入值區名稱]
  1. 使用 echo 指令進行驗證:
echo $MY_BUCKET
  1. 如要將圖片複製到 vm-internal,請執行下列指令:
gcloud storage cp gs://$MY_BUCKET/*.svg .

這項指令應該會無法運作:vm-internal 只能在虛擬私有雲網路內傳送流量,因為私人 Google 存取權預設為停用。

  1. 按下 Ctrl + Z 鍵即可停止該要求。

啟用 Private Google Access

您可以在子網路層級啟用 Private Google Access。啟用後,子網路中只具有私人 IP 位址的執行個體就能透過預設路徑 (下一個躍點為預設網際網路閘道 (0.0.0.0/0)),將流量傳送到 Google API 和服務。

  1. 前往 Cloud 控制台的「導覽選單」「導覽選單」圖示,依序點選「虛擬私有雲網路」>「虛擬私有雲網路」
  2. 點選「privatenet」來開啟網路。
  3. 依序點選「子網路」和「privatenet-us」
  4. 點選「編輯」
  5. 在「Private Google Access」部分,選取「啟用」
  6. 按一下「儲存」

點選「Check my progress」來確認目標已達成。 建立 Cloud Storage bucket 並啟用 Private Google Access

注意:啟用私人 Google 存取權的方法很簡單,只要在子網路中選取「啟用」即可!
  1. 請在 vm-internalCloud Shell 中執行下列指令,嘗試將映像檔複製到 vm-internal
gcloud storage cp gs://$MY_BUCKET/*.svg .

這項指令應可正常運作,因為 vm-internal 的子網路已啟用私人 Google 存取權

  1. 如要返回 Cloud Shell 執行個體,請執行下列指令:
exit
  1. 如果系統提示再次輸入 exit,按照指示操作即可返回 Cloud Shell 執行個體。
exit 注意:如要查看可透過 Private Google Access 使用的 API 和服務,請在「服務的私人存取權選項」指南中瀏覽支援的服務。

工作 3:設定 Cloud NAT 閘道

雖然目前 vm-internal 就算沒有外部 IP 位址也能存取特定 Google API 和服務,但該執行個體無法存取網際網路來接收更新和修補程式。您需要設定 Cloud NAT 閘道,藉此讓 vm-internal 存取網際網路。

嘗試更新 VM 執行個體

  1. 如要重新同步處理套件索引,請在 Cloud Shell 中執行下列指令:
sudo apt-get update

輸出內容的結尾部分應該會與下方示例類似:

... Reading package lists... Done

這項指令應可正常運作,因為 Cloud Shell 具有外部 IP 位址!

  1. 如要連線至 vm-internal,請執行下列指令:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
  1. 如果出現提示訊息,輸入 Y 即可繼續操作。
  2. 如要重新同步處理 vm-internal 的套件索引,請執行下列指令:
sudo apt-get update

這項指令應該只適用於 Google Cloud 套件,因為 vm-internal 僅具有 Google API 和服務的存取權!

  1. 按下 Ctrl + C 鍵即可停止該要求。

設定 Cloud NAT 閘道

Cloud NAT 是區域性資源。您可以將 Cloud NAT 設為允許下列類型的流量:來自某個區域中所有子網路範圍的流量、僅限來自某個區域中特定子網路的流量,或是僅限來自特定主要和次要 CIDR 範圍的流量。

  1. 前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入「網路服務」,然後點選「產品和頁面」部分中的「網路服務」

  2. 在「網路服務」頁面,點選「網路服務」旁的「固定」。

  3. 點選「Cloud NAT」

  4. 點選「立即開始」來設定 NAT 閘道。

  5. 指定下列屬性:

    屬性 值 (按照指示輸入值或選取選項)
    閘道名稱 nat-config
    網路 privatenet
    區域
  6. 在「Cloud Router」部分,選取「建立新路由器」

  7. 在「名稱」部分,輸入 nat-router

  8. 點選「建立」

注意:「Cloud NAT 對應」部分可讓您選擇要對應至 NAT 閘道的子網路。您也可以手動指派在執行網路位址轉譯 (NAT) 時應使用的靜態 IP 位址。在本實驗室中,請勿變更 NAT 對應設定。
  1. 點選「建立」
  2. 等待閘道的狀態變更為「執行中」

點選「Check my progress」來確認目標已達成。 設定 Cloud NAT 閘道

驗證 Cloud NAT 閘道

NAT 設定最多需要 3 分鐘才會套用至 VM,因此請先至少等待 1 分鐘,再重新嘗試存取網際網路。

  1. 如要重新同步處理 vm-internal 的套件索引,請在 vm-internalCloud Shell 中執行下列指令:
sudo apt-get update

輸出內容的結尾部分應該會與下方示例類似:

... Reading package lists... Done

這項指令應可正常運作,因為 vm-internal 正在使用 NAT 閘道!

  1. 如要返回 Cloud Shell 執行個體,請執行下列指令:
exit 注意:Cloud NAT 閘道會執行傳出 NAT,而非傳入 NAT。換句話說,位於您虛擬私有雲網路外的主機,就只能回應您的執行個體所建立的連線,無法自行透過 NAT 與您執行個體建立新的連線。

工作 4:透過 Cloud NAT 記錄功能來設定及查看記錄檔

透過 Cloud NAT 記錄功能,您可以記錄 NAT 連線和錯誤。Cloud NAT 記錄功能啟用後,您可選擇在發生下列任一情況時,讓系統產生一個記錄項目:

  • 建立使用 NAT 的網路連線時。
  • 沒有可用於 NAT 的通訊埠而捨棄封包時。

您可以選擇一併記錄上述兩種事件,或者只記錄其中一種事件。建立完成的記錄檔會傳送至 Cloud Logging。

啟用記錄功能

記錄功能啟用後,所有收集到的記錄檔依預設都會傳送至 Cloud Logging。您可以進行篩選,讓系統只傳送特定的記錄檔。

此外,您也能在建立 NAT 閘道時指定相關的值,或是編輯建立完成的閘道來指定這些值。以下說明如何為現有 NAT 閘道啟用記錄功能。

  1. 前往 Google Cloud 控制台的「導覽選單」「導覽選單」圖示,依序點選「網路服務」>「Cloud NAT」

  2. 依序點選「nat-config」閘道 >「編輯」

  3. 點選「進階設定」下拉式選單,即可展開相應區段。

  4. 選取「Logging」下方的「轉譯和錯誤」,然後點選「儲存」

Cloud Logging 中的 NAT 記錄功能

nat-config 閘道的 Cloud NAT 記錄功能已設定完畢,接著說明可以在哪裡查看記錄。

  1. 點選「nat-config」來顯示相關詳細資料,接著按一下「在記錄檔探索工具中查看」

  2. 新分頁中會開啟 Logs Explorer

閘道的記錄功能剛剛啟用,因此目前沒有任何記錄。

注意事項:請保持開啟這個分頁,並返回其他 Google Cloud 控制台分頁。

產生記錄

提醒您,發生下列任一情況時,系統可產生 Cloud NAT 記錄檔。

  • 建立使用 NAT 的網路連線時。
  • 沒有可用於 NAT 的通訊埠而捨棄封包時。

請再次將主機連線至內部 VM,看看是否會產生任何記錄檔。

  1. 如要重新同步處理 vm-internal 的套件索引,請在 vm-internalCloud Shell 中執行下列指令:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
  1. 如果出現提示訊息,輸入 Y 即可繼續操作。
  2. 執行下列指令,嘗試重新同步處理 vm-internal 的套件索引:
sudo apt-get update

輸出內容應該會與下方示例類似:

... Reading package lists... Done
  1. 如要返回 Cloud Shell 執行個體,請執行下列指令:
exit

接著來看看啟動此連線是否在記錄檔中產生任何新內容。

查看記錄

  • 返回「記錄檔探索工具」分頁,點選導覽選單中的「記錄檔探索工具」

頁面中應會顯示連線至內部 VM 後產生的兩筆新記錄。

注意:您可能需要稍等幾分鐘。如果還是看不到這些記錄檔,請再次執行「產生記錄檔」部分中的步驟 1 到 4,然後重新整理記錄頁面。

在記錄檔中,您可以進一步瞭解所連線的虛擬私有雲網路及採用的連線方式。此外,也可任意展開各項標籤和詳細資料。

工作 5:回顧

您建立了沒有外部 IP 位址的執行個體 vm-internal,然後透過 IAP 通道安全地連線至該執行個體。接著,您還啟用 Private Google Access、設定 NAT 閘道,並驗證 vm-internal 可存取 Google API 與服務,以及其他公開 IP 位址。

沒有外部 IP 位址的 VM 執行個體會與外部網路隔絕。透過 Cloud NAT,這類執行個體可以存取網際網路,以便接收更新和修補程式,在某些情況下還能執行啟動程序。Cloud NAT 為代管服務,提供高可用性,且不須使用者管理和介入。

當您連線至 VM 執行個體時,IAP 會使用您現有的專案角色和權限。根據預設,執行個體擁有者是唯一具有受 IAP 保護的通道使用者角色的使用者。

如要瞭解如何允許他人透過 IAP 通道存取您的 VM,請參閱雲端架構中心的「將存取權授予其他使用者」指南

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。