本頁說明 Google Distributed Cloud (GDC) 氣隙式裝置上,Application Operator (AO) 適用的身分與存取權管理 (IAM) 做法。
身分識別提供者 (IdP) 是指建立、維護及管理主體身分識別資訊的系統實體。IdP 也會為聯盟或分散式網路中的應用程式提供驗證服務。
登入
本節說明如何透過網頁使用者介面 (UI) 或指令列介面 (CLI) 存取工作負載。
登入網頁版 UI
本頁面說明如何存取及管理 Google Distributed Cloud (GDC) 實體隔離裝置中的工作負載和資源。本文說明如何驗證、為管理 API 伺服器和 Kubernetes 叢集產生 kubeconfig 檔案,以及管理工作階段閒置狀態。瞭解這些程序可確保專案和工作負載的存取安全無虞。
透過 GDC 控制台或 gdcloud CLI 存取工作負載。
登入
如要登入 GDC 控制台或叢集,請完成下列步驟:
控制台
在新瀏覽器分頁中開啟下列網址,存取 GDC 氣隙裝置使用者介面 (UI):
https://GDC_URL
將 GDC_URL
替換為您用來存取 GDC 的網域名稱,該網域名稱由基礎架構營運人員 (IO) 提供。首次開啟任何網址時,如果基礎架構營運商 (IO) 已設定該頁面,GDC 會將您重新導向至身分識別提供者登入頁面。
舉例來說,登入名為 `org-1` 的機構後,會顯示下列頁面:
CLI
您可以登入有權存取的任何叢集。所有叢集的 CLI 登入程序都相同。您只需要提供叢集名稱和相關的 kubeconfig
檔案,並分別登入每個叢集。
登入前,請務必完成下列步驟:
- 下載 gdcloud CLI 二進位檔,並安裝在系統中。 詳情請參閱「下載 gdcloud CLI」。
- 設定並初始化 gdcloud CLI 預設設定。請務必設定正確的機構網址,這個網址用於擷取登入設定端點。詳情請參閱 gcloud CLI 安裝作業。
- 安裝驗證外掛程式
gdcloud-k8s-auth-plugin
。詳情請參閱 gcloud CLI 驗證。
如要登入叢集,請完成下列步驟:
驗證 gcloud CLI 執行個體,然後登入。驗證方式有兩種:
標準瀏覽器登入:從瀏覽器登入時,請使用這個驗證流程。
gdcloud auth login
次要裝置登入:如果主要裝置沒有可用的瀏覽器,請使用這個驗證流程。這個流程會在主要裝置上啟動登入程序 (不需存取瀏覽器),然後在可存取瀏覽器的次要裝置上繼續登入。
在主要裝置上啟動登入程序,但不要使用瀏覽器:
gdcloud auth login --no-browser
主要裝置中的指令會列印另一個
gdcloud
指令,您必須在步驟 c 中於次要裝置上執行該指令。重複「登入叢集」的步驟 1,在次要裝置上 下載憑證。
在次要裝置上輸入步驟 a 中主要裝置列印的指令,完成登入程序。
系統會開啟瀏覽器,讓您登入已設定的身分識別提供者 (IdP)。提供您在初始 gdcloud CLI 設定期間設定的使用者名稱和密碼,即可登入。
將使用者身分
kubeconfig
檔案匯出為變數:export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
使用使用者身分產生
kubeconfig
檔案:gdcloud clusters get-credentials CLUSTER_NAME
系統會使用您的使用者身分產生
kubeconfig
檔案。以下 YAML 檔案範例說明:apiVersion: v1 clusters: - cluster: certificate-authority-data: <REDACTED> server: https://10.200.0.32:443 name: cluster-name contexts: - context: cluster: cluster-name user: cluster-name-anthos-default-user name: cluster-name-cluster-name-anthos-default-user current-context: cluster-name-cluster-name-anthos-default-user kind: Config preferences: {} users: - name: cluster-name-anthos-default-user user: exec: apiVersion: client.authentication.k8s.io/v1 args: - --audience=root-admin command: gdcloud-k8s-auth-plugin env: null installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin interactiveMode: Never provideClusterInfo: false
如要確認是否可以存取叢集,請使用產生的
kubeconfig
檔案和使用者身分登入:kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
登出
如要登出 GDC 控制台,請按照下列步驟操作:
控制台
按一下選單列中的「登出」
。CLI
登出 CLI:
gdcloud auth revoke
手動產生 kubeconfig 檔案
如果您是透過直接呼叫 KRM API,使用 kubectl CLI 管理資源,則必須視您管理的資源類型,為代管資源的叢集產生 kubeconfig 檔案。請參閱資源的 說明文件,判斷您需要的 kubeconfig 檔案。
根據資源類型完成適用的設定。
管理 API 伺服器資源
如要為 Management API 伺服器產生 kubeconfig 檔案,請完成下列步驟:
設定
MANAGEMENT_API_SERVER
環境變數:export MANAGEMENT_API_SERVER="root-admin"
產生 Management API 伺服器 kubeconfig 檔案,並驗證憑證:
export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
rm ${KUBECONFIG:?}
指令會移除主目錄中現有的 kubeconfig 檔案。產生新的 kubeconfig 檔案時,系統會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。
Kubernetes 叢集資源
請按照下列步驟,為 Bare Metal Kubernetes 叢集產生 kubeconfig 檔案:
設定
KUBERNETES_CLUSTER
環境變數:export KUBERNETES_CLUSTER="root-infra"
產生 Kubernetes 叢集 kubeconfig 檔案,並驗證憑證:
export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
rm ${KUBECONFIG:?}
指令會移除主目錄中現有的 kubeconfig 檔案。產生新的 kubeconfig 檔案時,系統會覆寫現有檔案。如果不想覆寫或移除現有檔案,請將檔案備份到其他安全位置。
工作階段閒置時登出
如果工作階段閒置超過 15 分鐘,GDC 控制台和 gdcloud CLI 會將您登出。GDC 會將工作階段閒置視為一段時間,在此期間,您開啟工作階段但沒有任何互動,例如沒有游標或鍵盤移動。如果使用者有活動,有效工作階段最多可持續十二小時。
控制台
如果工作階段閒置過久,GDC 控制台會將您登出。如果 GDC 控制台因閒置而即將登出,您會在登出前兩分鐘收到警告對話方塊:
系統因閒置而登出後,會顯示以下畫面:
如要重新登入 GDC 控制台,請選取身分識別提供者並新增登入憑證。如果您使用監控資訊主頁等服務,且 GDC 控制台因閒置而將您登出,請重新登入以取得存取權。
CLI
如果工作階段處於閒置狀態,gdcloud CLI 會將您登出。gdcloud CLI 登出後,如果您嘗試執行指令,會收到授權錯誤訊息:
Error: error when creating kube client: unable to create k8sclient: Unauthorized
如要重新登入 gcloud CLI,請按照「登入」一節中的 CLI 步驟操作。
kubectl
gdcloud CLI 會在工作階段閒置後,讓 kubeconfig 檔案過期。如果您在閒置一段時間後嘗試執行 kubectl
指令,系統會顯示授權錯誤訊息:
error: You must be logged in to the server (Unauthorized)
如要重新登入並使用 kubeconfig 檔案,請按照「登入」一節中的 CLI 步驟操作。每次工作階段逾時時,您都必須重新產生 kubeconfig 檔案。
設定 IAM 允許政策
預先定義角色的說明
應用程式運算子 (AO) 是平台管理員 (PA) 機構內的開發團隊成員。AO 會與專案層級的資源互動。您可以將下列預先定義的角色指派給團隊成員:
- 專案 IAM 管理員:管理專案的 IAM 允許政策。
- AI OCR 開發人員:存取光學字元辨識服務,偵測圖片中的文字。
- AI Speech Developer:存取 Speech-to-Text 服務,辨識語音並轉錄音訊。
- AI Translation 開發人員:存取 Vertex AI Translation 服務,翻譯文字。
- 構件管理管理員:具備專案命名空間中所有 Harbor 專案的資源管理員存取權。
- 構件管理編輯者:可讀取及寫入專案命名空間中所有 Harbor 專案的資源。
- 憑證授權單位服務管理員:可管理專案中的憑證授權單位和憑證要求。
- 憑證服務管理員:有權管理專案中的憑證和憑證簽發者。
- 資訊主頁編輯者:具備
Dashboard
自訂資源的讀寫權限。 - 資訊主頁檢視者:具備
Dashboard
自訂資源的唯讀存取權。 - Harbor 執行個體管理員:擁有完整存取權,可管理專案中的 Harbor 執行個體。
- Harbor 執行個體檢視者:擁有唯讀權限,可查看專案中的 Harbor 執行個體。
- Harbor 專案建立者:可管理 Harbor 執行個體專案。
- K8s 網路政策管理員:管理 Kubernetes 叢集中的網路政策。
- LoggingRule Creator:在專案命名空間中建立
LoggingRule
自訂資源。 - LoggingRule 編輯器:編輯專案命名空間中的
LoggingRule
自訂資源。 - LoggingRule Viewer:查看專案命名空間中的
LoggingRule
自訂資源。 - LoggingTarget 建立者:在專案命名空間中建立
LoggingTarget
自訂資源。 - LoggingTarget 編輯者:編輯專案命名空間中的
LoggingTarget
自訂資源。 - LoggingTarget 檢視者:查看專案命名空間中的自訂資源
LoggingTarget
。 - 負載平衡器管理員:具備專案命名空間中所有負載平衡器資源的讀取和寫入權限。
- MonitoringRule 編輯者:具備
MonitoringRule
資源的讀寫權限。 - MonitoringRule 檢視者:具備
MonitoringRule
自訂資源的唯讀存取權。 - MonitoringTarget 編輯者:具備自訂資源的讀寫權限。
MonitoringTarget
- MonitoringTarget 檢視者:具備自訂資源的唯讀存取權。
MonitoringTarget
- NAT 檢視者:具備 Kubernetes 叢集中部署作業的唯讀存取權。
- 命名空間管理員:管理專案命名空間中的所有資源。
- ObservabilityPipeline 編輯者:具備自訂資源的讀寫權限。
ObservabilityPipeine
- ObservabilityPipeline 檢視者:具備自訂資源的唯讀存取權。
ObservabilityPipeline
- 專案值區管理員:管理值區內的儲存空間值區和物件。
- 專案值區物件管理員:具備專案內值區的唯讀存取權,以及這些值區中物件的讀寫存取權。
- 專案值區物件檢視者:具備專案內值區和這些值區中物件的唯讀存取權。
- Project Cortex Alertmanager Editor:授予編輯專案命名空間中 Cortex Alertmanager 執行個體的權限。
- Project Cortex Alertmanager Viewer:授予在專案命名空間中存取 Cortex Alertmanager 執行個體的權限。
- Project Cortex Prometheus Viewer:授予存取專案命名空間中 Cortex Prometheus 執行個體的權限。
- 專案 Grafana 檢視者:存取機群管理叢集專案命名空間中的 Grafana 執行個體。
- 專案 NetworkPolicy 管理員:管理專案命名空間中的專案網路政策。
- 專案檢視者:具備專案命名空間中所有資源的唯讀存取權。
- 專案 VirtualMachine 管理員:管理專案命名空間中的 VM。
- 專案虛擬機器映像檔管理員:管理專案命名空間中的 VM 映像檔。
- Secret 管理員:管理專案中的 Kubernetes Secret。
- Secret 檢視者:查看專案中的 Kubernetes Secret。
- 服務設定管理員:可讀取及寫入專案命名空間中的服務設定。
- 服務設定檢視者:可讀取專案命名空間內的服務設定。
- 磁碟區複製管理員:管理磁碟區複製資源。
- Workbench Notebooks 管理員:取得專案命名空間中所有筆記本資源的讀寫權限。
- Workbench Notebooks 檢視者:取得專案命名空間中所有筆記本資源的唯讀存取權,並查看 Vertex AI Workbench 使用者介面。
- 工作負載檢視者:具備專案中工作負載的讀取權限。
常見角色
下列預先定義的常見角色適用於所有已驗證的使用者:
- AI Platform 檢視者:授予查看預先訓練服務的權限。
- DNS 後置字串檢視器:存取網域名稱服務 (DNS) 後置字串設定對應。
- 流量記錄管理員:具備所有流量記錄資源的讀寫權限。
- Flow Log 檢視者:具備所有 Flow Log 資源的唯讀存取權。
- 專案探索檢視者:所有已通過驗證的使用者都具有專案檢視畫面的讀取權限。
- 公開映像檔檢視者:具備命名空間
vm-images
中公開 VM 映像檔的讀取權限,適用於所有已通過驗證的使用者。 - 系統 Artifact Registry anthos-creds 密鑰監控器:具有
anthos-creds
命名空間中密鑰的唯讀存取權。 - 系統 Artifact Registry gpc-system 密鑰監控:具有
gpc-system
命名空間中密鑰的唯讀存取權。 - 系統構件登錄檔 harbor-system 密鑰監控:具有
harbor-system
命名空間中密鑰的唯讀存取權。 - 虛擬機器類型檢視者:具備叢集範圍內虛擬機器類型的讀取權限。
- VM 類型檢視者:具備管理員叢集上預先定義虛擬機器類型的讀取權限。
角色定義
本節的表格說明不同的預先定義角色及其權限。表格包含下列資料欄:
- 名稱:使用者介面 (UI) 中顯示的角色名稱。
- Kubernetes 資源名稱:對應 Kubernetes 自訂資源的名稱。
- 層級:指定這個角色是否以機構或專案為範圍。
- 類型:這個角色的類型。例如,可能的值包括
Role
、ProjectRole
、ClusterRole
或ProjectClusterRole
。 - 繫結類型:您必須套用至這個角色的繫結類型。
- 管理 API 伺服器或 Kubernetes 叢集權限:這個角色在管理 API 伺服器或 Kubernetes 叢集擁有的權限。舉例來說,可能的值包括讀取、寫入、讀取和寫入,或不適用 (N/A)。
- 升級至:指定這個角色是否會升級至其他角色。
AO 角色、預先定義的身分和存取權角色
AO 角色 | ||||
---|---|---|---|---|
名稱 | Kubernetes 資源名稱 | 初始管理員 | 等級 | 類型 |
專案 IAM 管理員 | project-iam-admin |
是 | 「Project」(專案) | Role |
AI OCR 開發人員 | ai-ocr-developer |
否 | 「Project」(專案) | Role |
AI 平台檢視者 | ai-platform-viewer |
否 | 「Project」(專案) | Role |
AI Speech 開發人員 | ai-speech-developer |
否 | 「Project」(專案) | Role |
AI 翻譯開發人員 | ai-translation-developer |
否 | 「Project」(專案) | Role |
構件管理管理員 | artifact-management-admin |
否 | 專案 | Role |
構件管理編輯者 | artifact-management-editor |
否 | 專案 | Role |
憑證授權單位服務管理員 | certificate-authority-service-admin |
否 | 專案 | Role |
憑證服務管理員 | certificate-service-admin |
否 | 專案 | Role |
資訊主頁編輯器 | dashboard-editor |
否 | 專案 | Role |
資訊主頁檢視者 | dashboard-viewer |
否 | 專案 | Role |
Harbor 執行個體管理員 | harbor-instance-admin |
否 | 專案 | Role |
Harbor 執行個體檢視者 | harbor-instance-viewer |
否 | 專案 | Role |
Harbor 專案建立者 | harbor-project-creator |
否 | 專案 | Role |
K8s 網路政策管理員 | k8s-networkpolicy-admin |
否 | 專案 | ProjectRole |
負載平衡器管理員 | load-balancer-admin |
否 | 專案 | ProjectRole |
LoggingRule Creator | loggingrule-creator |
否 | 「Project」(專案) | Role |
LoggingRule 編輯器 | loggingrule-editor |
否 | 「Project」(專案) | Role |
LoggingRule Viewer | loggingrule-viewer |
否 | 「Project」(專案) | Role |
LoggingTarget Creator | loggingtarget-creator |
否 | 「Project」(專案) | Role |
LoggingTarget 編輯器 | loggingtarget-editor |
否 | 「Project」(專案) | Role |
LoggingTarget 檢視器 | loggingtarget-viewer |
否 | 「Project」(專案) | Role |
MonitoringRule 編輯者 | monitoringrule-editor |
否 | 「Project」(專案) | Role |
MonitoringRule 檢視者 | monitoringrule-viewer |
否 | 「Project」(專案) | Role |
MonitoringTarget 編輯者 | monitoringtarget-editor |
否 | 「Project」(專案) | Role |
MonitoringTarget Viewer | monitoringtarget-viewer |
否 | 「Project」(專案) | Role |
命名空間管理員 | namespace-admin |
否 | 「Project」(專案) | ProjectRole |
NAT 檢視器 | nat-viewer |
否 | 「Project」(專案) | ProjectRole |
ObservabilityPipeline 編輯者 | observabilitypipeline-editor |
否 | 「Project」(專案) | Role |
ObservabilityPipeline 檢視者 | observabilitypipeline-viewer |
否 | 「Project」(專案) | Role |
專案 Bucket 管理員 | project-bucket-admin |
否 | 「Project」(專案) | Role |
專案值區物件管理員 | project-bucket-object-admin |
否 | 「Project」(專案) | Role |
專案 Bucket 物件檢視者 | project-bucket-object-viewer |
否 | 「Project」(專案) | Role |
Project Cortex Alertmanager 編輯者 | project-cortex-alertmanager-editor |
否 | 「Project」(專案) | Role |
Project Cortex Alertmanager 檢視者 | project-cortex-alertmanager-viewer |
否 | 「Project」(專案) | Role |
Project Cortex Prometheus 檢視者 | project-cortex-prometheus-viewer |
否 | 「Project」(專案) | Role |
專案 Grafana 檢視者 | project-grafana-viewer |
否 | 專案 | Role |
專案 NetworkPolicy 管理員 | project-networkpolicy-admin |
否 | 「Project」(專案) | Role |
專案檢視者 | project-viewer |
否 | 「Project」(專案) | Role |
專案 VirtualMachine 管理員 | project-vm-admin |
否 | 「Project」(專案) | Role |
專案 VirtualMachine 映像檔管理員 | project-vm-image-admin |
否 | 「Project」(專案) | Role |
密鑰管理員 | secret-admin |
否 | 專案 | Role |
Secret 檢視者 | secret-viewer |
否 | 專案 | Role |
服務設定管理員 | service-configuration-admin |
否 | 專案 | Role |
服務設定檢視者 | service-configuration-viewer |
否 | 專案 | Role |
Workbench Notebooks 管理員 | workbench-notebooks-admin |
否 | 專案 | Role |
磁碟區複製作業管理員 | app-volume-replication-admin |
否 | 叢集 | Role |
Workbench 筆記本檢視者 | workbench-notebooks-viewer |
否 | 專案 | Role |
工作負載檢視者 | workload-viewer |
否 | 專案 | Role |
AO 角色、預先定義的身分和存取權角色
AO 角色 | ||||
---|---|---|---|---|
名稱 | 繫結類型 | 管理 API 伺服器權限 | Kubernetes 叢集權限 | 呈報至 |
專案 IAM 管理員 | RoleBinding |
|
不適用 | 所有其他 AO 角色 |
AI OCR 開發人員 | RoleBinding |
OCR 資源:讀取及寫入 | 不適用 | 不適用 |
AI Speech 開發人員 | RoleBinding |
語音資源:讀取及寫入 | 不適用 | 不適用 |
AI 翻譯開發人員 | RoleBinding |
翻譯資源:讀取及寫入 | 不適用 | 不適用 |
構件管理管理員 | RoleBinding |
HarborProjects :管理員、建立、讀取、寫入、刪除及檢視 |
不適用 | 不適用 |
構件管理編輯者 | RoleBinding |
HarborProjects :讀取、寫入及檢視 |
不適用 | 不適用 |
憑證授權單位服務管理員 | RoleBinding |
憑證授權單位和憑證要求:取得、列出、監控、更新、建立、刪除及修補 | 不適用 | 不適用 |
憑證服務管理員 | RoleBinding |
憑證和憑證簽發機構:取得、列出、監看、更新、建立、刪除及修補 | 不適用 | 不適用 |
資訊主頁編輯器 | RoleBinding |
Dashboard 自訂資源:取得、讀取、建立、更新、刪除及修補 |
不適用 | 不適用 |
資訊主頁檢視者 | RoleBinding |
Dashboard :取得及讀取 |
不適用 | 不適用 |
Harbor 執行個體管理員 | RoleBinding |
Harbor 執行個體:建立、讀取、更新、刪除及修補 | 不適用 | 不適用 |
Harbor 執行個體檢視者 | RoleBinding |
Harbor 執行個體:讀取 | 不適用 | 不適用 |
Harbor 專案建立者 | RoleBinding |
Harbor 執行個體專案:建立、取得及監控 | 不適用 | 不適用 |
K8s NetworkPolicy 管理員 | ProjectRoleBinding |
不適用 | NetworkPolicy 資源:建立、讀取、取得、更新、刪除及修補 |
不適用 |
負載平衡器管理員 | RoleBinding |
不適用 |
|
不適用 |
LoggingRule Creator | RoleBinding |
LoggingRule 自訂資源:建立、讀取、更新、刪除及修補 |
不適用 | 不適用 |
LoggingRule 編輯器 | RoleBinding |
LoggingRule 自訂資源:建立、讀取、更新、刪除及修補 |
不適用 | 不適用 |
LoggingRule Viewer | RoleBinding |
LoggingRule 自訂資源:讀取 |
不適用 | 不適用 |
LoggingTarget Creator | RoleBinding |
LoggingTarget 自訂資源:建立、讀取、更新、刪除及修補 |
不適用 | 不適用 |
LoggingTarget 編輯器 | RoleBinding |
LoggingTarget 自訂資源:建立、讀取、更新、刪除及修補 |
不適用 | 不適用 |
LoggingTarget 檢視器 | RoleBinding |
LoggingTarget 自訂資源:讀取 |
不適用 | 不適用 |
MonitoringRule 編輯者 | RoleBinding |
MonitoringRule 自訂資源:建立、讀取、更新、刪除及修補 |
不適用 | 不適用 |
MonitoringRule 檢視者 | RoleBinding |
MonitoringRule 自訂資源:讀取 |
不適用 | 不適用 |
MonitoringTarget 編輯者 | RoleBinding |
MonitoringTarget 自訂資源:建立、讀取、更新、刪除及修補 |
不適用 | 不適用 |
MonitoringTarget Viewer | RoleBinding |
MonitoringTarget 自訂資源:讀取 |
不適用 | 不適用 |
命名空間管理員 | ProjectRoleBinding |
不適用 | 所有資源:專案命名空間的讀寫權限 | 不適用 |
NAT 檢視器 | ProjectRoleBinding |
不適用 | 部署作業:取得及讀取 | 不適用 |
ObservabilityPipeline 編輯者 | RoleBinding |
ObservabilityPipeline 資源:取得、讀取、建立、更新、刪除及修補 |
不適用 | 不適用 |
ObservabilityPipeline 檢視者 | RoleBinding |
ObservabilityPipeline 資源:取得及閱讀 |
不適用 | 不適用 |
專案 Bucket 管理員 | RoleBinding |
值區:在專案命名空間中讀取及寫入 | 不適用 | 不適用 |
專案值區物件管理員 | RoleBinding |
|
不適用 | 不適用 |
專案 Bucket 物件檢視者 | RoleBinding |
值區和物件:讀取 | 不適用 | 不適用 |
Project Cortex Alertmanager 編輯者 | RoleBinding |
Cortex 系統和 Cortex Alertmanager:讀取及寫入 | 不適用 | 不適用 |
Project Cortex Alertmanager 檢視者 | RoleBinding |
Cortex 系統和 Cortex Alertmanager:請參閱 | 不適用 | 不適用 |
Project Cortex Prometheus 檢視者 | RoleBinding |
Cortex 系統和 Cortex Prometheus:請參閱 | 不適用 | 不適用 |
專案 Grafana 檢視者 | RoleBinding |
Grafana 系統和 Grafana:讀取和寫入 | 不適用 | 不適用 |
專案 NetworkPolicy 管理員 | RoleBinding |
專案網路政策:在專案命名空間中讀取及寫入 | 不適用 | 不適用 |
專案檢視者 | RoleBinding |
專案命名空間中的所有資源:讀取 | 不適用 | 不適用 |
專案 VirtualMachine 管理員 | RoleBinding |
|
不適用 | 不適用 |
專案 VirtualMachine 映像檔管理員 | RoleBinding |
|
不適用 | 不適用 |
密鑰管理員 | RoleBinding |
Kubernetes Secret:讀取、建立、更新、刪除及修補 | 不適用 | 不適用 |
Secret 檢視者 | RoleBinding |
Kubernetes 密鑰:讀取 | 不適用 | 不適用 |
服務設定管理員 | RoleBinding |
ServiceConfigurations :讀取及寫入
|
不適用 | 不適用 |
服務設定檢視者 | RoleBinding |
ServiceConfigurations :已讀
|
不適用 | 不適用 |
磁碟區複製管理員 | ClusterRoleBinding |
Volume failovers, volume relationship replicas :
建立、取得、列出、觀看、刪除
|
不適用 | 不適用 |
Workbench Notebooks 管理員 | RoleBinding |
不適用 |
|
不適用 |
Workbench 筆記本檢視者 | RoleBinding |
不適用 |
|
不適用 |
工作負載檢視者 | ProjectRoleBinding |
不適用 |
|
不適用 |
常見的預先定義身分與存取權角色
常見角色 | ||||
---|---|---|---|---|
名稱 | Kubernetes 資源名稱 | 初始管理員 | 等級 | 類型 |
AI 平台檢視者 | ai-platform-viewer |
否 | 專案 | Role |
DNS 尾碼檢視者 | dnssuffix-viewer |
否 | 機構 | Role |
Flow Log Admin | flowlog-admin |
否 | 機構 | ClusterRole |
流程記錄檢視器 | flowlog-viewer |
否 | 專案 | ClusterRole |
專案探索檢視者 | projectdiscovery-viewer |
否 | 「Project」(專案) | ClusterRole |
公開圖片檢視器 | public-image-viewer |
否 | 機構 | Role |
系統 Artifact Registry anthos-creds 密鑰監控 | sar-anthos-creds-secret-monitor |
否 | 機構 | Role |
系統 Artifact Registry gpc-system 密鑰監控 | sar-gpc-system-secret-monitor |
否 | 機構 | Role |
系統 Artifact Registry harbor-system 密鑰監控 | sar-harbor-system-secret-monitor |
否 | 機構 | Role |
虛擬機器類型檢視者 | virtualmachinetype-viewer |
否 | 機構 | OrganizationRole |
VM 類型檢視者 | vmtype-viewer |
否 | 機構 | Role |
常見的預先定義身分與存取權角色
常見角色 | ||||
---|---|---|---|---|
名稱 | 繫結類型 | 管理員叢集權限 | Kubernetes 叢集權限 | 呈報至 |
AI 平台檢視者 | RoleBinding |
預先訓練的服務:讀取 | 不適用 | 不適用 |
DNS 尾碼檢視者 | ClusterRoleBinding |
DNS 尾碼設定對應:讀取 | 不適用 | 不適用 |
Flow Log Admin | ClusterRoleBinding |
流量記錄資源:取得及讀取 | 流量記錄資源:取得及讀取 | 不適用 |
流程記錄檢視器 | ClusterRoleBinding |
流量記錄資源:建立、取得、讀取、修補、更新及刪除 | 流量記錄資源:建立、取得、讀取、修補、更新及刪除 | 不適用 |
專案探索檢視者 | ClusterRoleBinding |
專案:讀取 | 不適用 | 不適用 |
公開圖片檢視器 | RoleBinding |
VM 映像檔:請參閱 | 不適用 | 不適用 |
系統 Artifact Registry anthos-creds 密鑰監控 | RoleBinding |
anthos-creds 密鑰:取得及讀取 |
anthos-creds 密鑰:取得及讀取 |
不適用 |
系統 Artifact Registry gpc-system 密鑰監控 | RoleBinding |
gpc-system 密鑰:取得及讀取 |
gpc-system 密鑰:取得及讀取 |
不適用 |
系統 Artifact Registry harbor-system 密鑰監控 | RoleBinding |
harbor-system 密鑰:取得及讀取 |
harbor-system 密鑰:取得及讀取 |
不適用 |
虛擬機器類型檢視者 | OrganizationRoleBinding |
不適用 | VM 類型:讀取 | 不適用 |
VM 類型檢視者 | ClusterRoleBinding |
VM 類型:讀取 | 不適用 | 不適用 |
授予資源存取權的方式有兩種:
使用 CLI 設定角色繫結
管理叢集中的 AO 存取權
與基礎架構操作人員 (IO) 和平台管理員 (PA) 不同,GDC 會透過 RoleBinding
將應用程式操作人員 (AO) 繫結至 Project
,而不是 ClusterRoleBinding
。
如要授予 AO 管理員叢集的存取權,請完成下列步驟:
匯出您用來存取 AO 的電子郵件。例如
ao-alice@example.com
這類電子郵件。export AO_EMAIL=AO_EMAIL
建立角色繫結,在
iam-test
命名空間中授予${AO_EMAIL}
專案 IAM 管理員存取權:kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-iam-admin \ --role=project-iam-admin --user=$AO_EMAIL \ --namespace=iam-test
project-iam-admin
角色是 GDC 的預先定義角色。iam-test
Kubernetes 命名空間對應於管理員叢集中的iam-test
專案。確認 AO 帳戶具備在
iam-test
命名空間中建立角色繫結的權限:kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
您會看見以下輸出內容:
yes
建立角色繫結,在
bar
命名空間中授予${AO_EMAIL}
專案檢視者存取權:kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-viewer \ --role=project-viewer --user=$AO_EMAIL \ --namespace=bar
project-viewer
角色是 GDC 的預設角色。bar
Kubernetes 命名空間對應於機構管理叢集中的bar
專案。確認 AO 帳戶沒有在
bar
命名空間中建立角色繫結的權限:kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
您會看見以下輸出內容:
no
選用:刪除角色繫結,撤銷授予 AO 帳戶的權限:
kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
使用者叢集中的 AO 存取權
AO 會使用 ProjectRole
和 ProjectRoleBinding
資源,取得使用者叢集的命名空間存取權。不過,PA 可以使用預設的 OrganizationRole
和 ProjectRoleBinding
資源,在使用者叢集中授予 AO 機構全域權限。
如要授予 AO 使用者叢集存取權,請完成下列步驟:
如要授予使用者叢集的存取權,您必須具備專案 IAM 管理員角色。
建立
ProjectRoleBinding
資源,在iam-test
命名空間中,授予所有使用者叢集的${AO_EMAIL}
命名空間管理員存取權:kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: ${AO_EMAIL%@*}-namespace-admin namespace: iam-test spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: namespace-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: ${AO_EMAIL} EOF
按照「使用 CLI 和 kubectl 登入」一節的操作說明,取得使用者叢集的使用者憑證,並將憑證匯出至
AO_USER_CLUSTER_KUBECONFIG
變數:export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
確認 AO 帳戶有權在
iam-test
命名空間中建立部署作業:kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
您會看見以下輸出內容:
yes
選用:刪除專案角色繫結,撤銷授予測試 AO 帳戶的權限:
kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
使用 UI 設定專案層級的角色繫結
應用程式運算子會將其他應用程式運算子新增至專案,讓他們存取專案資源。
如要取得設定角色繫結所需的權限,請要求專案 IAM 管理員授予您專案 IAM 管理員角色。
請按照下列步驟設定角色繫結:
- 登入 GDC 氣隙裝置控制台。
- 選取專案。
- 按一下導覽選單中的「存取權管理」。
- 按一下「新增成員」。
- 在「Identity provider」(識別資訊提供者) 清單中,選取識別資訊提供者。
- 選擇要新增個別使用者或群組。
- 在「使用者名稱或群組別名」欄位中,輸入使用者名稱、電子郵件地址或別名。
- 在「角色」清單中,選取要指派給使用者或群組的角色,例如「專案檢視者」。
- 按一下「新增」。
使用 UI 移除角色繫結
不再需要存取權時,請移除成員和相關聯的角色、權限和存取權。
請按照下列步驟移除成員:
- 登入 GDC 氣隙裝置控制台。
- 選取專案。
- 按一下導覽選單中的「存取權管理」。
- 在「授權成員」清單中選取成員。
- 按一下 [Remove member]。
- 系統提示時,按一下「移除成員」加以確認。