認証の概要
このページでは、GKE on Azure が Google Cloud に対する認証とクラスタに対するユーザー認証を処理する方法について説明します。
GKE on Azure が Azure に接続する方法
GKE Multi-Cloud API は、AzureClient オブジェクトを使用して Azure に対する認証を行います。クライアントを作成すると、Google により X.509 鍵ペアが生成されます。この公開鍵を Azure Active Directory(Azure AD)にアップロードします。
詳細については、AzureClient を作成するをご覧ください。
認証
GKE Multi-Cloud API の認証
GKE Multi-Cloud API を使用して、クラスタとノードプールを作成、更新、削除します。他の Google Cloud APIs と同様、この API は REST、Google Cloud CLI、Google Cloud コンソールで使用できます。
より詳しい内容については、Google Cloud 認証の概要と GKE Multi-Cloud API のリファレンス ドキュメントをご覧ください。
Kubernetes API 認証
kubectl
コマンドライン ツールは、ワークロードのデプロイやロードバランサの構成などのクラスタ オペレーションを実行するために使用できます。kubectl
ツールは、クラスタのコントロール プレーンの Kubernetes API に接続します。この API を呼び出すには、承認済みの認証情報で認証する必要があります。
認証情報の取得には、次のいずれかの方法を使用できます。
Google ID。ユーザーは、Google Cloud ID を使用してログインできます。すでにユーザーが Google ID で Google Cloud にアクセスできる場合は、この方法を使用します。
GKE Service。ユーザーは、OpenID Connect(OIDC)を使用してログインできます。
GKE Service では、Okta、Active Directory フェデレーション サービス(ADFS)、任意の OIDC 準拠の ID プロバイダなどの ID プロバイダを使用できます。
認可
GKE on Azure には、2 つのアクセス制御(GKE Multi-Cloud API とロールベース アクセス制御(RBAC))があります。このセクションでは、これらの方法の違いについて説明します。
クラスタとワークロードの保護には、階層的なアプローチをおすすめします。ユーザーとワークロードに付与するアクセスレベルに対して最小権限の原則を適用できます。柔軟性とセキュリティの適切なレベルについてトレードオフを見極める必要があります。
GKE Multi-Cloud API アクセス制御
GKE Multi-Cloud API を使用すると、クラスタ管理者はクラスタとノードプールを作成、更新、削除できます。API の権限は、Identity and Access Management(IAM)で管理します。この API を使用するには、適切な権限が必要です。各オペレーションに必要な権限については、API のロールと権限をご覧ください。IAM では、ロールを定義して、プリンシパルに割り当てることができます。ロールは権限の集合体であり、ロールをプリンシパルに割り当てることで、1 つ以上の Google Cloud リソースへのアクセス権を制御できます。
組織、フォルダ、プロジェクトにクラスタやノードプールを作成すると、その組織、フォルダ、プロジェクトで適切な権限を持つユーザーがそれを変更できます。たとえば、Google Cloud プロジェクト レベルでクラスタの削除権限をユーザーに付与した場合、そのユーザーはそのプロジェクト内のすべてのクラスタを削除できます。詳細については、Google Cloud リソース階層と、IAM ポリシーの作成をご覧ください。
Kubernetes API アクセス制御
Kubernetes API を使用すると、Kubernetes オブジェクトを管理できます。Kubernetes API のアクセス制御を管理するには、ロールベース アクセス制御(RBAC)を使用します。詳細については、GKE ドキュメントでロールベース アクセス制御の構成をご覧ください。
管理者アクセス
gcloud CLI を使用してクラスタを作成する場合、デフォルトでは、GKE Multi-Cloud API によってユーザー アカウントが管理者として追加され、クラスタへの完全な管理者権限を付与する適切な RBAC ポリシーが作成されます。別のユーザーを構成するには、クラスタの作成または更新時に --admin-users
フラグを渡します。--admin-users
フラグには、クラスタを管理できるすべてのユーザーを含める必要があります。gcloud CLI には、クラスタを作成するユーザーが含まれていません。
Google Cloud コンソールを使用して管理者ユーザーを追加することもできます。詳細については、クラスタを更新するをご覧ください。
クラスタのアクセス権の構成を確認するには、次のコマンドを実行します。
kubectl describe clusterrolebinding gke-multicloud-cluster-admin
管理者ユーザーがプロジェクト オーナーでない場合は、Kubernetes API サーバーにアクセスするための RBAC ポリシーに加えて、特定の IAM ロールを付与し、管理者ユーザーが Google ID を使用して認証できるようにする必要があります。クラスタへの接続方法の詳細については、クラスタに接続して認証するをご覧ください。
次のステップ
- OIDC を設定する。GKE Service で ID を管理するをご覧ください。
- クラスタに接続して認証する。