ユーザー アクセスの認証方法を設定する

このドキュメントは、GKE Identity Service のクラスタをすでに構成しているクラスタ管理者を対象としています。ここでは、組織のデベロッパーと他のユーザー用に構成したクラスタへのユーザー アクセスを設定して管理する方法について説明します。

クラスタへのユーザー アクセスを設定するための認証方法は 2 種類あります。

  • FQDN アクセスで設定する(推奨): この方法では、ユーザーはクラスタの Kubernetes API サーバーの完全修飾ドメイン名(FQDN)を使用して、GKE Identity Service サーバーで直接認証できます。詳細については、FQDN アクセスを設定するをご覧ください。
  • ファイルベースのアクセスで設定する: この方法では、ログイン構成ファイルを生成してクラスタ ユーザーに配布します。ユーザーは、このファイルを使用して gcloud 認証コマンドで構成済みのクラスタにログインできます。詳細については、ファイルベースのアクセスを設定するをご覧ください。

FQDN アクセスを設定する(推奨)

このセクションでは、認証に使用するサーバーの URL(FQDN)をユーザーに提供し、ユーザー ログイン アクセスを設定する方法について説明します。認証フローにより、ユーザーは IdP でログインし、クラスタへのアクセス用に kubeconfig ファイルに追加されるトークンを受け取ります。この認証方法がサポートされるクラスタは、バージョン 1.29 以降の VMware およびベアメタル上のオンプレミス クラスタ(Google Distributed Cloud)のみです。他のクラスタタイプはサポートされません。サポートされている古いソフトウェア バージョンを使用するオンプレミス クラスタまたは他のクラスタタイプの認証を設定する場合は、ファイルベースのアクセスを設定します。

FQDN をユーザーと共有する前に、FQDN の DNS 設定や、ID プロバイダへの登録の一環としての FQDN の提供など、適切な設定が完了していることを確認してください。

FQDN をユーザーと共有する

クラスタ管理者は、構成ファイルの代わりに、クラスタの Kubernetes API サーバーの FQDN をユーザーと共有できます。ユーザーはこの FQDN を使用してクラスタにログインできます。ログインの URL 形式は APISERVER-URL です。この URL には、API サーバーの FQDN が含まれます。

APISERVER-URL の形式の例は https://apiserver.company.com です。

Identity Service オプションを構成する

このオプションを使用すると、トークンの有効期間を構成できます。ClientConfig CR の IdentityServiceOptions には、トークンの有効期間(分単位)を構成できる sessionDuration パラメータがあります。sessionDuration パラメータの最小値は 15 分、最大値は 1,440 分(24 時間)です。

ClientConfig CR の例を次に示します。

spec:
    IdentityServiceOptions:
      sessionDuration: INT

ここで、INT はセッション継続時間(分単位)です。

ファイルベースのアクセスを設定する

FQDN アクセスの代わりに、クラスタ管理者はログイン構成ファイルを生成してクラスタ ユーザーに配布できます。このオプションは、FQDN アクセスをサポートしていないバージョンまたはタイプのクラスタ認証を設定する場合に使用できます。このファイルを使用すると、ユーザーは選択されたプロバイダを使用してコマンドラインからクラスタにアクセスできます。この認証方法は、OIDC プロバイダと LDAP プロバイダでのみサポートされています。

ログイン構成ファイルを生成する

コンソール

フリートレベルの設定のみ)

表示された gcloud コマンドをコピーして実行し、ファイルを生成します。

gcloud

gcloud CLI を使用してクラスタを構成した場合や、ファイルを再度生成する必要がある場合は、次のコマンドを実行してファイルを生成します。

gcloud anthos create-login-config --kubeconfig=KUBECONFIG

ここで、KUBECONFIG はクラスタの kubeconfig ファイルのパスです。kubeconfig に複数のコンテキストがある場合は、現行のコンテキストが使用されます。コマンドを実行する前に、現在のコンテキストを正しいクラスタにリセットすることが必要になる場合があります。

その他のオプション パラメータなど、このコマンドのリファレンス一覧の詳細については、Google Cloud CLI リファレンス ガイドをご覧ください。

ログイン構成ファイルのデフォルト名は kubectl-anthos-config.yaml です。これは、Google Cloud CLI がファイルを使用してログインするときに想定する名前です。これをデフォルト以外の名前に変更する場合は、ログイン構成の配布の関連セクションをご覧ください。

ユーザー アクセスに関する問題のトラブルシューティングについては、ユーザー アクセスの問題のトラブルシューティングをご覧ください。

ログイン構成の配布

構成ファイルを配布する方法は次のとおりです。

  • アクセス可能な URL でファイルをホスティングする。gcloud anthos auth login を実行するときに --login-config フラグを使用してこの場所を指定するだけで、Google Cloud CLI がファイルを取得するように設定できます。

    安全なホストでファイルをホスティングすることを検討してください。PEM 証明書を使用して安全な HTTPS アクセスを確立する方法については、gcloud CLI の --login-config-cert フラグをご覧ください。

  • ファイルを保存したローカルマシン上の場所に関する情報とともに、各ユーザーにファイルを手動で提供する。Google Cloud CLI では、OS 固有のデフォルトの場所にファイルが存在することを想定しています。ファイルにデフォルト以外の名前または場所が指定されている場合、クラスタにコマンドを実行するときに、ユーザーは --login-config フラグを使用して構成ファイルの場所を指定する必要があります。ユーザーがファイルを保存する手順については、GKE Identity Service を使用したクラスタへのアクセスをご覧ください。

  • 内部ツールを使用して認証構成ファイルを各ユーザーのマシンに push します。Google Cloud CLI では、ユーザーの OS 別に次の場所にファイルがあると想定しています。

    Linux

    $HOME/.config/google/anthos/kubectl-anthos-config.yaml

    macOS

    $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

    Windows

    %APPDATA%\google\anthos\kubectl-anthos-config.yaml