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 を使用して認証を行うことができます。
- Security Assertion Markup Language(SAML)。GKE Identity Service では、SAML を使用して認証を行うことができます。
サポートされるクラスタタイプ
プロトコル | 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 プロバイダのクライアント アプリケーションとして登録され、クラスタ管理者がクラスタごとに設定します。
ユーザーがコマンドラインからクラスタにログインする際は、まず 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 をクラスタごとに設定します。
ユーザーがコマンドラインからクラスタにログインする際は、まず 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 の設定
- GKE Identity Service に OIDC プロバイダを構成する
- OIDC を使用して GKE Identity Service のクラスタを設定する
- GKE Identity Service のユーザー アクセスを設定する
LDAP の設定
- GKE Identity Service に LDAP プロバイダを構成する
- LDAP を使用して GKE Identity Service にクラスタを設定する
- GKE Identity Service のユーザー アクセスを設定する
SAML の設定
- GKE Identity Service に SAML プロバイダを構成する
- SAML で GKE Identity Service のクラスタを設定する
- 別の認証プロセスで GKE Identity Service のユーザー アクセスを設定する
フリートレベルの設定
Google Cloud のフリートは、機能を有効にし、それらのクラスタ全体の構成を更新できるようにするクラスタの論理グループです。サポートされているクラスタタイプでは、プロジェクト フリート内のクラスタに GKE Identity Service を設定できます。フリートレベルの設定では、認証構成を複数のクラスタに一元的に適用できます。構成は、Google Cloud によって維持されます。
フリートレベルの設定でサポートされるクラスタタイプは次のとおりです。
- GKE on VMware バージョン 1.8.2 以降
- GKE on Bare Metal バージョン 1.8.3 以降
- GKE on Azure
- Kubernetes 1.21 以降を実行している GKE on AWS
- GKE 用 Identity Service が有効になっている Google Cloud 上の GKE クラスタ。
フリートレベルの設定では、pre-GA 機能として次のクラスタタイプと環境がサポートされています。
- Amazon Elastic Kubernetes Service(Amazon EKS)接続クラスタ
設定の詳細については、以下をご覧ください。
次のステップ
- プラットフォーム管理者またはクラスタ管理者であり、GKE Identity Service を使用するようにクラスタを構成することを必要とされる場合は、上に示した該当する設定ガイドの説明に従って操作してください。
- デベロッパーまたはその他のクラスタ ユーザーであり、既存の ID を使用して GKE クラスタにアクセスすることを必要とされる場合は、GKE Identity Service を使用してクラスタにアクセスするの説明に従って操作してください。