本頁面說明 Identity-Aware Proxy (IAP) 的基本概念,這是一項 Google Cloud 全球服務。
透過 HTTPS 存取的應用程式可經由 IAP 建立中央授權層,因此,您可以使用應用程式層級的存取權控管模型,而非依賴網路層級的防火牆。
IAP 政策可跨機構進行資源調度。您可以集中定義存取權政策並將其套用至所有應用程式與資源。若指派專屬團隊建立及強制執行政策,您可以避免專案在任何應用程式中錯誤定義或實作政策。
使用 IAP 的時機
請在您想針對應用程式與資源強制執行存取權控管政策時使用 IAP。IAP 會使用簽署標頭或 App Engine 標準環境 Users API 來保護您的應用程式。您可以使用 IAP 設定以群組為基礎的應用程式存取權:員工可以存取資源而承包商無法存取資源,或者只有特定部門可以存取資源。
IAP 的運作方式
當應用程式或資源受到 IAP 保護時,只能由主體透過 Proxy 存取,這些主體又稱為使用者,擁有正確的身分與存取權管理 (IAM) 角色。當您透過 IAP 授予使用者對應用程式或資源的存取權時,使用者會受到由使用中產品導入的精密存取權控管,且不需要 VPN。使用者嘗試存取 IAP 保護的資源時,IAP 會執行驗證及授權檢查。
驗證
對 Google Cloud 資源的要求會經過 Cloud Run、App Engine 和 Cloud Load Balancing (外部和內部 HTTP(S) 負載平衡)。這些產品的服務基礎架構程式碼會檢查應用程式或後端服務是否已啟用 IAP。如果已啟用 IAP,系統會將受保護資源的相關資訊傳送至 IAP 驗證伺服器,其中包括 Google Cloud 專案編號、要求網址以及要求標頭或 Cookie 中的任何 IAP 憑證等資訊。
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 驗證。如果執行程式碼的 VM 與受 IAP 保護的應用程式所在的 VM 相同,Compute Engine 與 GKE 防火牆無法避免其進行存取。防火牆規則若正確設定,即能夠保護來自另一個 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-Secured Web App User」(受 IAP 保護的網路應用程式使用者) 角色,表示其已獲授權,可以存取應用程式。如要管理「IAP-Secured Web App User」(受 IAP 保護的網路應用程式使用者) 角色清單,請使用 Google Cloud 控制台中的 IAP 面板。
針對資源啟用 IAP 時,系統會自動建立 OAuth 2.0 用戶端 ID 和密鑰。如果您刪除自動產生的 OAuth 2.0 憑證,IAP 會無法正常運作。您可以在 Google Cloud 控制台的「APIs & service」(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。
後續步驟
- 如要開始使用 IAP,請完成下列其中一項工作:
- 直接在 Cloud Run 服務或負載平衡器 (搭配 Cloud Run 後端) 上啟用 IAP。
- 完成 App Engine 快速入門導覽課程,瞭解如何使用 Google 帳戶管理存取權。
- 啟用 Compute Engine 適用的 IAP。
- 啟用 GKE 適用的 IAP。
- 啟用地端部署應用程式適用的 IAP。
- 瞭解詳情: