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 指定存取權政策的變更,例如存取層級或特定政策版本的變更。如果有多個來源變更您的存取權政策,請為 gcloud 指令列工具和 API 呼叫使用 etag 欄位,以免發生不必要的覆寫和衝突。

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

存取層級

存取層級可用於根據要求的背景資訊,授予存取資源的權限。您可以使用存取層級來安排信任層級。舉例來說,您可以建立名為 High_Level 的存取層級,允許少數擁有高度權限的使用者提出要求。您也可以指定較一般性的信任群組,例如您要允許傳送要求的 IP 範圍。在這種情況下,您可以建立名為 Medium_Level 的存取層級,允許這些要求。

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

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

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

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

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

在巢狀存取層級和結合所有邏輯時,請注意,如果布林運算子 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」(中) 及其他條件。

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

瞭解詳情