ログイン

このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンス内のワークロードとリソースにアクセスして管理する方法について説明します。認証方法、Management API サーバーと Kubernetes クラスタの両方の kubeconfig ファイルの生成方法、セッションの非アクティブ状態の管理方法について説明します。これらのプロセスを理解することで、プロジェクトとワークロードへの安全で信頼性の高いアクセスが保証されます。

GDC コンソールまたは gdcloud CLI を使用してワークロードにアクセスします。

ログイン

GDC コンソールまたはクラスタにログインするには、次の手順を行います。

コンソール

新しいブラウザタブで次の URL を開いて、GDC エアギャップ アプライアンスのユーザー インターフェース(UI)にアクセスします。

https://GDC_URL

GDC_URL は、インフラストラクチャ オペレーター(IO)が提供する GDC へのアクセスに使用するドメイン名に置き換えます。URL を初めて開くと、インフラストラクチャ オペレーター(IO)がページを構成している場合、GDC は ID プロバイダのログインページにリダイレクトします。

たとえば、`org-1` という名前の組織のコンソールにログインすると、次のページが表示されます。org-1 プロジェクトのようこそ画面が表示されているコンソール。

CLI

アクセス権のあるクラスタには、すべてログインできます。すべてのクラスタの CLI ログイン プロセスは同じです。クラスタ名と関連する kubeconfig ファイルのみを指定し、各クラスタに個別にログインする必要があります。

ログインする前に、次のことを確認してください。

  • gdcloud CLI バイナリをダウンロードして、システムにインストールします。詳細については、gdcloud CLI をダウンロードするをご覧ください。
  • gdcloud CLI のデフォルト構成を設定して初期化します。ログイン構成エンドポイントの取得に使用される正しい組織 URL を設定してください。詳細については、gdcloud CLI のインストールをご覧ください。
  • 認証プラグイン gdcloud-k8s-auth-plugin をインストールします。詳細については、gdcloud CLI 認証をご覧ください。

クラスタにログインする手順は次のとおりです。

  1. gdcloud CLI インスタンスを認証してログインします。認証方法は次の 2 つです。

    • 標準のブラウザ ログイン: ブラウザからログインする場合は、この認証フローを使用します。

      gdcloud auth login
      
    • セカンダリ デバイスのログイン: メイン デバイスでブラウザを使用できない場合は、この認証フローを使用します。このフローでは、ブラウザ アクセス権のないメインのデバイスでログインを開始し、ブラウザ アクセス権のあるセカンダリ デバイスでログインを続行します。

      1. ブラウザのないメインのデバイスでログインを開始します。

        gdcloud auth login --no-browser
        

        プライマリ デバイスのコマンドは、手順 c でセカンダリ デバイスで実行する必要がある別の gdcloud コマンドを出力します。

      2. クラスタにログインするの手順 1 を繰り返して、セカンダリ デバイスに証明書をダウンロードします。

      3. 手順 a でプライマリ デバイスに表示されたコマンドを入力して、セカンダリ デバイスでのログインを完了します。

    この操作により、構成された ID プロバイダ(IdP)にログインするためのブラウザが開きます。初期の gdcloud CLI 設定時に設定したユーザーとパスワードを入力してログインします。

  2. ユーザー ID kubeconfig ファイルを変数としてエクスポートします。

    export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
    
  3. ユーザー ID を含む kubeconfig ファイルを生成します。

    gdcloud clusters get-credentials CLUSTER_NAME
    

    ユーザー ID を含む kubeconfig ファイルが生成されます。次の YAML ファイルに例を示します。

    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: <REDACTED>
        server: https://10.200.0.32:443
      name: cluster-name
    contexts:
    - context:
        cluster: cluster-name
        user: cluster-name-anthos-default-user
      name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
      user:
        exec:
            apiVersion: client.authentication.k8s.io/v1
            args:
            - --audience=root-admin
            command: gdcloud-k8s-auth-plugin
            env: null
            installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
            interactiveMode: Never
            provideClusterInfo: false
    
  4. クラスタにアクセスできることを確認するには、生成された kubeconfig ファイルを使用してユーザー ID でログインします。

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

ログアウト

GDC コンソールからログアウトする手順は次のとおりです。

コンソール

メニューバーの [ログアウト] をクリックします。

CLI

CLI からログアウトします。

gdcloud auth revoke

kubeconfig ファイルを手動で生成する

KRM API を直接呼び出して kubectl CLI でリソースを管理している場合は、管理するリソースのタイプに応じて、リソースをホストするクラスタの kubeconfig ファイルを生成する必要があります。必要な kubeconfig ファイルを特定するには、リソースのドキュメントをご覧ください。

リソースタイプに基づいて、該当する設定を完了します。

Management API サーバー リソース

次の手順に沿って、Management API サーバーの kubeconfig ファイルを生成します。

  1. MANAGEMENT_API_SERVER 環境変数を設定します。

    export MANAGEMENT_API_SERVER="root-admin"
    
  2. Management API サーバーの kubeconfig ファイルを生成し、認証情報を検証します。

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    コマンド rm ${KUBECONFIG:?} は、ホーム ディレクトリ内の既存の kubeconfig ファイルを削除します。新しい kubeconfig ファイルを生成すると、既存のファイルが上書きされます。既存のファイルを上書きまたは削除したくない場合は、別の安全な場所にバックアップしてください。

Kubernetes クラスタ リソース

ベアメタル Kubernetes クラスタの kubeconfig ファイルを生成する手順は次のとおりです。

  1. KUBERNETES_CLUSTER 環境変数を設定します。

    export KUBERNETES_CLUSTER="root-infra"
    
  2. Kubernetes クラスタの kubeconfig ファイルを生成し、認証情報を検証します。

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    コマンド rm ${KUBECONFIG:?} は、ホーム ディレクトリ内の既存の kubeconfig ファイルを削除します。新しい kubeconfig ファイルを生成すると、既存のファイルが上書きされます。既存のファイルを上書きまたは削除したくない場合は、別の安全な場所にバックアップしてください。

セッションの非アクティブ ログアウト

セッションで 15 分以上操作がないと、GDC コンソールと gdcloud CLI からログアウトされます。GDC では、セッションの非アクティブ状態とは、開いているセッション中にカーソルやキーボードの操作など、ユーザーによるアクティブな操作がない期間を指します。アクティブ セッションは、ユーザー アクティビティがある場合、最大 12 時間継続します。

コンソール

セッションが非アクティブになると、GDC コンソールからログアウトされます。GDC コンソールが非アクティブ状態のためにログアウトする 2 分前に、ログアウトを警告するダイアログが表示されます。

操作がないためユーザーをログアウトするまでの残り時間を示す 99 秒のタイマーが表示されたダイアログを示すコンソール UI。

操作がないためログアウトすると、次の画面が表示されます。

セッションのログアウトに関するテキストを含むバナーが表示されたログイン画面を示すコンソール UI: 「セッションが長時間アクティブでなかったため、システムからログアウトされました。もう一度ログインするか、管理者にお問い合わせください。」

GDC コンソールに再度ログインするには、ID プロバイダを選択してログイン認証情報を追加します。モニタリング ダッシュボードなどのサービスを使用しているときに、GDC コンソールが非アクティブ状態のためにログアウトした場合は、再度ログインしてアクセスしてください。

CLI

セッションが非アクティブになると、gdcloud CLI からログアウトします。gdcloud CLI からログアウトした後、コマンドを実行しようとすると、承認エラーが表示されます。

Error: error when creating kube client: unable to create k8sclient: Unauthorized

gdcloud CLI に再度ログインするには、ログインの CLI の手順に沿って操作します。

kubectl

gdcloud CLI は、セッションが非アクティブになると kubeconfig ファイルを期限切れにします。非アクティブ状態の後に kubectl コマンドを実行しようとすると、認証エラーが発生します。

error: You must be logged in to the server (Unauthorized)

再度ログインして kubeconfig ファイルを使用するには、ログインの CLI の手順に沿って操作します。セッションがタイムアウトするたびに、kubeconfig ファイルを再生成する必要があります。

ログインと新規ユーザーのアクティビティをモニタリングする

ログインなどのアクティビティは監査ログとしてエクスポートされます。監査ログの表示の詳細については、監査ログをご覧ください。