授予及撤銷存取權

每個主體 (使用者或群組) 都必須遵循兩步驟程序,才能存取全域 API 伺服器。使用 IAMRoleBinding 將全域 API 伺服器中的權限授予預先定義的 IAMRole 主體。所有角色和角色繫結都是全域的。

本頁面適用於平台管理員群組中,負責管理組織內權限的對象。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。

事前準備

管理角色繫結或撤銷存取權前,您必須要求必要權限並準備環境。所需特定角色取決於您要管理角色繫結,還是撤銷使用者存取權。

要求 IAM 角色

請與 IAM 機構組織管理員聯絡,根據您需要執行的工作要求角色:

  • IAM 機構組織管理員 (organization-iam-admin):在機構和專案層級建立、更新及刪除角色繫結。
  • 組織工作階段管理員 (org-session-admin):撤銷使用者在特定可用區中的有效工作階段和存取權。

準備環境

如要使用指令列工具管理角色繫結或撤銷存取權,請完成下列設定。

設定角色繫結

您可以設定角色繫結,讓團隊成員在組織或專案層級存取資源。

將角色指派給授權成員:

控制台

  1. 登入 GDC 控制台。
  2. 從範圍挑選器中選取組織或專案。
    • 如要為組織設定角色繫結,請選取組織。
    • 如要為專案設定角色繫結,請選取專案。
  3. 在導覽選單中,依序點選「Identity and Access」>「Access」。
  4. 按一下 [Add Member] (新增成員)。
  5. 選擇要新增個別使用者或群組。
  6. 在「Identity provider」(識別資訊提供者) 清單中,選取識別資訊提供者。
  7. 在「Username or group alias」(使用者名稱或群組別名) 欄位中,輸入使用者名稱、電子郵件地址或別名。
  8. 在「Role」(角色) 清單中,選取要指派給使用者或群組的角色,例如組織層級的「Organization Viewer」(組織檢視者),或專案層級的「Project Creator」(專案建立者)。
  9. 按一下「新增」。

該成員會顯示在「Authorized member」(授權成員) 清單中。

gdcloud

  1. 確認您已安裝 gdcloud CLI。

  2. 使用 gdcloud auth login 指令登入,向識別資訊提供者驗證身分。詳情請參閱「gdcloud CLI 驗證」。

  3. 設定角色繫結。

    • 為組織設定角色繫結:

      gdcloud organizations add-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      請替換下列變數:

      • ORGANIZATION:要設定角色繫結的組織名稱。
      • USER_ACCOUNT:要授予角色的使用者帳戶。這個旗標接受具有識別資訊提供者前置字串的使用者電子郵件地址 (user:idpprefix-user@example.com),或具有服務帳戶專案的服務帳戶名稱 (serviceAccount:projectName:serviceAccountName)。
      • ROLE:要指派給使用者的預先定義或自訂角色名稱。
    • 設定專案的角色繫結:

      gdcloud projects add-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      請替換下列變數:

      • PROJECT:要設定角色繫結的專案名稱。
      • USER_ACCOUNT:要授予角色的使用者帳戶。這個旗標接受具有識別資訊提供者前置字元 (user:idpprefix-user@example.com) 的使用者電子郵件地址,或具有服務帳戶專案 (serviceAccount:projectName:serviceAccountName) 的服務帳戶名稱。
      • ROLE:要指派給使用者的預先定義或自訂角色名稱。

API

  1. 匯出角色繫結的環境變數:

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    export USERNAME=IDP_PREFIX-USERNAME
    export ROLE_NAME=ROLE_NAME
    export BINDING_NAMESPACE=BINDING_NAMESPACE
    export USER_EMAIL=IDP_PREFIX-USER_EMAIL
    

    更改下列內容:

    • GLOBAL_API_SERVER_KUBECONFIG:全域 API 伺服器的 kubeconfig 檔案路徑。
    • IDP_PREFIX:識別資訊提供者前置字串。
    • USERNAME:使用者電子郵件地址中 @ 符號之前的使用者名稱部分 (例如 paul@example.com 中的 paul)。
    • ROLE_NAME:使用者需要的角色名稱 (例如 project-creator)。如需角色及其範圍的清單,請參閱角色定義。
    • BINDING_NAMESPACE:如果是組織範圍的角色,請使用 platform;如果是專案範圍的角色,請使用目標專案的命名空間名稱。
    • USER_EMAIL:要指派角色的使用者帳戶電子郵件地址 (例如 paul@example.com)。
  2. 建立並套用 IAMRoleBinding 自訂資源:

    cat <<EOF | kubectl --kubeconfig ${GLOBAL_API_SERVER_KUBECONFIG} apply -f -
    apiVersion: iam.global.gdc.goog/v1
    kind: IAMRoleBinding
    metadata:
      name: ${USERNAME}-${ROLE_NAME}-binding
      namespace: ${BINDING_NAMESPACE}
    spec:
      roleRef:
        apiGroup: iam.global.gdc.goog
        kind: IAMRole
        name: ${ROLE_NAME}
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${USER_EMAIL}
    EOF
    

移除角色繫結

不再需要存取權時,請移除成員及其相關聯的角色、權限和存取權。

如要移除成員,請按照下列步驟操作:

控制台

  1. 登入 GDC 控制台。
  2. 在導覽選單中,依序點選「Identity and Access」>「Access」。
  3. 在「Authorized members」(授權成員) 清單中,選取成員。
  4. 按一下 [Remove member]。
  5. 系統提示時,按一下「移除成員」確認操作。

gdcloud

  1. 確認您已安裝 gdcloud CLI。

  2. 使用 gdcloud auth login 指令登入,向識別資訊提供者驗證身分。詳情請參閱「gdcloud CLI 驗證」。

  3. 移除角色繫結。

    • 移除組織的角色繫結:

      gdcloud organizations remove-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      請替換下列變數:

      • ORGANIZATION:要移除角色繫結的組織名稱。
      • USER_ACCOUNT:要移除角色的使用者帳戶。這個旗標接受具有識別資訊提供者前置字元 (user:idpprefix-user@example.com) 的使用者電子郵件地址,或具有服務帳戶專案 (serviceAccount:projectName:serviceAccountName) 的服務帳戶名稱。
      • ROLE:要從使用者帳戶中移除的預先定義或自訂角色名稱。
    • 移除專案的角色繫結:

      gdcloud projects remove-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      請替換下列變數:

      • PROJECT:要移除角色繫結的專案名稱。
      • USER_ACCOUNT:要移除角色的使用者帳戶。這個旗標接受具有識別資訊提供者前置字元 (user:idpprefix-user@example.com) 的使用者電子郵件地址,或具有服務帳戶專案 (serviceAccount:projectName:serviceAccountName) 的服務帳戶名稱。
      • ROLE:要從使用者帳戶中移除的預先定義或自訂角色名稱。

kubectl

刪除 IAMRoleBinding,撤銷授予 PA 帳戶的權限:

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG \
delete iamrolebinding IDP_PREFIX-USERNAME-ROLE_NAME-binding -n BINDING_NAMESPACE

更改下列內容:

  • GLOBAL_API_SERVER_KUBECONFIG:全域 API 伺服器的 kubeconfig 檔案路徑。
  • IDP_PREFIX:識別資訊提供者前置字串。
  • USERNAME:使用者電子郵件地址中 @ 符號之前的使用者名稱部分 (例如 paul@example.com 中的 paul)。
  • ROLE_NAME:要移除的角色名稱,例如 project-creator。
  • BINDING_NAMESPACE:如果是 組織範圍的角色,請替換為 platform;如果是專案範圍的角色,請替換為目標專案的命名空間名稱 。

撤銷使用者存取權

如果成員離開貴機構或團隊,您可以撤銷其 Google Distributed Cloud (GDC) 實體隔離方案存取權。撤銷使用者的存取權後,系統會將他們登出 Distributed Cloud,並移除其角色和權限。您也可以根據開始和結束時間,列出使用者的活動和工作階段。

如要撤銷使用者在 GDC 宇宙中的存取權,必須分別撤銷各個可用區的存取權。請為每個可用區完成下列步驟:

  1. 確認你已登入要撤銷存取權的區域。例如,設定 gdcloud CLI 的可用區網址,然後登入:

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    將 ZONE_URL 替換為要撤銷使用者存取權的可用區 GDC 控制台網址,類似於 https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX。

    如要進一步瞭解如何切換可用區情境,請參閱「使用工具存取可用區」。

  2. 撤銷使用者對區域的存取權:

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    將 USER_EMAIL 替換為要撤銷存取權的使用者電子郵件地址。

    執行指令後,會看到類似下方的輸出內容。以下範例會撤銷使用者 ariel@example.com 的存取權:

    Success: NUMBER of sessions revoked for user ariel@example.com
    

    在本例中,變數 NUMBER 是指使用者的活動時段數量。

  3. 再次執行 gdcloud admin auth revoke 指令,確認您已撤銷使用者的存取權。如果成功,您會看到以下內容:

    No sessions found for account: ariel@example.com
    
  4. 針對宇宙中的每個區域重複上述步驟。