Anthos clusters on VMware(GKE On-Prem)は、コマンドラインを使用してユーザー クラスタに対して認証を行えるよう、OpenID Connect(OIDC)をサポートしています。次のトピックをご覧ください。
Google Cloud コンソールからログインするため、Anthos clusters on VMware では Kubernetes サービス アカウントの署名なしトークンの使用をサポートしています。Google Cloud Console からクラスタにログインするをご覧ください。
このトピックは、OAuth 2.0 と OpenID 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 プロバイダです。
gcloud CLI を使用して Kubernetes API サーバーを呼び出す
クラスタを認証するために gcloud anthos auth login
コマンドを実行すると、リクエストが Kubernetes API サーバーに送信されます。
そのためには、OIDC ID トークンが kubeconfig
ファイルに保存されている必要があります。Anthos clusters on VMware は、Google Cloud CLI の gcloud CLI を使用し、kubeconfig
ファイル内の ID トークンと他の OIDC 値をリクエストして取得します。
Kubernetes API サーバーと ID トークン
クラスタで認証されると、gcloud CLI の kubectl
CLI を使用して操作できます。kubectl
がユーザーに代わって Kubernetes API サーバーを呼び出すと、API サーバーによって OpenID プロバイダの公開証明書を使用したトークンの検証が行われます。次に、API サーバーはトークンを解析して、ユーザーの ID とセキュリティ グループを確認します。
API サーバーは、ユーザーのセキュリティ グループをクラスタのロールベースのアクセス制御(RBAC)ポリシーと比較することで、この特定の呼び出しを承認します。