為使用者群組強制執行憑證存取權

本頁面說明如何使用以使用者群組為依據的情境感知存取權政策,強制執行憑證式存取權 (CBA)。

您可以將 CBA 存取層級繫結至要限制存取權的使用者群組,藉此限制所有 Google Cloud 服務的存取權。這項限制適用於所有呼叫 Google CloudAPI 的用戶端應用程式。

您也可以選擇將限制套用至特定用戶端應用程式,或豁免特定應用程式。這些應用程式包括第三方應用程式,以及 Google 建構的第一方應用程式,例如 Cloud Console (適用於 Google Cloud 控制台) 和 Google Cloud SDK (適用於 Google Cloud CLI)。

事前準備

請務必建立以憑證為準的存取層級,在判斷資源存取權時要求提供憑證。

建立使用者群組

建立使用者群組,並根據 CBA 存取層級,將應授予存取權的成員加入群組。

指派 Cloud 存取權繫結管理員角色

將「Cloud Access Binding Admin」角色指派給使用者群組。

請確認您具備足夠的權限,可在機構層級新增身分與存取權管理權限。您至少需要機構管理員Cloud Access Binding 管理員角色。

主控台

  1. 前往控制台的「IAM」IAM頁面。

    前往「IAM」頁面

  2. 在「Permissions」分頁中,按一下「Grant access」,然後設定下列項目:

    1. 「New principals」(新增主體):指定要授予角色的群組。
    2. 在「Select a role」(請選擇角色) 選項中,依序選取「Access Context Manager」>「Cloud Access Binding Admin」(Cloud Access 繫結管理員)
    3. 按一下 [儲存]

gcloud

  1. 登入:

    gcloud auth login
    
  2. 執行下列指令來指派 GcpAccessAdmin 角色:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID 是貴機構的 ID。如果還沒有機構 ID,可以使用下列指令尋找:

       gcloud organizations list
      
    • EMAIL 是要授予角色的使用者或群組電子郵件地址。

將 CBA 存取層級繫結至使用者群組

在這個繫結選項中,CBA 存取層級會套用至您指定使用者群組的所有用戶端應用程式。

  1. 前往控制台的「Chrome Enterprise 進階版」頁面。

    前往 Chrome Enterprise Premium

  2. 選擇機構,然後按一下「選取」

  3. 按一下「管理存取權」,選擇應具備存取權的使用者群組。

  4. 按一下「新增」,然後設定下列項目:

    1. 成員群組:指定要授予存取權的群組。您只能選取尚未繫結至存取層級的群組。
    2. 選取存取層級:選取要套用至群組的 CBA 存取層級。
    3. 按一下 [儲存]

將 CBA 存取層級繫結至使用者群組和特定應用程式

在某些用途中 (例如支援用戶端憑證的應用程式),將 CBA 存取層級繫結至使用者群組可能範圍過廣。您可以透過這個選項,將 CBA 存取層級套用至支援用戶端憑證的應用程式。

以下範例會將 CBA 存取層級繫結至 Google Cloud console、gcloud CLI 和使用者的 OAuth 應用程式。

  1. 登入 gcloud CLI。

    gcloud auth application-default login
    
  2. 建立 policy_file.json 檔案。

    您可以透過 OAuth 用戶端 ID 指定應用程式。如要指定 Google 應用程式,請使用應用程式名稱,例如 Cloud Console 代表Google Cloud 控制台。僅支援 Google Cloud 控制台和 Google Cloud SDK Google 應用程式。

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Cloud Console
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Google Cloud SDK
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_1
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    

    更改下列內容:

    • CLIENT_ID_1:OAuth 用戶端 ID。
    • CBA_ACCESS_LEVEL:CBA 存取層級名稱,格式為 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
  3. 建立 CBA 存取層級繫結。

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../policy_file.json

    GROUP_KEY 替換為情境感知存取權群組,並將 ORG_ID 替換為機構 ID。

    如果沒有 GROUP_KEY,可以對群組資源呼叫 get 方法來擷取。

  4. (選用) 更新現有的存取層級繫結。

    gcloud access-context-manager cloud-bindings update \
      --binding='BINDING_NAME' \
      --binding-file=.../policy_file.json

    BINDING_NAME 替換為建立繫結時自動產生的繫結名稱。

豁免應用程式的繫結

如要套用 CBA 存取層級,但不想封鎖不支援用戶端憑證的用戶端應用程式,可以將這些應用程式排除在政策之外。

下列步驟假設您先前已建立 CBA 存取層級,該層級會在判斷資源存取權時要求提供憑證。

  1. 請使用下列任一方法建立豁免存取層級。

  2. 建立 exemption_file.json 檔案。

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: APPLICATION_NAME_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    

    更改下列內容:

    • CLIENT_ID_2:OAuth 用戶端 ID。
    • APPLICATION_NAME_2:應用程式名稱。
    • EXEMPT_ACCESS_LEVEL:格式為 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 的豁免存取層級名稱。
  3. 建立豁免繫結政策。

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../exemption_file.json

    GROUP_KEY 替換為情境感知存取權群組,並將 ORG_ID 替換為機構 ID。

    如果沒有 GROUP_KEY,可以呼叫群組資源的 get 方法來擷取。