每個主體 (使用者或群組) 都必須遵循兩步驟程序,才能存取全域 API 伺服器。使用 IAMRoleBinding 將全域 API 伺服器中的權限授予預先定義的 IAMRole 主體。所有角色和角色繫結都是全域的。
本頁面適用於平台管理員群組中,負責管理組織內權限的對象。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
管理角色繫結或撤銷存取權前,您必須要求必要權限並準備環境。所需特定角色取決於您要管理角色繫結,還是撤銷使用者存取權。
要求 IAM 角色
請與 IAM 機構組織管理員聯絡,根據您需要執行的工作要求角色:
- IAM 機構組織管理員 (
organization-iam-admin):在機構和專案層級建立、更新及刪除角色繫結。 - 組織工作階段管理員 (
org-session-admin):撤銷使用者在特定可用區中的有效工作階段和存取權。
準備環境
如要使用指令列工具管理角色繫結或撤銷存取權,請完成下列設定。
設定角色繫結
您可以設定角色繫結,讓團隊成員在組織或專案層級存取資源。
將角色指派給授權成員:
控制台
- 登入 GDC 控制台。
- 從範圍挑選器中選取組織或專案。
- 如要為組織設定角色繫結,請選取組織。
- 如要為專案設定角色繫結,請選取專案。
- 在導覽選單中,依序點選「Identity and Access」>「Access」。
- 按一下 [Add Member] (新增成員)。
- 選擇要新增個別使用者或群組。
- 在「Identity provider」(識別資訊提供者) 清單中,選取識別資訊提供者。
- 在「Username or group alias」(使用者名稱或群組別名) 欄位中,輸入使用者名稱、電子郵件地址或別名。
- 在「Role」(角色) 清單中,選取要指派給使用者或群組的角色,例如組織層級的「Organization Viewer」(組織檢視者),或專案層級的「Project Creator」(專案建立者)。
- 按一下「新增」。
該成員會顯示在「Authorized member」(授權成員) 清單中。
gdcloud
確認您已安裝 gdcloud CLI。
使用
gdcloud auth login指令登入,向識別資訊提供者驗證身分。詳情請參閱「gdcloud CLI 驗證」。設定角色繫結。
為組織設定角色繫結:
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
匯出角色繫結的環境變數:
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)。
建立並套用
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
移除角色繫結
不再需要存取權時,請移除成員及其相關聯的角色、權限和存取權。
如要移除成員,請按照下列步驟操作:
控制台
- 登入 GDC 控制台。
- 在導覽選單中,依序點選「Identity and Access」>「Access」。
- 在「Authorized members」(授權成員) 清單中,選取成員。
- 按一下 [Remove member]。
- 系統提示時,按一下「移除成員」確認操作。
gdcloud
確認您已安裝 gdcloud CLI。
使用
gdcloud auth login指令登入,向識別資訊提供者驗證身分。詳情請參閱「gdcloud CLI 驗證」。移除角色繫結。
移除組織的角色繫結:
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 宇宙中的存取權,必須分別撤銷各個可用區的存取權。請為每個可用區完成下列步驟:
確認你已登入要撤銷存取權的區域。例如,設定 gdcloud CLI 的可用區網址,然後登入:
gdcloud config set organization_console_url ZONE_URL gdcloud auth login將
ZONE_URL替換為要撤銷使用者存取權的可用區 GDC 控制台網址,類似於https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX。如要進一步瞭解如何切換可用區情境,請參閱「使用工具存取可用區」。
撤銷使用者對區域的存取權:
gdcloud admin auth revoke --accounts USER_EMAIL將 USER_EMAIL 替換為要撤銷存取權的使用者電子郵件地址。
執行指令後,會看到類似下方的輸出內容。以下範例會撤銷使用者
ariel@example.com的存取權:Success: NUMBER of sessions revoked for user ariel@example.com在本例中,變數 NUMBER 是指使用者的活動時段數量。
再次執行
gdcloud admin auth revoke指令,確認您已撤銷使用者的存取權。如果成功,您會看到以下內容:No sessions found for account: ariel@example.com針對宇宙中的每個區域重複上述步驟。