本頁面說明如何使用存取層級定義情境感知存取權政策。
存取層級是一組根據要求來源而指派給要求的屬性。您可以依據裝置類型、IP 位址和使用者身分等資訊,指派要授予的存取層級。舉例來說,您可針對公司內部連線指派 High_Trust
層級,而執行已核准作業系統的外部裝置則可指派 Medium_Trust
層級。
存取權政策是所有 Access Context Manager 資源 (例如存取層級和服務範圍) 的容器。
如要進一步瞭解存取層級和存取權政策,請參閱 Access Context Manager 總覽。
限制
定義存取層級時,請注意以下限制:
- 您無法將 IP 位址做為 Docker 連線的屬性,也無法在使用
kubectl
或受管理 Looker 執行個體連線至私人叢集時,使用私人 IP 位址。 - 無論 Access Context Manager 政策為何,Looker Studio 一律可不受限制地存取Google Cloud API。
- 裝置屬性不適用於非 Google OAuth 用戶端應用程式。
- 您無法使用範圍存取層級。
使用存取層級定義政策
主控台
建立基本存取層級:
在 Google Cloud 控制台中,開啟「Access Context Manager」頁面。
系統顯示提示時,請選取專案。
在「Access Context Manager」頁面中,按一下「新增」。
在「New Access Level」(建立新的存取層級) 窗格中,執行下列操作:
在「Access level title」(存取層級標題) 欄位中,輸入存取層級的標題。 標題不得超過 50 個字元,開頭須為英文字母,且只能由數字、英文字母、底線和空格組成。
在「條件」部分中,按一下要新增的屬性類型所對應的「新增」按鈕,然後提供要套用至該屬性的值。
如需可供新增屬性的完整清單,請參閱存取層級屬性。
舉例來說,如果您希望存取層級能考量要求源自您網路中的哪個位置,請選取 [IP Subnetworks] (IP 子網路) 屬性。
如要將其他屬性加到同一個條件,請重複這個步驟直到需要的屬性都新增完畢。 假如條件具有多個屬性,則存取要求必須符合所有屬性,系統才會授予存取權。
存取層級條件可包含各類屬性中的任一屬性。部分屬性會提供其他選項,例如「Device Policy」(裝置政策) 屬性。
存取層級支援以使用者身分為依據的條件。不過,如要新增身分識別到條件,您必須使用 gcloud CLI 或 API 來建立或更新存取層級。
如要為條件指定要求是否必須符合所有指定屬性,您可以將「條件符合時傳回」選項設為 TRUE (符合所有指定條件) 或 FALSE (符合這些屬性以外的任何條件)。
舉例來說,如果您要拒絕來自網路內特定 IP 位址範圍的要求,請使用「IP Subnetworks」(IP 子網路) 屬性指定 IP 位址範圍,然後將條件設為「FALSE」。
或者按一下 [Add another condition] (新增其他條件),為您的存取層級新增其他條件,然後重複前兩個步驟。
舉例來說,如果您要拒絕大範圍 IP 位址中某個子集的存取要求,請建立新條件並為「IP Subnetworks」(IP 子網路) 屬性指定子集的 IP 位址範圍,然後將條件設為傳回「FALSE」。
如要將其他條件加到同一個存取層級,請重複這個步驟直到需要的條件都新增完畢。
如果您建立多個條件,請使用「Combine condition with」(合併條件),指定存取層級是否要求要求符合至少一個條件 (「OR」),或所有條件 (「AND」)。
按一下 [儲存]。
gcloud
如果貴機構沒有存取權政策,請先建立政策,再繼續操作。
使用 gcloud access-context-manager levels create
指令建立存取層級:
gcloud access-context-manager levels create LEVEL_NAME OPTIONS \ --policy=POLICY
更改下列內容:
LEVEL_NAME:存取層級的專屬名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。名稱長度上限為 50 個字元。
OPTIONS:下表的必填選項。
選項 basic-level-spec
用來為存取層級指定一或多個條件的 YAML 檔案。
title
存取層級的簡短標題,會顯示在 Google Cloud 控制台中。
combine-function
(選填) 指定條件合併的方式。
有效值:
AND
、OR
description
(選填) 存取層級的詳細說明。
POLICY:機構存取權政策的 ID。 如果已設定預設政策,這個參數為選用參數。
或者您可納入任何一個 gcloud 標記。
basic-level-spec YAML 檔案
使用 gcloud CLI 建立存取層級時,您必須為 basic-level-spec
選項提供 YAML 檔案。這個檔案會描述存取層級的一或多個條件,條件必須包含至少一個屬性。如果條件包含多個屬性,系統會將這些屬性合併為 AND 運算 (所有屬性都必須為 true) 或 NAND 運算 (所有屬性都不得為 true),具體視條件中是否包含 negate
屬性而定。
如需可在 YAML 檔案中加入的屬性完整清單,請參閱存取層級屬性。
如要進一步瞭解存取層級和 YAML,請參閱存取層級的 YAML 範例。
範例指令
gcloud access-context-manager levels create Device_Trust \
--basic-level-spec=corpdevspec.yaml \
--combine-function=AND \
--description='Access level that conforms to corporate spec.' \
--title='Device_Trust Extended' \
--policy=1521580097614100
API
如果貴機構沒有存取權政策,請先建立政策,再繼續操作。
如要建立存取層級,請呼叫 accessLevels.create
。
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY 是指您機構的存取權政策 ID。
要求主體
要求主體必須包含用來為新存取層級指定條件的 AccessLevel
資源。每個 Condition
都有一個以上的屬性,會根據 negate
欄位是否設為 true
,評估為 AND 運算 (所有屬性都必須為 true) 或 NAND 運算 (所有屬性都不得為 true)。評估結果會判斷是否符合條件。
回應主體
如果成功,呼叫的回應主體會包含 Operation
資源,其中提供有關 POST
作業的詳細資料。
常見政策設定
以下例子介紹幾個可讓您的機構用來導入存取層級的實際做法。請注意,這些例子假設您的機構已有存取權政策。
限制公司網路的存取權
這個例子說明如何建立只允許從特定 IP 位址範圍 (例如公司網路內的 IP 位址) 存取的存取層級條件。
藉由限制可獲存取權的 IP 位址範圍,您可以讓機構內外的攻擊者更難以竊取資料。
在本例中,假設您要建立存取層級,讓內部稽核員群組存取名為「sensitive-data」(敏感資料) 專案的 Cloud Logging 服務。稽核員所有裝置的指定 IP 都位於範圍在 203.0.113.0 到 203.0.113.127 之間的子網路。您知道除了稽核員使用的裝置以外,不會有任何其他裝置指派到該子網路。
如要使用私人 IP 位址範圍 (例如 192.168.0.0/16
或 172.16.0.0/12
),請參閱「允許從內部 IP 位址存取受保護的資源」,瞭解其他資訊和使用 VPC Service Controls 的實作範例。
主控台
在 Google Cloud 控制台中,開啟 Access Context Manager。
系統顯示提示時,請選取專案。
在「Chrome Enterprise 進階版」頁面頂端,按一下「新增」。
在「New Access Level」(建立新的存取層級) 窗格中,按一下「Conditions」(條件) 部分的 [Add attribute] (新增屬性),然後再按一下 [IP Subnetworks] (IP 子網路)。
在「IP Subnetworks」(IP 子網路) 方塊中,選取「Public IP」(公開 IP) 或「Private IP」(私人 IP)。
如果選取「公開 IP」,請輸入一或多個 IPv4 或 IPv6 範圍 (CIDR 區塊格式)。
在本例中,如要限制只有稽核員可存取,請在「IP Subnetworks」(IP 子網路) 方塊中輸入
203.0.113.0/25
。如果選取「私人 IP」,請按一下「選取虛擬私有雲網路」。您可以使用「匯入選項」清單中的三種選項之一,指定虛擬私有雲網路。
選項 1:
選取「Browse for VPC networks in your organization」(瀏覽貴機構的虛擬私有雲網路),然後選取虛擬私有雲網路。
按一下「新增所選虛擬私有雲網路」。
按一下「選取 IP 子網路」,然後選取子網路。
按一下「新增 IP 子網路」。
選項 2:
選取「手動輸入虛擬私有雲網路位址」,然後輸入一或多個虛擬私有雲網路。
按一下「新增虛擬私有雲網路」。
按一下「選取 IP 子網路」,然後選取子網路。
按一下「新增 IP 子網路」。
選項 3:
選取「上傳 CSV 檔案 (覆寫現有網路)」。
如果您使用 CSV 檔案將虛擬私有雲網路和子網路新增至存取層級,Access Context Manager 會覆寫先前選取的虛擬私有雲網路和子網路。
按一下「瀏覽」,然後上傳 CSV 檔案。在 CSV 檔案中,您必須以以下格式指定 VPC 網路和子網路:
VPC_NETWORK_NAME_1 | IP_RANGE_1 | IP_RANGE_2 | ... VPC_NETWORK_NAME_2 | . | . | ... . | . | . | ... . | . | . | ...
按一下「匯入電視網」。
Access Context Manager 會使用 CSV 檔案,在「虛擬私有雲網路位址」和「IP 子網路」方塊中,分別填入虛擬私有雲網路名稱和子網路資訊。
如要瞭解虛擬私有雲網路名稱和私人 IP 位址格式,請參閱「在存取層級中使用內部 IP 位址」。
按一下 [儲存]。
gcloud
為包含一或多個 IPv4 或 IPv6 範圍 (CIDR 區塊格式) 的存取層級建立 YAML 檔案。
在本例中,如要僅限稽核員存取,請在 YAML 檔案輸入以下程式碼:
- ipSubnetworks: - 203.0.113.0/25
如要使用私人 IP 位址,請在 YAML 檔案中輸入下列資訊:
- vpcNetworkSources: - vpcSubnetwork: network: VPC_NETWORK_NAME vpcIpSubnetworks: - IP_RANGE
將 VPC_NETWORK_NAME 和 IP_RANGE 替換為「在存取層級中使用內部 IP 位址」一節所述的值。
儲存檔案。在本例中,檔案名稱為
CONDITIONS.yaml
。建立存取層級。
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
更改下列內容:
NAME:存取層級的專屬名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。
TITLE:使用者可理解的文字標題,政策不得使用重複的標題。
POLICY:貴機構存取權政策的 ID。如果您已設定預設政策,這個參數為選用。
輸出結果應該會類似下列內容:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
編寫要求主體,建立包含一或多個 IPv4 或 IPv6 範圍 (CIDR 區塊格式) 的
AccessLevel
資源。在本例中,如要僅限稽核員存取,請在要求主體中輸入以下程式碼:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "ipSubnetworks": [ "203.0.113.0/25" ] } ] } }
更改下列內容:
NAME:存取層級的專屬名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。
TITLE:使用者可理解的文字標題,政策不得使用重複的標題。
如要使用私人 IP 位址,請在要求主體中輸入下列資訊:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "vpcNetworkSources": [ { "vpcSubnetwork": { "network": VPC_NETWORK_NAME, "vpcIpSubnetworks": [ IP_RANGE ] } } ] } ] } }
將 VPC_NETWORK_NAME 和 IP_RANGE 替換為「在存取層級中使用內部 IP 位址」一節所述的值。
以呼叫
accessLevels.create
的方式來建立存取層級。POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY 是指您機構的存取權政策 ID。
建立存取層級後,您必須使用存取權繫結套用該層級,才能強制執行。
根據裝置屬性限制存取權
這個例子說明如何建立存取層級,只對符合特定需求 (例如特定作業系統版本) 的裝置授予存取權。
系統使用端點驗證來為 Chrome Enterprise Premium 提供裝置相關資訊。 您可根據以下條件來判斷是否要授予存取權:
- 已啟用螢幕鎖定
- 已啟用儲存空間加密
- 裝置正在執行指定類型及版本的作業系統
在本例中,假設您的機構只使用安裝 ChromeOS 或 Windows 的電腦,而您希望採用額外的安全防護,因此建立存取層級來防止透過非上述作業系統的使用者存取。此外,為控管風險,您想要確保只有特定版本的 OS 能獲得存取權。
主控台
在 Google Cloud 控制台中,開啟 Access Context Manager 頁面。
系統顯示提示時,請選取專案。
在「Chrome Enterprise 進階版」頁面頂端,按一下「新增」。
在「New Access Level」(建立新的存取層級) 窗格中,按一下「Conditions」(條件) 部分的 [Add attribute] (新增屬性),然後再按一下 [Device Policy] (裝置政策)。
新增裝置政策屬性:
按一下 [Add OS Policy] (新增 OS 政策),然後再按一下 [Chrome OS Policy] (Chrome OS 政策)。
在「最低版本」方塊中,輸入您允許的 ChromeOS 最低版本。
重複步驟 1 和步驟 2 來新增 Windows OS 政策。
按一下 [儲存]。
gcloud
為包含裝置政策 (具有 OS 條件限制) 的存取層級建立 YAML 檔案。
在本例中,如要只允許指定最低版本以上的 ChromeOS 和 Windows 存取,您可在 YAML 檔案中輸入以下程式碼:
- devicePolicy: osConstraints: - osType: DESKTOP_CHROME_OS minimumVersion: 11316.165.0 - osType: DESKTOP_WINDOWS minimumVersion: 10.0.1809
儲存檔案。在本例中,檔案名稱為
CONDITIONS.yaml
。建立存取層級。
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
更改下列內容:
NAME:存取層級的專屬名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。
TITLE:使用者可理解的文字標題,政策不得使用重複的標題。
POLICY:貴機構存取權政策的 ID。如果您已設定預設政策,這個參數為選用。
輸出結果應該會類似下列內容:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1521594488380943] to complete...done. Created level NAME.
API
編寫要求主體,建立包含裝置政策 (具有 OS 條件限制) 的
AccessLevel
資源。在本例中,如要只允許指定最低版本以上的 ChromeOS 和 Windows 存取,您可在要求主體中輸入以下程式碼:
{ "name": "NAME", "title": "TITLE", "basic": { "conditions": [ { "devicePolicy": { "osConstraints": [ { "osType": "DESKTOP_CHROME_OS", "minimumVersion": "11316.165.0" }, { "osType": "DESKTOP_WINDOWS", "minimumVersion": "10.0.1809" } ] { } ] } }
更改下列內容:
NAME:存取層級的專屬名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。
TITLE:使用者可理解的文字標題,政策不得使用重複的標題。
以呼叫
accessLevels.create
的方式來建立存取層級。POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY 是指您機構的存取權政策 ID。
建立存取層級後,您必須使用存取權繫結套用該層級,才能強制執行。
僅限具備有效憑證的可信公司裝置存取
您可以透過憑證式存取權 (CBA),要求使用者提供經過驗證的 X.509 憑證,才能存取 Google Cloud資源。額外憑證可提供更強大的裝置身分信號,並要求使用者憑證和原始裝置憑證都存在,才會授予存取權,有助於保護貴機構免於憑證遭竊或意外遺失。
請先在需要存取Google Cloud 資源的所有裝置上,部署 Endpoint Verification Chrome 擴充功能和 Endpoint Verification 輔助應用程式,再繼續操作。這些裝置會成為可授予存取權的信任裝置。詳情請參閱「部署端點驗證功能,搭配憑證式存取權使用」。
如要建立需要憑證存取權的政策,您必須具備自訂存取層級詳細說明的存取層級。
主控台
在 Google Cloud 控制台中,開啟「Access Context Manager」頁面。
系統顯示提示時,請選取專案。
按一下「建立存取層級」。
在「New access level」(建立新的存取層級) 窗格中,選取「Advanced mode」(進階模式)。您必須具備 Chrome Enterprise 進階版授權,才能使用這個模式。
在「條件」部分,於「CEL 運算式」方塊中輸入下列運算式。
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
按一下 [儲存]。
gcloud
為包含憑證強制執行的存取層級建立 YAML 檔案。
expression: "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE"
儲存檔案。在本例中,檔案名稱為
CONDITIONS.yaml
。建立存取層級。
gcloud access-context-manager levels create NAME \ --title TITLE \ --basic-level-spec CONDITIONS.yaml \ --policy=POLICY
更改下列內容:
NAME:存取層級的專屬名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。
TITLE:使用者可理解的文字標題,政策不得使用重複的標題。
POLICY:機構存取權政策的 ID。如果已設定預設政策,這個參數為選用參數。
輸出結果應該會類似下列內容:
Create request issued for: NAME Waiting for operation [accessPolicies/POLICY/accessLevels/NAME/create/1234] to complete...done. Created level NAME.
API
為包含裝置政策 (具有 OS 條件限制) 的存取層級建立要求主體檔案。
{ "name": "require_certificate", "title": "Certificate-Based Access", "description": "An example certificate-based access level.", "custom": { "expr": { "expression": "certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE", "title": "Require a valid certificate", "description": "Permits requests from a device with a valid mTLS certificate." } } }
以呼叫
accessLevels.create
的方式來建立存取層級。POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY/accessLevels
POLICY 是指您機構的存取權政策 ID。
建立存取層級後,您必須使用存取權繫結套用該層級,才能強制執行。