Google グループを GKE on Azure に接続する
このドキュメントでは、Google グループのメンバーとして GKE on Azure に接続する方法について説明します。
Google グループを使用してクラスタにアクセス権を付与するほうが、個々のユーザーに別々の認可を作成するよりも効率的です。たとえば、クラスタ管理者グループに 50 人のユーザー、編集者グループに 75 人のユーザー、閲覧者グループに 100 人のユーザーを追加するとします。このすべてのユーザーがクラスタに接続できるようにするには、Kubernetes マニフェスト ファイルに 225 人のユーザーの RBAC ルールを作成する必要があります。ただし、Google グループを使用してクラスタへのアクセスを有効にすると、3 つの Google グループに RBAC ルールを作成するだけで済むため、時間を節約できます。
始める前に
Google グループのメンバーとしてクラスタに接続するには、次の前提条件を満たしている必要があります。
Google Cloud CLI が最新バージョンになっている。gcloud CLI の更新の詳細については、
gcloud components update
をご覧ください。GKE on Azure バージョン 1.25 以降を使用している。これは、Connect Gateway を使用した
kubectl
アクセスに必要です。
Google グループを使用してクラスタに接続する
Google グループの GKE on Azure への接続を認可する手順は次のとおりです。
次のコマンドを使用して
connectgateway
API とcloudresourcemanager
API を有効にします。gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
PROJECT_ID
は、Azure プロジェクトの ID に置き換えます。プロジェクトのドメインのグループとして
gke-security-groups
というグループを作成します(存在しない場合)。gke-security-groups
グループ内にクラスタ認証用のサブグループを 1 つ以上作成します。新しく作成したサブグループにユーザーを追加します。
Connect Gateway を使用した
kubectl
アクセスの場合、IAM ロールを Google グループに付与する必要があります。グループに適切なロールを選択します。このロールにより、グループが Connect Gateway とやり取りする方法が決まります。ロールは
roles/gkehub.gatewayAdmin
、roles/gkehub.gatewayEditor
、roles/gkehub.gatewayReader
のいずれかです(クラスタに対して権限を付与することはありません。このステップは後で行います。ここでは、グループのユーザーが Connect Gateway を操作する方法を決定します)。次のコマンドを実行して、グループにロールを付与します。
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
に属するユーザーが管理者としてクラスタに接続できます。