認証

GKE on AWS では、次の認証方法がサポートされています。

  • Connect
  • OpenID Connect(OIDC)

Connect

Connect で Google Cloud コンソールを使用してログインするために、GKE on AWS では Kubernetes サービス アカウントの署名なしトークンを使用できます。詳細については、Google Cloud コンソールからクラスタにログインするをご覧ください。

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

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

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

OIDC

GKE on AWS は、GKE Identity Service を使用した OIDC 認証をサポートしています。GKE Identity Service は多くの ID プロバイダをサポートしています。詳細については、サポートされている ID プロバイダをご覧ください。

概要

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

一般的な OIDC ログインのフローは次のとおりです。

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

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

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

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

gcloud CLI でログインする

gcloud anthos auth login コマンドを実行して、クラスタを認証します。gcloud CLI は、Kubernetes API サーバーへのリクエストを認証します。

gcloud CLI を使用するには、OIDC ID トークンが kubeconfigファイルに保存されている必要があります。gcloud anthos create-login-config を使用して kubeconfig ファイルにトークンを追加します。GKE on AWS は、gcloud CLI ツールを使用し、kubeconfig ファイル内の ID トークンと他の OIDC 値をリクエストして取得します。