Access Context Manager 簡介

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

存取層級描述接受要求的必要條件。例如:

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

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

您可以針對下列 Chrome Enterprise 進階版 解決方案元件,設定及強制執行 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 會將下列 IP 範圍視為私人範圍:

  • 10.0.0.0/8 (RFC 1918)
  • 172.16.0.0/12 (RFC 1918)
  • 192.168.0.0/16 (RFC 1918)
  • 100.64.0.0/10 (RFC 6598 共用位址空間)
  • fc00::/7 (IPv6 專屬本機位址 RFC 4193)

裝置類型

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」(中) 及其他條件。

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

瞭解詳情