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

このドキュメントでは、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. Secret 構成ファイルを生成します。

  2. Secret 構成ファイルで、stackdriverServiceAccount.serviceAccountKeyPathcloudAuditLoggingServiceAccount.serviceAccountKeyPath の値を指定します。

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

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