本文說明如何以 Google 群組成員的身分連線至 AWS 上的 GKE。
使用 Google 群組授予叢集存取權,比為個別使用者建立授權更有效率。舉例來說,假設您想將 50 位使用者新增至叢集管理員群組、75 位使用者新增至編輯者群組,以及 100 位使用者新增至讀者群組。如要讓所有這些使用者連線至叢集,您必須在 225 位使用者的 Kubernetes 資訊清單檔案中建立 RBAC 規則。不過,啟用 Google 群組的叢集存取權可節省時間,因為您只需要為三個 Google 群組建立 RBAC 規則。
事前準備
如要以 Google 群組成員的身分連線至叢集,必須符合下列必要條件:
確認您擁有最新版的 Google Cloud CLI。如要瞭解如何更新 gcloud CLI,請參閱
gcloud components update。使用 1.25 以上版本的 GKE on AWS,這是透過連線閘道存取時的必要條件。
kubectl
使用 Google 群組連線至叢集
如要授權 Google 群組連線至 GKE on AWS,請按照下列步驟操作:
使用下列指令啟用
connectgateway和cloudresourcemanagerAPI: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 的使用者可以管理員身分連線至叢集。