Identity-Aware Proxy 簡介

本頁面說明 Identity-Aware Proxy (IAP) 這項 Google Cloud 全球服務的基本概念。

透過 HTTPS 存取的應用程式可經由 IAP 建立中央授權層,因此,您可以使用應用程式層級的存取控管模型,而非依賴網路層級的防火牆。

IAP 政策會擴及整個機構。您可以集中定義存取權政策並將其套用至所有應用程式與資源。若指派專屬團隊建立及強制執行政策,您可以避免專案在任何應用程式中錯誤定義或實作政策。

使用應用程式內購的時機

如要對應用程式和資源強制執行存取控管政策,請使用 IAP。IAP 會搭配簽署的標頭或 App Engine 標準環境 Users API,保護您的應用程式。您可以使用 IAP 設定以群組為準的應用程式存取權:員工可以存取資源,但外聘人員無法存取,或只有特定部門可以存取。

應用程式內購的運作方式

應用程式或資源受到 IAP 保護時,只有具備正確身分與存取權管理 (IAM) 角色的主體 (又稱使用者),才能透過 Proxy 存取。當您透過 IAP 授予使用者對應用程式或資源的存取權時,使用者會受到由使用中產品導入的精密存取控管,且不需要 VPN。使用者嘗試存取 IAP 保護的資源時,IAP 會執行驗證及授權檢查。

App Engine
使用 Cloud IAP 時 App Engine 的要求路徑圖
Cloud Run
使用 Cloud IAP 時,對 Cloud Run 的要求路徑圖
Compute Engine
使用 Cloud IAP 時 Compute Engine 與 Kubernetes Engine 的要求路徑圖
GKE
使用 Cloud IAP 時 Compute Engine 與 Kubernetes Engine 的要求路徑圖
地端部署
使用 Cloud IAP 時內部部署應用程式的要求路徑圖

驗證

對 Google Cloud 資源的要求會透過 Cloud Run、App Engine 和 Cloud Load Balancing (外部和內部 HTTP(S) 負載平衡) 傳送。這些產品的放送基礎架構程式碼會檢查應用程式或後端服務是否已啟用 IAP。如果啟用 IAP,系統會將受保護資源的相關資訊傳送至 IAP 驗證伺服器。包括專案編號、要求網址,以及要求標頭或 Cookie 中的任何 IAP 憑證。 Google Cloud

IAP 接著會檢查使用者是否已登入。如果使用者未登入,瀏覽器會重新導向至 IAP 支援的下列任一登入方式:

  • Google 帳戶:系統會透過 Google 帳戶登入流程,將擁有 Google 帳戶的使用者重新導向至 Google Cloud ,以便存取 Google Cloud。

  • 員工身分聯盟:外部身分識別提供者中的 Google Cloud 使用者會透過 IdP 登入重新導向,以存取 Google Cloud。

  • Identity Platform:使用電子郵件地址和密碼或社群登入 (例如 Facebook、Apple 和 Google (Gmail)) 存取應用程式的顧客。

驗證完成後,使用者的瀏覽器會將權杖儲存在瀏覽器儲存空間的 Cookie 中,供日後登入使用。

如果要求憑證有效,驗證伺服器會使用這些憑證取得使用者的身分識別資訊 (電子郵件地址與使用者 ID);驗證伺服器接著會使用身分檢查使用者的 IAM 角色,並確認使用者是否已獲授權存取資源。

如果您使用 Compute Engine 或 Google Kubernetes Engine,只要使用者能存取虛擬機器 (VM) 的應用程式服務通訊埠,就能略過 IAP 驗證。Compute Engine 和 GKE 防火牆規則無法防範來自程式碼的存取要求,這些程式碼與受 IAP 保護的應用程式在同一個 VM 上執行。防火牆規則可防止其他 VM 存取,但前提是設定正確。請瞭解您的責任以確保安全性。

如果您使用 Cloud Run,可以透過下列方式啟用 IAP:

  • 直接在 Cloud Run 服務上。這樣一來,IAP 就能保護 Cloud Run 的所有輸入路徑,包括自動指派的網址和任何已設定的負載平衡器網址。如果您要為單一 Cloud Run 服務啟用 IAP,這項設定就非常實用。
  • 透過採用 Cloud Run 後端的負載平衡器。如果您在不同區域有多個 Cloud Run 服務,且這些服務都位於單一全域負載平衡器後方,這項設定就非常實用。在這個設定中,自動指派的網址不會受到 IAP 保護,可能可以直接存取。進一步瞭解您的責任,確保安全。

如果 Cloud Run 服務位於負載平衡器後方,請勿同時在負載平衡器和 Cloud Run 服務上啟用 IAP。

進一步瞭解員工身分聯盟。 瞭解如何使用員工身分聯盟設定 IAP。 或者,如要將外部身分同步至各自的 Google 帳戶,可以使用 Google Cloud Directory Sync 與 IdP 同步。

授權

驗證完成後,IAP 會套用相關的 IAM 政策,檢查使用者是否已獲得授權,可存取所要求的資源。如果使用者在資源所在的Google Cloud 控制台專案中,具備「受 IAP 保護的網頁應用程式使用者」角色,就能存取應用程式。如要管理「受 IAP 保護的網頁應用程式使用者」角色清單,請使用 Google Cloud 控制台的「IAP」面板。

為資源啟用 IAP 時,系統會自動建立 OAuth 2.0 用戶端 ID 和密鑰。如果刪除系統自動產生的 OAuth 2.0 憑證,IAP 就無法正常運作。您可以在Google Cloud 控制台的「API 和服務」中查看及管理 OAuth 2.0 憑證。

情境感知存取權

在授權步驟中,您可以使用情境感知存取權,安全地存取下列類型的資源:

Google Cloud 控制台和 API
  • 保護基礎架構存取權的第一道防線。 Google Cloud
  • 為使用者提供進階情境感知存取權 Google Cloud 。
Virtual Machines (VMs)
  • 啟用對 Google Cloud 和其他雲端中 VM 的管理員 SSH/RDP 存取權。
  • 可讓您導入完善的情境感知控管機制,限制只有指定管理員才能存取。
網頁應用程式
  • 為託管於Google Cloud 和其他雲端的網頁應用程式提供授權和驗證。
  • 提供持續授權,防止未經授權的存取和資料遺失。

您的責任

IAP 可確保所有對 Cloud Run、App Engine、Cloud Load Balancing (HTTPS) 和內部 HTTP 負載平衡的要求,都經過驗證和授權。

為確保安全,您必須採取下列預防措施:

  • 如果要在負載平衡器上啟用 IAP,請確認是否可直接存取後端資源。
    • 如果後端資源是 VM,請設定防火牆規則,防止流量未透過負載平衡器傳送。IAP 無法保護專案內部活動,例如專案中的其他 VM。
    • 如果後端資源是 Cloud Run 服務,您可以停用 run.app 應用程式網址,確保所有輸入流量都透過負載平衡器傳入。如果選擇啟用 run.app 應用程式網址,請使用輸入控管封鎖來自網路外部的流量。
  • 更新應用程式以使用簽署的標頭,或使用 App Engine 標準環境 Users API。

後續步驟