本頁面說明 Identity-Aware Proxy (IAP) 的基礎概念,這是一項 Google Cloud 全球服務。
透過 IAP 可為透過 HTTPS 存取的應用程式建立中央授權層,因此,您可以使用應用程式層級存取權控管模型,而非依賴網路層級防火牆。
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 會檢查使用者的瀏覽器憑證。如果不存在任何憑證,系統會將使用者重新導向至 OAuth 2.0 Google 帳戶登入流程,以將憑證儲存在瀏覽器 Cookie 中,供未來登入使用。如果您需要為現有使用者建立 Google 帳戶,可以使用 Google Cloud Directory Sync 同步處理 Active Directory 或 LDAP 伺服器。
如果要求憑證有效,驗證伺服器會使用這些憑證取得使用者的身分識別資訊 (電子郵件地址與使用者 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 會套用相關 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 控制台的「API 和服務」中查看及管理 OAuth 2.0 憑證。
情境感知存取權
在授權步驟中,您可以使用情境感知存取權,為下列類型的資源提供安全存取權:
Google Cloud 控制台和 API
- 保護基礎架構存取權的首道防線,可用於 Google Cloud。
- 進階情境感知 Google Cloud 使用者存取權。
虛擬機器 (VM)
- 啟用管理員 SSH/RDP 存取權,以便存取 Google Cloud 和其他雲端中的 VM。
- 讓您實施完善的情境感知控管機制,將存取權限制為僅供指定管理員存取。
網頁應用程式
- 為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。
- 瞭解詳情: