GKE Identity Service の導入

GKE Identity Service は、認証を目的とする既存の ID ソリューションを複数の GKE Enterprise 環境で利用できるようにする認証サービスです。ユーザーは、コマンドラインまたは Google Cloud コンソールからログインして GKE クラスタを使用できます。その際にすべての操作を既存の ID プロバイダを使用して行うことができます。

OIDC または LDAP プロバイダではなく Google ID をすでに使用しているか、使用して GKE クラスタにログインする必要がある場合は、Connect Gateway を使用した登録済みクラスタへの接続をご覧ください。

サポートされる ID プロバイダ

GKE Identity Service では、次のプロトコルを使用する ID プロバイダをサポートします。

  • OpenID Connect(OIDC)。ここでは、Microsoft を含む一部の一般的な OpenID プロバイダに関する特定の設定手順を説明しますが、OIDC を実装する任意のプロバイダを使用できます。
  • Lightweight Directory Access Protocol(LDAP)。GKE Identity Service では、Active Directory または LDAP サーバーで LDAP を使用して認証を行うことができます。

サポートされるクラスタタイプ

プロトコル GKE on VMware GKE on Bare Metal GKE on AWS GKE on Azure EKS 接続クラスタ GKE
OIDC
LDAP
SAML

他の接続クラスタのタイプは、GKE Identity Service ではサポートされません。

仕組み

GKE Identity Service を使用すると、ユーザーは通常の組織ユーザー名とパスワードを使用して、構成済みのクラスタにログインできます。この具体的な仕組みは、使用する ID プロバイダの種類によって異なります。

OIDC

OIDC プロバイダを使用する場合は、GKE Identity Service 自体が ID プロバイダのクライアント アプリケーションとして登録され、クラスタ管理者がクラスタごとに設定します。

基本的な AIS フローを示す図

ユーザーがコマンドラインからクラスタにログインする際は、まず gcloud anthos auth login コマンドを実行して、ID プロバイダ用のログイン情報を入力する必要があります。これによって、プロバイダから ID トークンを取得します。このトークンは、ユーザーの kubeconfig ファイルに追加され、kubectl でクラスタにリクエストを行うときに使用されます。次に、Kubernetes API サーバーが GKE Identity Service を使用して ID トークンを検証し、クラスタへのアクセスを許可(または拒否)します。必要に応じて、GKE Identity Service では、ID プロバイダからセキュリティ グループ メンバーシップ情報を取得することもできます。

クラスタ管理者は、必要に応じて Kubernetes ロールベース アクセス制御(RBAC)を使用して、詳細なアクセス制御を追加できます。

ユーザーは、Google Cloud コンソールから OIDC でログインすることもできます。この場合は、ログイン情報を入力するために ID プロバイダの UI にリダイレクトされた後、再び Google Cloud コンソールに戻されてクラスタのリソースを引き続き表示、管理できます。

LDAP

LDAP プロバイダでは、GKE Identity Service の LDAP クライアント認証情報の提供を含め、クラスタ管理者が GKE Identity Service をクラスタごとに設定します。

LDAP AIS フローを示す図

ユーザーがコマンドラインからクラスタにログインする際は、まず gcloud anthos auth login コマンドを実行して、ID プロバイダ用のログイン情報を入力する必要があります。リクエストは GKE Identity Service に送信され、Anthos Identity Service によって LDAP サーバーにクエリが行われて、ユーザー属性が有効期間の短いトークン(STS)で返されます。これにより、ユーザーの LDAP 認証情報を平文でローカルに保存する必要がありません。このトークンは、ユーザーの kubeconfig ファイルに追加され、kubectl でクラスタにリクエストを行うときに使用されます。次に、Kubernetes API サーバーが GKE Identity Service を使用してトークンからユーザーとグループの情報を取得して、クラスタへのアクセスを許可(または拒否)します。デフォルトで、トークンは 1 時間持続します。その後は、ユーザーは再度ログインする必要があります。

クラスタ管理者は、必要に応じて Kubernetes ロールベース アクセス制御(RBAC)を使用して、詳細なアクセス制御を追加できます。

設定方法

クラスタの種類と環境に応じて、クラスタ管理者は GKE Identity Service を各クラスタで個別に、またはプロジェクト フリート レベルで設定できます。

クラスタごとの設定

クラスタ上の GKE Identity Service は、オンプレミスの GKE クラスタ(VMware とベアメタルの両方)と、AWS、または Azure の GKE クラスタ単位で設定できます。詳細については、次のガイドをご覧ください。

OIDC の設定

LDAP の設定

SAML の設定

フリートレベルの設定

Google Cloud のフリートは、機能を有効にし、それらのクラスタ全体の構成を更新できるようにするクラスタの論理グループです。サポートされているクラスタタイプでは、プロジェクト フリート内のクラスタに GKE Identity Service を設定できます。フリートレベルの設定では、認証構成を複数のクラスタに一元的に適用できます。構成は、Google Cloud によって維持されます。

フリートレベルの設定でサポートされるクラスタタイプは次のとおりです。

フリートレベルの設定では、pre-GA 機能として次のクラスタタイプと環境がサポートされています。

設定の詳細については、以下をご覧ください。

次のステップ

  • プラットフォーム管理者またはクラスタ管理者であり、GKE Identity Service を使用するようにクラスタを構成することを必要とされる場合は、上に示した該当する設定ガイドの説明に従って操作してください。
  • デベロッパーまたはその他のクラスタ ユーザーであり、既存の ID を使用して GKE クラスタにアクセスすることを必要とされる場合は、GKE Identity Service を使用してクラスタにアクセスするの説明に従って操作してください。