本文說明如何以 Google 群組成員的身分連線至 AWS 上的 GKE。
與為個別使用者建立授權相比,使用 Google 群組授予叢集存取權的效率更高。舉例來說,假設您想將 50 位使用者新增至叢集管理員群組、75 位使用者新增至編輯者群組,以及 100 位使用者新增至讀者群組。如要讓所有這些使用者連線至叢集,您必須在 Kubernetes 資訊清單檔案中為 225 位使用者建立 RBAC 規則。不過,啟用 Google 群組的叢集存取權可節省時間,因為您只需要為三個 Google 群組建立 RBAC 規則。
事前準備
如要以 Google 群組成員的身分連線至叢集,必須符合下列先決條件:
確認您擁有最新版的 Google Cloud CLI。如要瞭解如何更新 gcloud CLI,請參閱
gcloud components update
。使用 GKE on AWS 1.25 以上版本,這是透過連線閘道存取時的必要條件。
kubectl
使用 Google 群組連線至叢集
如要授權 Google 群組連線至 GKE on AWS,請按照下列步驟操作:
使用下列指令啟用
connectgateway
和cloudresourcemanager
API:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
將
PROJECT_ID
替換為 AWS 專案的 ID。如果專案網域中沒有
gke-security-groups
群組,請建立該群組。在
gke-security-groups
群組中建立一或多個子群組,用於叢集驗證。將使用者加入新建立的子群組。
如要使用連線閘道存取
kubectl
,您需要將 IAM 角色授予 Google 群組:為群組選取適當的角色。這個角色會決定群組與連線閘道的互動方式。角色可以是下列其中一個:
roles/gkehub.gatewayAdmin
、roles/gkehub.gatewayEditor
、roles/gkehub.gatewayReader
。(請注意,您並未在此授予叢集權限,該步驟會在稍後進行。在這裡,您只是要判斷群組使用者如何操控連線閘道。)執行下列指令,將角色授予群組:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=group:GROUP_NAME@DOMAIN \ --role=GATEWAY_ROLE
更改下列內容:
PROJECT_ID
:您的 Google 專案 IDGROUP_NAME
:要授予存取權的群組名稱DOMAIN
:您的 Google Workspace 網域GATEWAY_ROLE
:所選角色。例如roles/gkehub.gatewayAdmin
、roles/gkehub.gatewayEditor
或roles/gkehub.gatewayReader
。
在 Kubernetes 資訊清單中,定義每個 Google 群組在叢集中的權限。舉例來說,下列資訊清單會將叢集管理員角色授予 Google 群組
cluster-admin-team
:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: cluster-admin-team@example.com roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
將資訊清單儲存至檔案,然後執行下列指令,將資訊清單套用至叢集:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
更改下列內容:
KUBECONFIG_PATH
:kubeconfig
檔案的路徑。FILENAME
:您建立的資訊清單檔案名稱。
完成這些步驟後,特定 Google 群組的使用者就能連線至叢集。在上述範例中,屬於 Google 群組 cluster-admin-team
的使用者可以管理員身分連線至叢集。