管理存取層級

本頁面說明如何管理現有的存取層級,您可以:

事前準備

  • 設定預設存取權政策,以便使用 gcloud 指令列工具。

    -or-

    取得政策名稱。如要使用 gcloud 指令列工具並發出 API 呼叫,就必須提供政策名稱。如果您已設定預設存取政策,就不需要為 gcloud 指令列工具指定政策。

  • 請確認您在機構層級具備身分與存取權管理 (IAM) 角色,可用來管理存取權層級。請管理員授予您下列其中一個角色,或是具備相同權限的自訂角色:

列出存取層級

主控台

如要列出所有存取層級,請先在 Google Cloud 主控台中開啟「Access Context Manager」頁面,然後依照系統的提示選取您的機構。您機構的存取層級在網頁中會以表格顯示,並提供有關各存取層級設定的詳細資料。

開啟 Access Context Manager 頁面

gcloud

如要列出所有存取層級,請使用 list 指令。

gcloud access-context-manager levels list \
  [--policy=POLICY_NAME]

其中:

  • POLICY_NAME 是指您機構的存取權政策名稱。只有在您未設定預設存取權政策時,才需要這個值。

輸出結果如下所示:

NAME             TITLE                  LEVEL_TYPE
Device_Trust     Device_Trust Extended  Basic
Service_Group_A  Service_Group_A        Basic

API

如要列出政策的所有存取層級,請呼叫 accessLevels.list

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels

其中:

  • POLICY_NAME 是指您機構的存取權政策名稱。

要求主體

要求主體必須為空白。

選用參數

您可自行決定是否要納入以下一或多個查詢參數。

參數
pageSize

number

根據預設,accessLevels.list 傳回的 存取層級清單會分成數頁。每個頁面最多顯示 100 個存取層級。

您可以使用這個參數來修改每頁傳回的存取層級數量。

pageToken

string

如果您的呼叫傳回的存取層級數量超過頁面大小,回應主體就會加入頁面符記。

您可在後續呼叫中使用這個參數,藉此取得下一頁的結果。

accessLevelFormat

enum(LevelFormat)

存取層級通常會依本身的定義 (BasicLevelCustomLevel) 傳回。

您可以為這個參數指定值「CEL」,以便使用 Cloud 一般運算語言將 BasicLevels 傳回為 CustomLevels

回應主體

如果成功,呼叫的回應主體會包含 AccessLevels 物件,其中列出存取層級和 nextPageToken 字串。只有在傳回的存取層級數量超過頁面大小時,nextPageToken 才會有值。否則 nextPageToken 會以空白字串的形式傳回。

列出存取層級 (格式化)

您可以使用 gcloud 指令列工具,以 YAML 或 JSON 格式取得存取層級清單。

如要取得格式化的存取層級清單,請使用 list 指令。

gcloud access-context-manager levels list \
  --format=FORMAT \
  [--policy=POLICY_NAME]

其中:

  • FORMAT 是下列其中一個值:

    • list (YAML 格式)

    • json (JSON 格式)

  • POLICY_NAME 是指您機構的存取權政策名稱。只有在您未設定預設存取權政策時,才需要這個值。

YAML 輸出內容如下所示:

- basic: {'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for corp access.
  name: accessPolicies/165717541651/accessLevels/corp_level
  title: Corp Level
- basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['8.8.0/24']}]}
  description: Level for net access.
  name: accessPolicies/165717541651/accessLevels/net_level
  title: Net Level

JSON 輸出內容如下所示:

[
  {
    "basic": {
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for corp access.",
    "name": "accessPolicies/165717541651/accessLevels/corp_level",
    "title": "Corp Level"
  },
  {
    "basic": {
      "combiningFunction": "OR",
      "conditions": [
        {
          "ipSubnetworks": [
            "8.8.0/24"
          ]
        }
      ]
    },
    "description": "Level for net access.",
    "name": "accessPolicies/165717541651/accessLevels/net_level",
    "title": "Net Level"
  }
]

描述存取層級

主控台

使用 Google Cloud 主控台時,請參閱列出存取層級的步驟。您列出存取層級時,頁面上的表格內會隨之顯示相關的詳細資料。

gcloud

列出存取層級時將只提供存取層級的名稱、標題和層級類型。如要進一步瞭解特定層級實際上能執行哪些工作,請使用 describe 指令。

gcloud access-context-manager levels describe LEVEL_NAME \
    [--policy=POLICY_NAME]

其中:

  • LEVEL_NAME 是指您要描述的存取層級名稱。

  • POLICY_NAME 是指您機構的存取權政策名稱。只有在您未設定預設存取權政策時,才需要這個值。

指令將以 YAML 的格式來輸出層級相關資訊。舉例來說,如果層級限制只有特定版本的作業系統能存取,則輸入內容應如下所示:

basic:
  conditions:
  - devicePolicy:
      allowedEncryptionStatuses:
      - ENCRYPTED
      osConstraints:
      - minimumVersion: 10.13.6
        osType: DESKTOP_MAC
      - minimumVersion: 10.0.18219
        osType: DESKTOP_WINDOWS
      - minimumVersion: 68.0.3440
        osType: DESKTOP_CHROME_OS
      requireScreenlock: true
name: accessPolicies/330193482019/accessLevels/Device_Trust
title: Device_Trust Extended

API

列出存取層級時將只提供名稱、標題和層級類型。如要取得存取層級的詳細資訊,請呼叫 accessLevels.get

GET https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

其中:

  • POLICY_NAME 是指您機構的存取權政策名稱。

  • LEVEL_NAME 是指您要描述的存取層級名稱。

要求主體

要求主體必須為空白。

選用參數

您可自行選擇是否納入 accessLevelFormat 查詢參數。存取層級通常會依本身的定義 (BasicLevelCustomLevel) 傳回。

您可以為這個參數指定值「CEL」,以便使用 Cloud 一般運算語言將 BasicLevels 傳回為 CustomLevels

回應主體

如果成功,呼叫的回應主體會包含 AccessLevel 資源,其中列出有關存取層級工作、最近一次更新時間等詳細資料。

更新存取層級

本節說明如何更新個別存取層級。如要在單一作業中更新貴機構的所有存取層級,請參閱變更存取層級的大量變更

主控台

更新存取層級的方式如下:

  1. 在 Google Cloud 控制台中開啟「Access Context Manager」頁面。

    開啟 Access Context Manager 頁面

  2. 系統會提示您選取機構,這時請選取您的機構。

  3. 在表格中找到您要更新的存取層級,並按一下該層級的名稱。

  4. 在「Edit Access Level」(編輯存取層級) 窗格中對存取層級進行變更。

    如需您可新增或修改哪些屬性的完整清單,請參閱存取層級屬性

  5. 按一下 [Save] (儲存)

    除了更新或移除任何現有條件,您還可在現有條件中加入新的條件及屬性。

gcloud

使用 update 指令更新存取層級。

基本存取層級:

gcloud access-context-manager levels update LEVEL_NAME \
    --basic-level-spec=FILE \
    [--policy=POLICY_NAME]

自訂存取層級:

gcloud access-context-manager levels update LEVEL_NAME \
    --custom-level-spec=FILE \
    [--policy=POLICY_NAME]

其中:

  • LEVEL_NAME 是指您要更新的存取層級名稱。

  • FILE 是 .yaml 檔案的名稱,用於定義存取層級條件 (適用於基本存取層級),或用於解析為單一布林值的 CEL 運算式 (適用於自訂存取層級)。

    如需可在基本存取層級條件中使用哪些屬性的完整清單,請參閱存取層級屬性

  • POLICY_NAME 是指您機構的存取權政策名稱。只有在您未設定預設存取權政策時,才需要這個值。

  • 您可納入以下一或多個選項。

    選項
    combine-function

    這個選項僅適用於基本存取層級

    決定條件合併的方式。

    有效的值:ANDOR

    description

    存取層級的詳細說明。

    title

    存取層級的簡短標題,會顯示在 Google Cloud 控制台。

    您可納入任何一個全 gcloud 標記

範例指令

gcloud access-context-manager levels update Device_Trust \
    --basic-level-spec=corpdevspec.yaml \
    --combine-function=OR \
    --description='Access level that conforms to updated corporate spec.' \
    --title='Device_Trust Extended' \
    --policy=1034095178592

API

如要更新存取層級,請呼叫 accessLevels.patch

PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS

其中:

  • POLICY_NAME 是指您機構的存取權政策名稱。

  • LEVEL_NAME 是指您要描述的存取層級名稱。

  • FIELDS 是指您要更新的完整欄位名稱的半形逗號分隔清單。

要求主體

要求主體必須包含用來為存取層級指定變更的 AccessLevel 資源。

回應主體

如果成功,呼叫的回應主體會包含 Operation 資源,其中提供有關修補作業的詳細資料。

刪除存取層級

主控台

刪除存取層級的方式如下:

  1. 在 Google Cloud 控制台中開啟「Access Context Manager」頁面

    開啟 Access Context Manager 頁面

  2. 如果系統提示您選取機構,請依提示選取您的機構。

  3. 在表格中找到您要刪除的存取層級所在的資料列,然後按一下 按鈕。

  4. 點選「刪除」。

  5. 在畫面上出現的對話方塊中,確認您要刪除該存取層級。

gcloud

刪除存取層級的方式如下:

  1. 使用 delete 指令刪除存取層級。

    gcloud access-context-manager levels delete LEVEL_NAME \
        [--policy=POLICY_NAME]

    其中:

    • LEVEL_NAME 是指您要刪除的存取層級名稱。

    • POLICY_NAME 是指您機構的存取權政策名稱。只有在您未設定預設存取權政策時,才需要這個值。

  2. 確認您要刪除存取層級。

    例如:

    You are about to delete level Device_Trust
    
    Do you want to continue (Y/n)?
    
    
    You should see output similar to the following:
    
    
    Waiting for operation [accessPolicies/330193482019/accessLevels/Device_Trust/delete/1531171874311645] to complete...done.
    Deleted level [Device_Trust].
    

API

如要刪除存取層級,請呼叫 accessLevels.delete

DELETE https://accesscontextmanager.googleapis.com/v1alpha/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME

其中:

  • POLICY_NAME 是指您機構的存取權政策名稱。

  • LEVEL_NAME 是指您要描述的存取層級名稱。

要求主體

要求主體必須為空白。

回應主體

如果成功,呼叫的回應主體會包含 Operation 資源,其中提供有關刪除作業的詳細資料。