examlab .net 用最有效率的方法,考取最有價值的證照
本篇導覽 約 18 分鐘

Access Context Manager:精細的內容感知安全性

3,500 字 · 約 18 分鐘閱讀 ·

深入掌握 Google Cloud 的存取內容管理器 (ACM)。學習如何根據設備狀態、IP 範圍和位置定義存取層級,並將其與 IAP 和 VPC 服務控制整合。

立即做 20 題練習 → 免費 · 不用註冊 · PSE

Access Context Manager (ACM) 簡介

在零信任 (Zero Trust) 架構中,身分只是拼圖的一角。存取內容管理器 (Access Context Manager, ACM) 是評估請求「內容背景 (Context)」的引擎,在授予存取權之前,它會檢查「何地」、「何物」以及「如何」。如果說 IAM 管理的是「誰」,那麼 ACM 管理的就是「在什麼條件下」。

對於 專業雲端安全工程師 (PSE) 而言,ACM 是內容感知存取 (Context-Aware Access) 的核心策略引擎。它允許您建立精細的存取層級 (Access Levels),這些層級可被 Identity-Aware Proxy (IAP) 和 VPC 服務控制 (VPC Service Controls, VPC SC) 使用,從而在 Web 應用程式和雲端 API 之間提供統一的安全狀況。

白話文解釋

1. 高安全性保險庫 (存取層級)

想像一個銀行保險庫。要進入其中,您不僅需要一把鑰匙 (身分)。保安人員還會檢查:您是否穿著公司制服?(設備狀態)。現在是營業時間嗎?(時間背景)。您是從正門進來還是從後巷進來?(IP/位置)。如果其中任何一個條件不滿足,即使您有鑰匙,保險庫也會保持鎖定。

2. 機場安檢 (基本 vs. 自定義)

基本存取層級就像標準安檢線:每個人都經過相同的檢查 (身分證、行李、金屬探測器)。自定義存取層級則像「快速通關」或「外交通道」,使用特定的規則 (CEL 運算式) 來驗證標準線無法處理的複雜身分與狀態組合。

3. 數位健康證明 (設備狀態)

想想一位需要健康證明才能入境的國際旅客。ACM 會檢查您設備的「健康狀況」:磁碟是否已加密?是否有螢幕鎖?操作系統是否為最新版本?如果您的設備「生病了」(未加密),ACM 就會拒絕您進入雲端應用程式。

定義存取層級 (基本 vs. 自定義)

存取層級 (Access Level) 是一組命名的條件。

基本存取層級 (Basic Access Levels)

基本層級可透過 Google Cloud 主控台或 YAML 檔案建立。它們支援常見的屬性:

  • IP 子網路: 限制存取特定的 CIDR 範圍 (例如:公司 VPN 或辦公室 IP)。
  • 設備策略: 檢查螢幕鎖、磁碟加密和操作系統版本。
  • 地理位置: 僅允許來自特定國家的存取。
  • 必要的存取層級: 您可以嵌套存取層級 (例如:層級 A 需要滿足層級 B)。

自定義存取層級 (Custom Access Levels)

自定義層級使用通用運算式語言 (CEL) 來處理複雜邏輯。

  • 情境: 只有當使用者屬於「財務」群組,且正在使用受控設備或來自「受信任 IP」時,才授予存取權。
  • CEL 允許執行基本層級無法提供的 if/then/else 邏輯。

存取內容管理器 (Access Context Manager, ACM) 是一項 Google Cloud 服務,可讓您為專案和資源定義精細的、基於屬性的存取控制策略。

屬性:IP、設備狀態與位置

ACM 利用 端點驗證 (Endpoint Verification) (一個 Chrome 擴充功能或行動應用程式) 來收集設備遙測數據。

設備狀態屬性:

  • is_managed:設備是否已註冊到組織的管理系統中?
  • is_encrypted:設備的儲存空間是否在靜態時已加密?
  • screen_lock_enabled:解鎖設備是否需要 PIN 或密碼?
  • os_type:限制特定的操作系統 (例如:僅限 macOS 和 Windows)。

要強制執行基於設備的 ACM 策略,使用者必須在他們的設備上安裝並啟用端點驗證 (Endpoint Verification)。

搭配 VPC 服務控制 (VPC SC) 使用存取層級

VPC 服務控制為您的資料建立了一個「周邊 (Perimeter)」。然而,有時合法使用者需要從外部存取該周邊內的資源。

通往周邊的橋樑:

  1. 定義一個 ACM 存取層級 (例如:"Corporate_IPs")。
  2. 在 VPC SC 周邊設定中,將該存取層級加入到傳入策略 (Ingress Policy)
  3. 來自公司 IP 的使用者現在可以從他們的筆記型電腦存取受限的 API (如 BigQuery 或 GCS),即使他們不在 VPC 內部。

PSE 情境如果同時牽涉 VPC Service Controls 與 VPC 外的使用者存取,考試期待的答案是「把 ACM Access Level 掛在 VPC SC 的 Ingress Policy 上」,而不是改 VPC firewall rule 或調整 Shared VPC。Firewall rule 無法評估 is_managedis_encrypted 或國家地理屬性,只有透過 VPC SC ingress 引用的 ACM Access Level 才辦得到。

與 BeyondCorp Enterprise 整合

ACM 是 BeyondCorp Enterprise 的核心。它實現了:

  • 持續評估: 如果使用者在登入期間取消了磁碟加密,ACM (透過端點驗證) 可以偵測到變化並立即撤銷存取權。
  • 安全瀏覽: 結合 Chrome Enterprise,ACM 可以確保資料只能下載到「授權設備」。

設備安全性狀態檢查

對於 PSE 而言,「狀態 (Posture)」不只是勾選方塊。ACM 可以強制執行特定的操作系統版本,以防止來自具有已知漏洞的設備的存取。

  • 條件約束: device.os_config.version >= "10.0.19041" (Windows 10 版本檢查)。

務必在存取層級的「使用者訊息」欄位中提供明確的錯誤訊息。如果使用者被拒絕,他們需要知道「為什麼」(例如:「請啟用磁碟加密以存取此資源」)。

管理多個存取策略

在大型組織中,不同部門可能需要不同的安全性規則。

  • 組織策略: 預設情況下,整個組織只有一個全域存取策略。
  • 範圍限定策略 (Scoped Policies): 您現在可以建立僅套用於特定資料夾或專案的範圍限定存取策略。這可以防止策略變更的「爆炸半徑」影響到整個公司。

ACM 必背數字:每個 Organization 預設只有 1 個 全域 Access Policy,另可加掛 Folder/Project 層級的 Scoped Access Policies。Endpoint Verification 的設備狀態同步最久可能延遲約 24 小時。被拒絕的存取會在 accesscontextmanager.googleapis.com 日誌中以 protoPayload.status.code=7 出現;要給承包商 48 小時的時限性存取,標準解法是在 iap.httpsResourceAccessor 角色上掛 IAM Condition。

使用 CEL 建立自定義存取層級

CEL 運算式功能強大,但需要仔細的語法檢查。

CEL 運算式範例:

// 滿足 (加密且啟用螢幕鎖) 或 (位於公司 IP) 時允許存取
(device.encryption_status == DeviceEncryptionStatus.ENCRYPTED && 
 device.screen_lock_enabled == true) || 
(levels.select_trusted_ips)

CEL 運算式區分大小寫。DeviceEncryptionStatus.ENCRYPTEDencrypted 不同。請務必參考 ACM 官方 CEL 文件以獲取準確的列舉值 (Enum values)。

存取層級拒絕的故障排除

當使用者被 ACM 阻擋時,日誌是您最好的朋友。

  1. Cloud Logging:accesscontextmanager.googleapis.com 日誌中搜尋 protoPayload.status.code=7 (權限遭拒)。
  2. 稽核日誌: 查看日誌條目中的 accessLevels 欄位,以確定是哪個特定的層級失敗了。
  3. 端點驗證控制台: 檢查使用者的設備是否正確報告其狀態。

ACM 與 Identity-Aware Proxy (IAP) 的互動

ACM 和 IAP 協同工作,為 Web 應用程式提供內容感知存取

  • IAP 處理身分 (誰)。
  • ACM 處理存取層級 (內容背景)。
  • 工作流程: 使用者登入 → IAP 檢查 IAM → IAP 呼叫 ACM → ACM 檢查設備/IP → 授予或拒絕存取。

ACM 的 CLI 指令

列出存取層級

gcloud access-context-manager levels list \
    --policy=1234567890

建立基本存取層級 (YAML)

- title: Trusted_IPs
  description: 僅限公司辦公室 IP
  basic:
    conditions:
    - ipSubnetworks:
      - 203.0.113.0/24
    combiningFunction: OR
gcloud access-context-manager levels create Trusted_IPs \
    --policy=1234567890 \
    --yaml-file=trusted_ips.yaml

PSE 安全性最佳實踐

  1. 從簡單開始: 在轉向複雜的設備狀態檢查之前,先從基於 IP 的限制開始。
  2. 使用範圍限定策略: 對於大型組織,使用範圍限定策略將管理權限委派給不同的團隊。
  3. 使用 SCC 監控: Security Command Center 可以在存取層級被刪除或不安全修改時向您發出警報。
  4. 寬限期: 強制執行操作系統更新時,為使用者提供一個「寬限期」(在 ACM 中定義),這樣他們就不會在發布新更新時立即被鎖定。

故障排除情境

情境:使用者儘管使用公司筆記型電腦仍被阻擋

診斷: 端點驗證擴充功能可能已被停用,或者設備在過去 24 小時內未與雲端同步。 修正: 指導使用者開啟 Chrome 並確保端點驗證擴充功能處於活動狀態且正在「同步」。

情境:VPC 服務控制周邊阻擋了有效的管理員

診斷: 管理員正嘗試從本地機器使用 gsutilbq 工具,而該機器未被周邊傳入策略中的 ACM 存取層級涵蓋。 修正: 將管理員的 IP 範圍或設備策略加入 ACM 存取層級,並更新 VPC SC 傳入規則以允許該層級。

PSE 考試情境

情境 1:多因素內容背景

「一家公司希望確保 BigQuery 資料只能由使用受控、已加密筆記型電腦,且位於美國或加拿大的使用者存取。您如何實施?」 答案: 在 ACM 中建立一個基本存取層級。加入 is_managedis_encrypted 以及允許區域清單 (US, CA) 的條件。將 combiningFunction 設定為 AND

情境 2:動態策略變更

「您需要允許臨時承包商在 48 小時內從其家庭 IP 存取受保護的應用程式。最安全的方法是什麼?」 答案: 為承包商的 IP 建立一個臨時的 ACM 存取層級,並在 iap.httpsResourceAccessor 角色上使用會在 48 小時後過期的 IAM 條件 (IAM Condition)

總結清單

  • 區分基本存取層級與自定義存取層級。
  • 列出至少四個 ACM 可以檢查的設備屬性。
  • 解釋 ACM 如何與 VPC 服務控制整合。
  • 識別端點驗證 (Endpoint Verification) 在 ACM 生態系統中的角色。
  • 了解範圍限定存取策略的目的。

官方資料來源

更多 PSE 主題