管理クラスタ用に用意された認証情報を構成する

このドキュメントでは、Google Distributed Cloud の管理クラスタ用に準備された認証情報を構成する方法について説明します。

準備された認証情報を使用すると、管理クラスタの認証情報を管理クラスタの Secret に保存できます。管理ワークステーションにパスワードとサービス アカウント キーを保持する必要がないため、セキュリティの要素が実現されます。

手順の概要

  1. Secret 構成ファイルに入力します。

  2. 管理クラスタ構成ファイルで、enabled を true に設定します。

  3. 実行 gkectl prepare

  4. 管理クラスタを作成する。

Secret 構成ファイルに入力する

Secret 構成ファイルのテンプレートを生成する。

gkectl create-config secrets

上記のコマンドにより、secrets.yaml という名前のファイルが生成されます。このファイルの名前と場所は必要に応じて変更できます。

Secret 構成ファイルのドキュメントを読み、構成ファイルの内容を把握します。このドキュメントを別のタブまたはウィンドウで開いたままにしておくことができます。

Secret 構成ファイルの例を次に示します。1 つの Secret グループには、vCenter 認証情報と 4 つのサービス アカウント キーの値があります。

apiVersion: v1
kind: ClusterSecrets
secretGroups:
- secrets
  vCenter:
    username: "my-vcenter-account"
      password: "U$icUKEW#INE"
    componentAccessServiceAccount:
      serviceAccountKeyPath: "my-key-folder/component-access-key.json"
    registerServiceAccount:
      serviceAccountKeyPath: "my-key-folder/connect-register-key.json"
    stackdriverServiceAccount:
      serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
    cloudAuditLoggingServiceAccount:
      serviceAccountKeyPath: "my-key-folder/audit-log-key.json"

管理クラスタの構成ファイル

管理クラスタを作成するの説明に従って、管理クラスタ構成ファイルを作成します。

管理クラスタ構成ファイルで、preparedSecrets.enabledtrue に設定します。

preparedsecrets:
  enabled: true

管理クラスタ構成ファイルでは、次のフィールドに値を指定しないでください。Google Distributed Cloud は準備した Secret から認証情報と鍵を取得するため、これらのフィールドは不要です。

  • vCenter.credentials.fileRef.path
  • componentAccessServiceAccountKeyPath
  • loadBalancer.f5BigIP.credentials.fileRef.path
  • gkeConnect.registerServiceAccountKeyPath
  • stackdriver.serviceAccountKeyPath
  • cloudAuditLogging.serviceAccountKeyPath
  • privateRegistry.credentials.fileRef.path

環境を初期化する

OS イメージを vSphere にインポートし、非公開レジストリが指定されている場合はコンテナ イメージを非公開レジストリに push します。

gkectl prepare --config ADMIN_CLUSTER_CONFIG --secret-config SECRETS_CONFIG

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

  • ADMIN_CLUSTER_CONFIG は、管理クラスタ構成ファイルのパス

  • SECRETS_CONFIG: Secret 構成ファイルのパス

管理クラスタを作成する

管理クラスタを作成します。

gkectl create admin --config ADMIN_CLUSTER_CONFIG --secret-config SECRETS_CONFIG

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

  • ADMIN_CLUSTER_CONFIG は、管理クラスタ構成ファイルのパス

  • SECRETS_CONFIG: Secret 構成ファイルのパス

認証情報をローテーションする

認証情報をローテーションするには、Secret 構成ファイルが必要です。次の 2 つの方法があります。

  • gkectl create-config secrets を実行して、新しい Secret 構成ファイルを生成します。このファイルに新しいサービス アカウント キーを入力します。

  • 管理クラスタから Secret 構成ファイルを生成します。次に、選択したサービス アカウント キーを新しいキーに置き換えます。

    管理クラスタから Secret 構成ファイルを生成します。

    gkectl get-config admin --export-secrets-config \
      --bundle-path BUNDLE \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

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

    • BUNDLE: Google Distributed Cloud バンドル ファイルのパス

    • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

認証情報をローテーションします。

gkectl update credentials CREDENTIAL_TYPE \
    --config ADMIN_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --secret-config SECRETS_CONFIG \
    --admin-cluster

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

  • CREDENTIAL_TYPE: vsphere、f5bigip、privateregistry、componentaccess、register、stackdriver、cloudauditlogging のいずれか。

  • ADMIN_CLUSTER_CONFIG: 管理クラスタの構成ファイルのパス

  • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

  • SECRETS_CONFIG: Secret 構成ファイルのパス

更新

準備された認証情報を使用する管理クラスタを更新するには、多くの場合、クラスタの更新に記載されている手順に従ってください。

ただし、更新の一環として Cloud Logging と Cloud Monitoring または Cloud Audit Logs を有効にする場合は、次の手順に従います。

  1. シークレット構成ファイルを生成します。

  2. Secret 構成ファイルで、stackdriverServiceAccount.serviceAccountKeyPathcloudAuditLoggingServiceAccount.serviceAccountKeyPath のいずれか、または両方に値を指定します。

  3. クラスタを更新します。

    gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config ADMIN_CLUSTER_CONFIG \
      --secret-config SECRETS_CONFIG