本文將說明三種連線至 AKS 附加叢集的方法:
這三種連線至已註冊叢集的方法,都是透過名為「連線閘道」的 Google 服務啟用。如要進一步瞭解 Connect Gateway,請參閱「使用 Connect Gateway 連線至已註冊的叢集」。
本文適用於想要設定、監控及管理雲端基礎架構的 IT 管理員和操作人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。
事前準備
執行任何方法前,請務必先附加叢集。 詳情請參閱「連結 AKS 叢集」。
如要使用方法 2 或方法 3,請先滿足其他必要條件。詳情請參閱以下各節說明。
開始方法 2 之前
如要使用方法 2 連線至附加的叢集,請確認符合下列必要條件:
- 最新版 Google Cloud CLI。如要瞭解如何更新 gcloud CLI,請參閱
gcloud components update
。 - 附加叢集版本 1.26.0-gke.8、1.27.0-gke.5、1.28.0-gke.2 以上版本。
開始方法 3 之前
如要使用方法 3 連線至附加的叢集,請確認您符合下列必要條件:
確認您擁有最新版的 Google Cloud CLI。如要瞭解如何更新 gcloud CLI,請參閱
gcloud components update
。請確認您使用的是連結叢集 1.27.0-gke.5、1.28.0-gke.2 以上版本。
設定員工身分聯盟 (讓外部使用者或群組可以使用 GKE 連結叢集 API):
- 如果是 Azure 使用者,請參閱「設定與 Azure AD 的工作團隊身分聯盟」。
- 如果您是 Okta 使用者,請參閱「使用 Okta 設定員工身分聯盟」。
- 如果是其他平台的使用者,請參閱「設定員工身分聯盟」。
選用:為外部使用者或群組指派適當的 Identity and Access Management (IAM) 角色。只有在您想授予使用者或群組建立或更新叢集的權限時,才需要執行這個步驟;如要存取叢集,則不需要執行這個步驟。
請注意,角色是一組權限。將角色指派給實體 (使用者、群組或服務帳戶) 時,您會授予該實體角色包含的所有權限。
使用者
如要為個別使用者指派角色,請按照下列步驟操作:
gkemulticloud.admin
gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
更改下列內容:
群組
如要為群組指派角色,請指派
gkemulticloud.admin
角色:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 ID。WORKFORCE_POOL_ID
:用來在 Google Cloud中專屬識別工作團隊身分集區的 ID。格式化 ID 時,請務必遵循 IAM 文件中「查詢參數」提供的建議做法。GROUP_ID
:可專屬識別外部群組的 ID。
如要進一步瞭解 GKE 連結叢集所需的 API 角色和權限,請參閱「API 角色和權限」。
方法 1:以 Google 使用者身分連線至附加的叢集
如要以 Google 使用者身分連線至附加叢集,請按照下列步驟操作:
使用下列指令啟用
connectgateway
和cloudresourcemanager
API:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
將
PROJECT_ID
替換為專案 ID。 Google Cloud自動或手動設定及套用 RBAC 規則:
自動方法:如果您在附加叢集時,於
gcloud container attached clusters register
指令的--admin-users
欄位中指定 Google 使用者,系統會自動授予這些使用者叢集的管理員權限。因此可以略過這個步驟。手動方法:建立 Kubernetes YAML 資訊清單,為個別 Google 使用者手動設定 RBAC 規則。詳情請參閱「使用 RBAC 授權」。
使用下列指令取得 Kubernetes
kubeconfig
設定檔:gcloud container fleet memberships get-credentials CLUSTER_NAME
將
CLUSTER_NAME
替換為您要取得連線憑證的叢集名稱。
完成這些步驟後,您就能以 Google 使用者身分連線至附加叢集。
方法 2:使用 Google 群組連結至附加的叢集
這個方法可讓您以 Google 群組成員身分連線至附加的叢集。換句話說,您授予 Google 群組叢集存取權後,該 Google 群組的所有使用者都能存取叢集。
使用 Google 群組授予叢集存取權,比為個別使用者建立授權更有效率。舉例來說,假設您想將 50 位使用者新增至叢集管理員群組、75 位使用者新增至編輯者群組,以及 100 位使用者新增至讀者群組。如本文件所述的方法 1,您必須在 Kubernetes 資訊清單檔案中為 225 位使用者建立 RBAC 規則。不過,方法 2 只需要為三個 Google 群組建立 RBAC 規則,因此可節省時間。
如要授權 Google 群組連線至已連結的叢集,請按照下列步驟操作:
使用下列指令啟用
connectgateway
和cloudresourcemanager
API:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
將
PROJECT_ID
替換為專案 ID。Google Cloud如果專案網域中沒有
gke-security-groups
群組,請建立該群組。在
gke-security-groups
群組中建立一或多個子群組,用於叢集驗證。將使用者加入新建立的子群組。
將 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
的使用者可以管理員身分連線至叢集。
方法 3:在附加或更新叢集時授予外部身分存取權
方法 3 會在您附加或更新叢集時,授予外部身分的存取權。
如要連結 AKS 叢集,請按照「連結 AKS 叢集」一文中的步驟操作。如要更新 AKS 叢集,請按照「更新 AKS 叢集」一文中的步驟操作。
執行 gcloud CLI 指令來註冊或更新叢集時,請指定 admin-users
和/或 admin-groups
參數,如下所示:
gcloud container attached clusters [register|update] CLUSTER_NAME \
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
更改下列內容:
CLUSTER_NAME
:叢集名稱。WORKFORCE_POOL_ID
:用來在 Google Cloud中專屬識別工作團隊身分集區的 ID。格式化 ID 時,請務必遵循 IAM 文件中「查詢參數」提供的建議做法。SUBJECT_VALUE
:可專屬識別外部使用者的 ID。舉例來說,ID 可以是電子郵件地址,例如alex@cymbalgroup.com
。GROUP_ID
:可專屬識別外部群組的 ID。
後續步驟
如要透過 Google Cloud 控制台使用 Cloud Identity 管理叢集,請參閱使用 Google Cloud 身分登入。