本文將概略介紹 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_Trust
和 Medium_Trust
存取層級),您可以在存取權政策中指定多個存取層級。
基本存取層級包含一組條件,可用於測試要求。 您可以將條件定義為要測試的屬性群組,例如裝置類型、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 的存取層級」。
如要瞭解如何建立存取層級,根據要求的情境授予存取權,請參閱「建立自訂存取層級」。合併條件
一個存取層級可包含多個條件,您可使用 AND
或 OR
運算子來評估條件。此外,您建立或更新存取層級時可以指定模式。
AND
是比較嚴格的限制選項 (預設),只有在所有條件都符合時才會授予存取層級。舉例來說,您可指定要求必須來自公司網路內部「And (以及)」來自執行最新版作業系統的裝置。
OR
的限制比較少,眾多條件中只要有其中一項符合,就能授予存取層級。處理使用者身分識別時,這個運算子滿實用的;舉例來說,如要在一般要求中排除特定實體 (例如服務帳戶) 就可以使用 OR。
巢狀條件
您可以使條件形成巢狀結構,也就是讓條件依附於其他條件。 舉例來說,如果您有「Medium」(中) 和「High」(高) 信任關係這兩個存取層級,則可將「High」(高) 需求設為必須符合「Medium」(中) 及其他條件。
巢狀條件讓存取層級的管理作業更便利。舉例來說,假設您最寬鬆的存取層級包含最低作業系統版本,且更嚴格的層級依附於這個層級,您日後要更新最低版本,只要更新一個條件就好,不用將政策中的每個存取層級都更新。