建立存取層級

本頁面概要說明如何建立存取層級,並且針對存取層級的導入作業提供更詳細的資訊。請參閱以下例子:

事前準備

建立存取層級

主控台

建立存取層級的步驟如下:

  1. 在 GCP 主控台中開啟「Access Context Manager」頁面。

    開啟 Access Context Manager 頁面

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

  3. 按一下「Access Context Manager」頁面最上方的 [New] (新增)

  4. 在「New Access Level」(建立新的存取層級) 窗格中:

    1. 在「Access level title」(存取層級標題) 方塊中為存取層級輸入名稱。名稱開頭須為字母,而且只能由數字、英文字母、底線和空格組成。

    2. 按一下 [Add Attribute] (新增屬性),然後選取您要加到條件的屬性。

      如需可供新增屬性的完整清單,請參閱存取層級屬性

      舉例來說,如果您希望存取層級能考量要求源自您網路中的哪個位置,請選取 [IP Subnetworks] (IP 子網路) 屬性。

      如要將其他屬性加到同一個條件,請重複這個步驟直到需要的屬性都新增完畢。假如條件具有多個屬性,則存取要求必須符合所有屬性,系統才會授予存取權。

    3. 如要為存取層級指定要求是否必須符合所有指定屬性,您可以將「When condition is met」(條件符合時) 選項設為 TRUE (符合所有指定條件) 或 FALSE (符合這些屬性以外的任何條件)。

      舉例來說,如果您要拒絕來自網路內特定 IP 位址範圍的要求,請使用「IP Subnetworks」(IP 子網路) 屬性指定 IP 位址範圍,然後將條件設為「FALSE」

    4. 或者按一下 [Add another condition] (新增其他條件),為您的存取層級新增其他條件,然後重複前兩個步驟。

      舉例來說,如果您要拒絕大範圍 IP 位址中某個子集的存取要求,請建立新條件並為「IP Subnetworks」(IP 子網路) 屬性指定子集的 IP 位址範圍,然後將條件設為傳回「FALSE」

      如要將其他條件加到同一個存取層級,請重複這個步驟直到需要的條件都新增完畢。

    5. 如要為存取層級指定要求是否必須符合所有存取層級條件,您可以在「Conditions」(條件) 區段中,將「Combine conditions」(合併條件) 選項設為 AND (符合所有條件) 或 OR (只符合其中一個條件)。

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

    [overview-doc]:

gcloud

事前準備

如要透過 gcloud 指令列工具來建立存取層級,請使用 gcloud access-context-manager levels create 指令。

gcloud access-context-manager levels create LEVEL_NAME OPTIONS \
    --policy=POLICY_NAME

其中:

  • 「LEVEL_NAME」是存取層級的唯一名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。

  • 「OPTIONS」 是指下表的必填選項。

    選項
    basic-level-spec

    用來為存取層級指定一或多個條件的 .yaml 檔案

    title

    存取層級的簡短標題,會顯示在 GCP 主控台中。

    combine-function

    (選填) 指定條件合併的方式。

    有效值為 ANDOR

    description

    (選填) 存取層級的詳細說明。

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

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

basic-level-spec .yaml 檔案

使用 gcloud 指令列工具來建立存取層級時,您必須為 basic-level-spec 選項提供 .yaml 檔案;這個檔案會描述存取層級的一或多個條件,而條件必須包含至少一個屬性。

如需 .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'

API

事前準備

如要建立存取層級,請呼叫 accessLevels.create

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels

其中:

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

要求主體

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

回應主體

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

實作範例

以下例子介紹幾個可讓您的機構用來導入存取層級的實際做法。請注意,這些例子假設您的機構已有存取權政策

限制公司網路的存取權

這個例子說明如何建立只允許從特定 IP 位址範圍 (例如公司網路內的 IP 位址) 存取的存取層級條件。

藉由限制可獲存取權的 IP 位址範圍,您可以讓機構內外的攻擊者更難以竊取資料。

在本例中,假設您要建立存取層級,讓內部稽核員群組存取名為「sensitive-data」(敏感資料) 專案的 Stackdriver Logging 服務。稽核員所有裝置的指定 IP 都位於範圍在 203.0.113.0 到 203.0.113.127 之間的子網路。您知道除了稽核員使用的裝置以外,不會有任何其他裝置指派到該子網路。

主控台

  1. 在 GCP 主控台中開啟「Access Context Manager」頁面。

    開啟 Access Context Manager 頁面

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

  3. 按一下「Access Context Manager」頁面最上方的 [New] (新增)

  4. 在「New Access Level」(建立新的存取層級) 窗格中,按一下「Conditions」(條件) 部分的 [Add attribute] (新增屬性),然後再按一下 [IP Subnetworks] (IP 子網路)

  5. 在「IP Subnetworks」(IP 子網路) 方塊中輸入一或多個 IPv4 或 IPv6 範圍 (CIDR 區塊格式)。

    在本例中,如要限制只有稽核員可存取,請在「IP Subnetworks」(IP 子網路) 方塊中輸入 203.0.113.0/25。

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

gcloud

  1. 為包含一或多個 IPv4 或 IPv6 (CIDR 區塊格式) 範圍的存取層級建立 .yaml 檔案。

    在本例中,如要僅限稽核員存取,請在 .yaml 檔案輸入以下程式碼:

    - ipSubnetworks:
      - 203.0.113.0/25
    
  2. 儲存檔案。本例的檔案名稱為「CONDITIONS.yaml」

  3. 建立存取層級。

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY_NAME
    

    其中:

    • 「NAME」是存取層級的唯一名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。

    • 「TITLE」是使用者可理解的文字標題,政策不得使用重複的標題。

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

    畫面會顯示類似以下的輸出:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. 為包含一或多個 IPv4 或 IPv6 (CIDR 區塊格式) 範圍的 AccessLevel 資源建立要求主體。

    在本例中,如要僅限稽核員存取,請在要求主體中輸入以下程式碼:

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "ipSubnetworks": [
             "203.0.113.0/25"
           ]
         }
       ]
     }
    }
    

    其中:

    • 「NAME」是存取層級的唯一名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。

    • 「TITLE」是使用者可理解的文字標題,政策不得使用重複的標題。

  2. 以呼叫 accessLevels.create 的方式來建立存取層級。

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    其中:

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

限制網路中的裝置的存取權

這個例子說明如何建立存取層級,只對符合特定需求 (例如特定作業系統版本) 的裝置授予存取權。

系統使用端點驗證來為 Access Context Manager 提供裝置相關資訊。您可根據以下條件來判斷是否要授予存取權:

  • 已啟用螢幕鎖定
  • 已啟用儲存空間加密
  • 裝置正在執行指定類型及版本的作業系統

在本例中,假設您的機構只使用安裝 Chrome 作業系統或 Windows 的電腦,而您希望採用額外的安全防護,因此建立存取層級來防止透過非上述作業系統的使用者存取。此外,為控管風險,您想要確保只有特定版本的 OS 能獲得存取權。

主控台

  1. 在 GCP 主控台中開啟「Access Context Manager」頁面。

    開啟 Access Context Manager 頁面

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

  3. 按一下「Access Context Manager」頁面最上方的 [New] (新增)

  4. 在「New Access Level」(建立新的存取層級) 窗格中,按一下「Conditions」(條件) 部分的 [Add attribute] (新增屬性),然後再按一下 [Device Policy] (裝置政策)

  5. 新增裝置政策屬性:

    1. 按一下 [Add OS Policy] (新增 OS 政策),然後再按一下 [Chrome OS Policy] (Chrome OS 政策)

    2. 在「Minimum version」(最低版本) 方塊中,輸入您允許的 Chrome OS 最低版本。

    3. 重複步驟 1 和步驟 2 來新增 Windows OS 政策

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

gcloud

  1. 為包含裝置政策 (具有 OS 條件限制) 的存取層級建立 .yaml 檔案。

    在本例中,如要只允許指定最低版本以上的 Chrome OS 和 Windows 存取,您可在 .yaml 檔案中輸入以下程式碼:

    - devicePolicy:
        osConstraints:
          - osType: DESKTOP_CHROME_OS
            minimumVersion: 11316.165.0
          - osType: DESKTOP_WINDOWS
            minimumVersion: 10.0.1809
    
  2. 儲存檔案。本例的檔案名稱為「CONDITIONS.yaml」

  3. 建立存取層級。

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --policy=POLICY_NAME
    

    其中:

    • 「NAME」是存取層級的唯一名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。

    • 「TITLE」是使用者可理解的文字標題,政策不得使用重複的標題。

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

    畫面會顯示類似以下的輸出:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. 編寫要求主體,建立包含裝置政策 (具有 OS 條件限制) 的 AccessLevel 資源。

    在本例中,如要只允許指定最低版本以上的 Chrome OS 和 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」是使用者可理解的文字標題,政策不得使用重複的標題。

  2. 以呼叫 accessLevels.create 的方式來建立存取層級。

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    其中:

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

按使用者或服務帳戶限制存取權

根據身分授予存取權的方式很適合用於服務帳戶。比如說您要允許 Cloud 函式存取資料的時候,可以採取這個做法。

本例說明如何為不符合其他存取層級條件的使用者和服務帳戶授予存取權。此外,本例假設您想要讓系統管理員和服務帳戶存取專案服務,不管其他存取層級中指定的條件為何。

主控台

GCP 主控台目前不支援新增成員到存取層級。如果您想要新增成員到存取層級,您必須使用 gcloud 指令列工具或 API。

gcloud

  1. 建立 .yaml 檔案,其中包含的條件應列出您要授予存取權給哪些成員。

    在本例中,您要新增系統管理員 (sysadmin@example.com) 和服務帳戶 (service@project.iam.gserviceaccount.com)。

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
  2. 新增一個條件,列出您「不」要授予成員的存取層級。

    在本例中,假設存取層級名稱為 Device_TrustIP_Trust,而 247332951433 是您存取權政策的名稱。

    - members:
        - user:sysadmin@example.com
        - serviceAccount:service@project.iam.gserviceaccount.com
    
    - requiredAccessLevels:
        - accessPolicies/247332951433/accessLevels/Device_Trust
        - accessPolicies/247332951433/accessLevels/IP_Trust
    
  3. 儲存檔案。本例的檔案名稱為「CONDITIONS.yaml」

  4. 建立存取層級。

    gcloud access-context-manager levels create NAME \
       --title TITLE \
       --basic-level-spec CONDITIONS.yaml \
       --combine-function=OR \
       --policy=POLICY_NAME
    

    其中:

    • 「NAME」是存取層級的唯一名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。

    • 「TITLE」是使用者可理解的文字標題,政策不得使用重複的標題。

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

    • combine-function 設為 OR。預設值「AND」要求「所有」條件都符合才會授予存取層級;而 OR 值則是就算有部分條件 (例如 IP 位址或從必要存取層級沿用的條件) 不符合,都會授予成員存取權。

    畫面會顯示類似以下的輸出:

    Create request issued for: NAME
    Waiting for operation [accessPolicies/POLICY_NAME/accessLevels/NAME/create/1521594488380943] to complete...done.
    Created level NAME.
    

API

  1. 編寫要求主體,建立包含條件 (其中列出您要授予存取權的成員) 的 AccessLevel 資源。

    在本例中,您要新增系統管理員 (sysadmin@example.com) 和服務帳戶 (service@project.iam.gserviceaccount.com)。

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "service@project.iam.gserviceaccount.com"
           ]
         }
       ]
     }
    }
    

    其中:

    • 「NAME」是存取層級的唯一名稱,開頭須為英文字母,且只能由英文字母、數字和底線組成。

    • 「TITLE」是使用者可理解的文字標題,政策不得使用重複的標題。

  2. 新增一個條件,列出您「不」要授予成員的存取層級。

    在本例中,假設存取層級名稱為 Device_TrustIP_Trust,而 247332951433 是您存取權政策的名稱。

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ]
     }
    }
    
  3. combiningFunction 設為 OR

    combiningFunction 的預設值「AND」要求「所有」條件都符合才會授予存取層級;而 OR 值則是就算有部分條件 (例如 IP 位址或從必要存取層級沿用的條件) 不符合,都會授予成員存取權。

    {
     "name": "NAME",
     "title": "TITLE",
     "basic": {
       "conditions": [
         {
           "members": [
             "user:sysadmin@example.com",
             "service@project.iam.gserviceaccount.com"
           ]
         },
         {
           "requiredAccessLevels": [
             "accessPolicies/247332951433/accessLevels/Device_Trust",
             "accessPolicies/247332951433/accessLevels/IP_Trust"
           ]
         }
       ],
       "combiningFunction": "OR"
     }
    }
    
  4. 以呼叫 accessLevels.create 的方式來建立存取層級。

    POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
    

    其中:

    • 「POLICY_NAME」是指您機構的存取權政策名稱。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Access Context Manager