Access Context Manager 簡介

本文將概略介紹 Access Context Manager 服務及其功能。 Google Cloud 機構管理員可以使用 Access Context Manager,為 Google Cloud中的專案和資源定義精細的屬性式存取權控管機制。管理員首先要定義存取權政策,這是適用於全機構的存取層級和服務範圍容器。

存取層級描述接受要求的必要條件。相關示例包括:

  • 裝置類型和作業系統
  • IP 位址
  • 使用者身分

服務安全範圍可定義資源沙箱機制,讓各資源能在範圍內自由交換資料,但不能將資料匯出至範圍之外。Access Context Manager 並不負責執行政策,而是用來定義特定規則或情境。您可透過不同點 (例如 VPC Service Controls) 來設定和強制執行政策。如要進一步瞭解相關服務,請參閱各服務的使用者指南。

您可以針對下列 Chrome Enterprise Premium 解決方案元件,設定及強制執行 Access Context Manager 政策:

優點

許多公司都會仰賴範圍安全性模型 (例如防火牆) 來保護內部資源的安全。邊界安全模式戒備森嚴,只有一個出入口。城牆外的任何外來物都視為危險不可靠,只有牆內的東西才可以信賴。

假如特定使用者和服務有明確的界線,那麼防火牆和範圍安全性模型就可以完美搭配運作。但如果面臨的是行動使用者,隨著自攜裝置和雲端服務的普及,裝置也會越來越多元;這會衍生出範圍模型未顧及的其他攻擊向量。因此,範圍不再侷限於企業的實體據點,而內部的資料也無法再視為安全無虞。

您可以使用 Access Context Manager 縮小授權網路的範圍,並移至端點不是根據網路來取得環境授權的模型。事實上,您可根據要求內容 (例如裝置類型、使用者身分等) 授予存取權,也可視需要檢查公司網路的存取權。

Access Context Manager 是 Google BeyondCorp 不可或缺的功能。詳情請參閱 BeyondCorp

存取權政策

存取權政策是所有 Access Context Manager 資源的容器,例如存取層級服務範圍

您可以在機構的環境中建立存取權政策,並在機構的任何位置使用機構層級的存取權政策。如要委派存取政策的管理權,可以建立範圍存取政策,並在資料夾或專案層級設定政策範圍。指派範圍政策的委派管理員只能管理範圍存取權政策,無法管理機構層級的存取權政策。

存取政策會使用 etag 進行版本控管。 您可以使用 etag,指定存取權政策的變更目標,例如修改存取層級或政策的特定版本。如果多個來源變更存取權政策,使用 etag 欄位執行 gcloud 指令列工具和 API 呼叫,有助於避免非預期的覆寫和衝突。

如要瞭解如何建立存取權政策,請參閱「建立存取權政策」。

存取層級

存取層級用於根據要求的內容資訊,授予資源存取權。您可以使用存取層級開始整理信任層級。舉例來說,您可以建立名為「High_Level」的存取層級,允許一小群高權限使用者提出要求。您也可以識別要信任的較一般群組,例如要允許要求來自的 IP 範圍。在這種情況下,您可能會建立名為 Medium_Level 的存取層級,允許這些要求。

定義存取層級後,強制執行服務就會根據這些層級來判定是否接受要求。舉例來說,您可以為很多資源指派「Medium_Trust」層級,但有些比較敏感的資源則需要「High_Trust」層級。除了標準 IAM 政策,系統也會套用這些檢查。

您可以自訂存取層級 (例如 High_TrustMedium_Trust 存取層級),您可以在存取權政策中指定多個存取層級。

Access Context Manager 提供兩種定義存取層級的方式:

  • 基本存取層級包含一組條件,可用於測試要求。 您可以將條件定義為要測試的屬性群組,例如裝置類型、IP 位址或使用者身分。這些屬性會合併為 AND 運算 (所有屬性都必須為 true) 或 NOR 運算 (所有屬性都不得為 true),藉此判斷是否符合條件。

  • 自訂存取層級是使用部分一般運算語言建立。除了用於基本存取層級的要求環境外,您也可以使用自訂存取層級,根據第三方服務的資料允許要求。詳情請參閱「自訂存取層級」。

巢狀存取層級和合併所有邏輯時,請注意,如果布林運算子 AND (&&) 和 OR (||) 的任一運算元可單獨決定結果,系統可能會評估或不評估其他運算元。此外,如果評估作業產生執行階段錯誤,系統會忽略該錯誤。舉例來說,在下列運算式中,origin.region_code 的評估會失敗,但 levels.ip_check 的評估會成功。由於至少有一項檢查成功,因此由 OR 組合的整體條件會變成 true,並授予存取權 GRANTED
!(origin.region_code in ['RU', 'BY', 'UA']) -> FAILED  // levels.regions_check

inIpRange(origin.ip, ['205.220.128.0/23']) -> GRANTED  // levels.ip_check

!(origin.region_code in ['RU', 'BY', 'UA']) || inIpRange(origin.ip, ['205.220.128.0/23']) -> GRANTED

levels.regions_check || levels.ip_check -> GRANTED

IP 位址

您可以根據來源要求的 IP 位址授予存取層級。請依無類別跨網域路由 (CIDR) 區塊格式來指定允許的 IP 範圍,這種格式能讓您精細控管 IP。

一個存取層級可包含多個 IP 範圍。

如要瞭解如何建立只允許從特定 IP 位址範圍 (例如單一公司網路內的 IP 位址) 存取的存取層級,請參閱「為公司網路的存取作業建立存取層級」一文。

裝置類型

Access Context Manager 使用端點驗證來收集使用者裝置資訊,例如作業系統、裝置類型或版本。您可以根據這項資料授予存取層級。舉例來說,假如裝置執行的是您公司部署的主要作業系統的最新版本,則可授予較寬鬆的存取層級。

如要瞭解如何根據這類裝置屬性授予存取層級,請參閱「依裝置類型限制存取權」。

使用者身分

在某些情況下,您可能會想授予存取層級給特定實體。 在這些情況下,系統會判斷呼叫者的身分識別是否符合條件。通常這會搭配服務帳戶和 VPC Service Controls 使用。 舉例來說,如要允許 Cloud 函式存取受 VPC Service Controls 保護的資料,就可以採取這個做法。

您可以使用 gcloud 指令列工具建立及管理僅限身分識別的存取層級,但無法使用 Google Cloud 控制台。

如要開始建立基本存取層級,請參閱「建立 Access Context Manager 的存取層級」。

如要瞭解如何建立存取層級,根據要求的情境授予存取權,請參閱「建立自訂存取層級」。

合併條件

一個存取層級可包含多個條件,您可使用 ANDOR 運算子來評估條件。此外,您建立或更新存取層級時可以指定模式。

AND 是比較嚴格的限制選項 (預設),只有在所有條件都符合時才會授予存取層級。舉例來說,您可指定要求必須來自公司網路內部「And (以及)」來自執行最新版作業系統的裝置。

OR 的限制比較少,眾多條件中只要有其中一項符合,就能授予存取層級。處理使用者身分識別時,這個運算子滿實用的;舉例來說,如要在一般要求中排除特定實體 (例如服務帳戶) 就可以使用 OR。

巢狀條件

您可以使條件形成巢狀結構,也就是讓條件依附於其他條件。 舉例來說,如果您有「Medium」(中) 和「High」(高) 信任關係這兩個存取層級,則可將「High」(高) 需求設為必須符合「Medium」(中) 及其他條件。

巢狀條件讓存取層級的管理作業更便利。舉例來說,假設您最寬鬆的存取層級包含最低作業系統版本,且更嚴格的層級依附於這個層級,您日後要更新最低版本,只要更新一個條件就好,不用將政策中的每個存取層級都更新。

瞭解詳情