このページでは、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` という名前の組織のコンソールにログインすると、次のページが表示されます。
CLI
アクセス権のあるクラスタには、すべてログインできます。すべてのクラスタの CLI ログイン プロセスは同じです。クラスタ名と関連する kubeconfig
ファイルのみを指定し、各クラスタに個別にログインする必要があります。
ログインする前に、次のことを確認してください。
- gdcloud CLI バイナリをダウンロードして、システムにインストールします。詳細については、gdcloud CLI をダウンロードするをご覧ください。
- gdcloud CLI のデフォルト構成を設定して初期化します。ログイン構成エンドポイントの取得に使用される正しい組織 URL を設定してください。詳細については、gdcloud CLI のインストールをご覧ください。
- 認証プラグイン
gdcloud-k8s-auth-plugin
をインストールします。詳細については、gdcloud CLI 認証をご覧ください。
クラスタにログインする手順は次のとおりです。
gdcloud CLI インスタンスを認証してログインします。認証方法は次の 2 つです。
標準のブラウザ ログイン: ブラウザからログインする場合は、この認証フローを使用します。
gdcloud auth login
セカンダリ デバイスのログイン: メイン デバイスでブラウザを使用できない場合は、この認証フローを使用します。このフローでは、ブラウザ アクセス権のないメインのデバイスでログインを開始し、ブラウザ アクセス権のあるセカンダリ デバイスでログインを続行します。
ブラウザのないメインのデバイスでログインを開始します。
gdcloud auth login --no-browser
プライマリ デバイスのコマンドは、手順 c でセカンダリ デバイスで実行する必要がある別の
gdcloud
コマンドを出力します。クラスタにログインするの手順 1 を繰り返して、セカンダリ デバイスに証明書をダウンロードします。
手順 a でプライマリ デバイスに表示されたコマンドを入力して、セカンダリ デバイスでのログインを完了します。
この操作により、構成された ID プロバイダ(IdP)にログインするためのブラウザが開きます。初期の gdcloud CLI 設定時に設定したユーザーとパスワードを入力してログインします。
ユーザー ID
kubeconfig
ファイルを変数としてエクスポートします。export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
ユーザー 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
クラスタにアクセスできることを確認するには、生成された
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 ファイルを生成します。
MANAGEMENT_API_SERVER
環境変数を設定します。export MANAGEMENT_API_SERVER="root-admin"
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 ファイルを生成する手順は次のとおりです。
KUBERNETES_CLUSTER
環境変数を設定します。export KUBERNETES_CLUSTER="root-infra"
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 分前に、ログアウトを警告するダイアログが表示されます。
操作がないためログアウトすると、次の画面が表示されます。
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 ファイルを再生成する必要があります。
ログインと新規ユーザーのアクティビティをモニタリングする
ログインなどのアクティビティは監査ログとしてエクスポートされます。監査ログの表示の詳細については、監査ログをご覧ください。