本頁面說明 Identity-Aware Proxy (IAP) 的基本概念,這是一項 Google Cloud 全球性服務。
透過 HTTPS 存取的應用程式可經由 IAP 建立中央授權層,因此,您可以使用應用程式層級的存取控管模型,而非依賴網路層級的防火牆。
IAP 政策可擴及整個組織。您可以集中定義存取權政策並將其套用至所有應用程式與資源。若指派專屬團隊建立及強制執行政策,您可以避免專案在任何應用程式中錯誤定義或實作政策。
IAP 的使用時機
如要對應用程式和資源強制執行存取控管政策,請使用 IAP。IAP 可與經過簽署的標頭或 App Engine 標準環境 Users API 搭配使用,確保應用程式安全無虞。有了 IAP,您就能設定以群組為基礎的應用程式存取權:資源可供員工存取,但承包商無法存取,或僅限特定部門存取。IAP 的運作方式
當應用程式或資源受到 IAP 保護時,只有具備正確 Identity and Access Management (IAM) 角色的主體 (也稱為使用者),才能透過 Proxy 存取。當您透過 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 Cloud 使用者會重新導向至 Google 帳戶登入流程,以便存取 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-secured Web App User」(受 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 應用程式網址,請使用輸入控管功能,封鎖來自網路外部的流量。
後續步驟
完成下列任一工作,即可開始使用 IAP:
完成 App Engine 快速入門導覽課程,使用 Google 帳戶管理存取權。
啟用 GKE 的 IAP。
瞭解詳情: