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

本頁面說明如何使用以使用者群組為基礎的情境感知存取權政策,強制實施以憑證為基礎的存取權 (CBA)。

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

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

事前準備

請務必建立 CBA 存取層級,並在決定資源存取權時要求憑證。

建立使用者群組

建立使用者群組,其中包含應根據 CBA 存取層級授予存取權的會員。

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

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

請確認您已授予足夠的權限,可在機構層級新增身分與存取權管理權限。您至少需要具備機構管理員雲端存取綁定管理員角色。

主控台

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

    前往「身分與存取權管理」頁面

  2. 在「權限」分頁中,按一下「授予存取權」,然後設定下列項目:

    1. New principals:指定您要授予角色的群組。
    2. 在「Select a role」(請選擇角色) 選項中,依序選取「Access Context Manager」>「Cloud Access Binding Admin」
    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 進階版

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

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

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

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

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

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

以下範例將 CBA 存取層級繫結至 Google Cloud 控制台、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 方法來擷取。