正在加载…
未找到任何结果。

在 Google Cloud 控制台中运用您的技能

01

Google Cloud IAM and Networking for Azure Professionals

访问 700 多个实验和课程

導入 Private Google Access 和 Cloud NAT (Azure)

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

如果您是網路工程師或解決方案架構師,在某些情況下,可能需要為網路架構多添一層安全和/或隱私防護措施。舉例來說,您可能需要特定資源來建立與外部網路/公開網路的連線,但不希望任何未經授權的連線存取您的私人資源。

此時,您可以使用 Microsoft Azure 中的 Azure 私人端點來強化安全性和私密性。Azure 私人端點是一種網路介面,能以不公開的方式將 Azure 資源連至由 Azure Private Link 支援的服務。這個介面可為虛擬網路和 Azure 服務之間提供私密通訊,因此不必使用公開 IP 位址或在網際網路中曝光。

這樣的隱私性是透過 Azure 網路位址轉譯 (NAT) 閘道實現。Azure NAT 閘道是可用性高且受管理的網路閘道,能讓虛擬網路具備對外連線能力,並連至網際網路或其他網路。多個虛擬機器 (VM) 可共用向外存取網際網路的單一公開 IP 位址。

借助這些 Azure 功能,您可以強化網路流量的控管機制、讓連線保持不公開,並與 VM 互動,卻不會讓 VM 暴露於公開網路中。

看完上述內容後,您在 Google Cloud 工作時可能要考量下列問題:

  • 如何在 Google Cloud 讓連線保持不公開?
  • 如何與 VM 連線、互動,卻不會讓 VM 暴露於公開網路中?
  • 如何進一步控管網路流量?

現在您將學習如何在 Google Cloud 提升網路架構的安全性。

總覽

在本實驗室中,您將針對沒有外部 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. 請透過無痕式視窗登入 Qwiklabs。

  2. 請記下研究室的存取時間 (例如 1:15:00),並確保自己能在時間限制內完成作業。
    研究室不提供暫停功能。如有需要,您可以重新開始,但原先的進度恕無法保留。

  3. 準備就緒後,請按一下「Start lab」

  4. 請記下研究室憑證 (使用者名稱密碼),這組資訊將用於登入 Google Cloud 控制台。

  5. 按一下「Open Google Console」

  6. 按一下「Use another account」,然後複製這個研究室的憑證,並貼入提示訊息。
    如果使用其他憑證,系統會顯示錯誤或向您收取費用

  7. 接受條款,然後略過資源復原頁面。

工作 1:建立 VM 執行個體

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

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

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

  1. 前往 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. 前往 Cloud 控制台的「導覽選單」,依序點選「Compute Engine」>「VM 執行個體」

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

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

    屬性 值 (按照指示輸入值或選取選項)
    名稱 vm-internal
    區域
    可用區
    系列 E2
    機型 e2-medium (2 個 vCPU,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」圖示
  2. 如果出現提示訊息,請點選「繼續」
  3. 如要連線至 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. 前往 Cloud 控制台的導覽選單 (),依序點選「Cloud Storage」>「bucket」

  2. 點選「建立」

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

    屬性 值 (按照指示輸入值或選取選項)
    名稱 輸入全域不重複的名稱
    位置類型 多區域
  4. 點選「建立」。系統提示您啟用禁止公開存取功能時,請確定已勾選該選項,然後點選「確認」,並記下 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 .

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

  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

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

由於 vm-internal 的子網路已啟用 Private Google Access,這項指令應可正常運作!

  1. 如要返回 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

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

  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」來顯示相關詳細資料,接著點選 Logs Explorer 的連結。

  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

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

查看記錄

  • 返回「Observability Logging」分頁,點選導覽選單中的「Logs Explorer」

頁面中應會顯示連線至內部 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,請參閱 Cloud Architecture Center 的「將存取權授予其他使用者」指南

Private Google Access 和 Google Cloud NAT 是 Google Cloud 的兩大功能,可提供網路連線解決方案;相對應的 Microsoft Azure 功能則為 Private Link 和 Azure NAT 閘道。

以下統整這些服務之間的異同處:

相似處

  • 兩個平台都可讓客戶運用私人 IP 位址,以不公開的方式存取雲端資源或服務,不必經由公開網路。
  • 兩個雲端平台都能協助避免在公開網路中曝光,並採用較嚴格的存取控管機制來提升安全性。
  • Azure Private Link 和 Private Google Access 使用相似的架構:客戶的虛擬網路會透過私人連線,連至雲端服務供應商的網路。
  • 兩個平台都在雲端提供網路位址轉譯 (NAT) 服務,可讓客戶在多項資源中共用一定數量的公開 IP 位址。

相異處

  • Google Cloud NAT 可為執行個體提供傳出 NAT 服務,而不必透過公開 IP 位址。Azure NAT 閘道這個 Azure 功能,則能為虛擬網路提供傳出 NAT 服務。
  • Google Cloud NAT 支援一對多 NAT 及多對一 NAT 設定,而 Azure NAT 閘道僅支援一對多 NAT。
  • Google Cloud NAT 在所有使用該服務的執行個體使用單一 NAT IP 位址,而 Azure NAT 閘道允許客戶為 NAT 指定公開 IP 位址集區。
  • Private Google Access 允許客戶從虛擬私有雲網路內,以不公開的方式存取 Google 服務,而 Azure 的 Private Link 則以不公開的方式存取 Azure 服務。
  • Private Google Access 允許客戶使用私人 IP 位址存取 Google 服務,而 Private Link 可讓客戶使用 Azure 私人端點 (該服務的虛擬網路介面) 存取 Azure 的各項服務。

關閉研究室

如果您已完成研究室,請按一下「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. 在屏幕左上角,点击开始实验即可开始

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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