このドキュメントでは、Google Distributed Cloud の管理クラスタ用に準備された認証情報を構成する方法について説明します。
準備された認証情報を使用すると、管理クラスタの認証情報を管理クラスタの Secret に保存できます。これにより、パスワードとサービス アカウント キーを管理ワークステーションに保持する必要がないため、セキュリティが強化されます。
高度なクラスタには次の制限事項があります。
- バージョン 1.31: 準備された認証情報は、高度なクラスタではサポートされていません。
- バージョン 1.32 以降: 準備された認証情報は、高度なクラスタでサポートされています。
手順の概要
Secret 構成ファイルに入力します。
管理クラスタ構成ファイルで、enabled を true に設定します。
gkectl prepareを実行します。管理クラスタを作成します。
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.enabled を true に設定します。
preparedsecrets: enabled: true
管理クラスタの構成ファイルでは、次のフィールドに値を指定しないでください。Google Distributed Cloud は、準備済み Secret から認証情報と鍵を取得するため、これらのフィールドは不要です。
vCenter.credentials.fileRef.pathcomponentAccessServiceAccountKeyPathloadBalancer.f5BigIP.credentials.fileRef.pathgkeConnect.registerServiceAccountKeyPathstackdriver.serviceAccountKeyPathcloudAuditLogging.serviceAccountKeyPathprivateRegistry.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 を有効にする場合は、次の操作を行います。
Secret 構成ファイルを生成します。
Secret 構成ファイルで、
stackdriverServiceAccount.serviceAccountKeyPathとcloudAuditLoggingServiceAccount.serviceAccountKeyPathの値を指定します。クラスタを更新します。
gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --secret-config SECRETS_CONFIG