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

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. 更新する認証情報に新しい値を準備します。

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

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

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

  3. 次に説明するように、bmctl update credentials コマンドを使用して、対応するクラスタの Secret を更新します。

    たとえば、次の bmctl は、新しい SSH 秘密鍵の認証情報を更新します。ここで、ADMIN_KUBECONFIG は管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタの kubeconfig へのパスを指定します。SSH_KEY_PATH には新しい SSH 秘密鍵のパスを指定し、CLUSTER_NAME はクラスタの名前を指定します。

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

bmctl で次のフラグを指定して、認証情報を更新できます。

フラグ 説明
--kubeconfig 必須。管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタの kubeconfig へのパス
--cluster 必須。管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタの名前
--ssh-private-key-path 新しい SSH 秘密鍵へのパス
--gcr-key-path 新しい Container Registry サービス アカウント キーへのパス
--gke-connect-agent-service-account-key-path 新しい Connect Agent サービス アカウント キーへのパス
--gke-connect-register-service-account-key-path 新しい Connect Register サービス アカウント キーへのパス
--cloud-operations-service-account-key-path 新しい Google Cloud Observability サービス アカウント キーへのパス