サービス アカウント キーをローテーションする

GKE on Bare Metal のサービス アカウント キーをローテーションするには、bmctl コマンドを使用して既存のクラスタ認証情報を更新します。このサービス アカウント キーのローテーションは、認証情報を更新するための通常のプロセスの一部として行われる場合もあれば、キーの漏洩の可能性に応じて行われる場合もあります。クラスタ認証情報を更新すると、新しい情報は、管理クラスタまたはハイブリッド クラスタに渡されるか、管理クラスタが管理しているユーザー クラスタに自動的に転送されます。

更新可能なクラスタ認証情報

GKE on Bare Metal クラスタを作成する際、複数の認証情報が必要になります。管理クラスタ、スタンドアロン クラスタ、ハイブリッド クラスタを作成する際に、クラスタ構成で認証情報を設定します。前述のようにユーザー クラスタは、管理クラスタ(または管理クラスタとして動作するハイブリッド クラスタ)によって管理され、管理クラスタからの同じ認証情報を再利用します。

クラスタおよびさまざまなクラスタ タイプの作成の詳細については、インストールの概要: デプロイメント モデルの選択をご覧ください。

bmctl コマンドを使用して、GKE on Bare Metal クラスタ内の次の認証情報と、それに対応するシークレットを更新できます。

  • SSH 秘密鍵: ノードへのアクセスに使用されます。
  • Container Registry キーanthos-baremetal-gcr): イメージの pull のために Container Registry での認証に使用するサービス アカウント キー。
  • Connect Agent サービス アカウント キーanthos-baremetal-connect): Connect Agent Pod で使用されるサービス アカウント キー。
  • Connect レジストリ サービス アカウント キーanthos-baremetal-register): クラスタの登録または登録解除の際に Hub での認証に使用されるサービス アカウント キー。
  • Cloud Operations サービス アカウント キーanthos-baremetal-cloud-ops): Google Cloud Observability(ロギングとモニタリング)API で認証するためのサービス アカウント キー。

bmctl を使用した認証情報の更新

クラスタを作成すると、GKE on Bare Metal が認証情報キーに基づいて Kubernetes Secret を作成します。新しいキーを生成する場合は、次の手順に従って、対応する Secret を更新する必要があります。キーの名前またはパスが変更された場合は、対応するクラスタ構成ファイルも更新する必要があります。

  1. 更新する認証情報に新しい値を準備します。

    • Google Cloud CLI または Google Cloud コンソールを使用して、新しい Google サービス アカウント キーを生成できます。

    • 管理ワークステーションで新しい SSH 秘密鍵を生成し、クラスタノード マシンに対応する公開鍵があることを確認します。

  2. クラスタ構成ファイルの認証情報セクションを、新しいキーへのパスで更新します。

  3. 適切なフラグを追加し、bmctl update credentials コマンドを使用して、対応するクラスタの Secret を更新します。

    次の例では、新しい SSH 秘密鍵の認証情報を更新します。

    bmctl update credentials --kubeconfig ADMIN_KUBECONFIG \
        --cluster CLUSTER_NAME \
        --ssh-private-key-path SSH_KEY_PATH
    

    次のように置き換えます。

    • ADMIN_KUBECONFIG: 管理クラスタまたは自己管理クラスタの kubeconfig ファイルのパス。

    • CLUSTER_NAME: SSH 認証鍵を更新するクラスタの名前。

    • SSH_KEY_PATH: SSH 認証鍵ファイルのパス。デフォルトでは、bmctl はクラスタ構成ファイルで指定された SSH とサービス アカウント キーファイルを確認します。bmctl が期限切れのキーファイルを検出すると、コマンドは失敗します。構成ファイルで指定された場所とは異なる場所に新しい有効なキーファイルがある場合は、--ignore-validation-errors フラグを指定して、このエラーを回避するようにします。

    bmctl update credentials コマンドで使用できるフラグの完全なリストについては、bmctl コマンド リファレンスの認証情報の更新をご覧ください。