以前のバージョンの GKE On-Prem のドキュメントを表示しています。最新のドキュメントをご覧ください

認証

GKE On-Prem は、コマンドラインを使用してユーザー クラスタに対する認証を行うための OpenID Connect(OIDC)をサポートしています。次のトピックをご覧ください。

Google Cloud Console 経由でログインする場合、GKE On-Prem は Kubernetes サービス アカウントの署名なしトークンを使用してサポートします。ログインをご覧ください。

このトピックは、OAuth 2.0OpenID Connect について理解していることを前提としています。 また、OpenID 認証におけるスコープクレームについても十分に理解しておく必要があります。

概要

OIDC を使用すると、組織内の標準的な手順に従って Kubernetes クラスタへのアクセスを管理して、従業員アカウントの作成、有効化、無効化を行うことが可能です。また、組織のセキュリティグループを使用して、Kubernetes クラスタまたはクラスタ内の特定のサービスへのアクセスを設定することもできます。

  • ユーザーは、ユーザー名とパスワードを提示して OpenID プロバイダにログインします。

  • OpenID プロバイダによりユーザーの ID トークンが発行されます。トークンはプロバイダによって署名されます。

  • アプリケーションがユーザーに代わって動作して、Kubernetes API サーバーに HTTPS リクエストを送信します。アプリケーションは、リクエストヘッダーにユーザーの ID トークンを含めます。

  • Kubernetes API サーバーにより、プロバイダの証明書を使用してトークンが検証されます。

企業が Active Directory フェデレーションサービス(ADFS)サーバーを利用している場合、ADFS サーバーを OpenID プロバイダとして使用できます。もう一つの方法は、OpenID プロバイダとしてサードパーティを使用することです。たとえば、Google、Microsoft、Facebook、Twitter はすべて OpenID プロバイダです。

OIDC の Kubectl プラグインを使用した Kubernetes API サーバーの呼び出し

通常、ユーザーがkubectlコマンドを入力すると、kubectlは Kubernetes API サーバーを呼び出します。

この設定を機能させるためには、ユーザーの ID トークンが kubeconfig ファイルに含まれている必要があります。 GKE On-Prem には、トークンと他の OIDC 値を kubeconfig に含めるための Kubectl Plugin for OIDC が用意されています。

Kubernetes API サーバーと ID トークン

kubectl がユーザーに代わって Kubernetes API サーバーを呼び出すと、API サーバーによって OpenID プロバイダの公開証明書を使用したトークンの検証が行われます。 次に、API サーバーはトークンを解析して、ユーザーの ID とセキュリティ グループを確認します。

API サーバーは、ユーザーのセキュリティ グループをクラスタのロールベースのアクセス制御(RBAC)ポリシーと比較することで、この特定の呼び出しを承認します。