このページでは、Anthos clusters on VMware(GKE On-Prem)で Cloud Audit Logs、使用状況測定、Stackdriver コンポーネントの gkectl
を使用して、サービス アカウントキーをローテーションする方法について説明します。
サービス アカウント キーをローテーションするには:
現在のシークレットのバックアップを保存するディレクトリを作成します。
mkdir backup
関連するコンポーネントについては、次の点にご注意ください。
Cloud Audit Logs
クラスタ シークレット 名前空間 管理 admin-cluster-creds kube-system 管理 ユーザー クラスタ証明書 CLUSTER_NAME-gke-onprem-mgmt 管理 kube-apiserver CLUSTER_NAME 使用状況測定
クラスタ シークレット 名前空間 管理 ユーザー クラスタ証明書 CLUSTER_NAME-gke-onprem-mgmt ユーザー usage-metering-bigquery-service-account-key kube-system Stackdriver
クラスタ シークレット 名前空間 管理 admin-cluster-creds kube-system 管理 ユーザー クラスタ証明書 CLUSTER_NAME-gke-onprem-mgmt ユーザー google-cloud-credentials kube-system ユーザー stackdriver-service-account-key knative-serving 次のコマンドを使用して、各シークレットのバックアップを作成します。
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json
次のように置き換えます。
NAMESPACE
は、シークレットが配置されている名前空間です。例:kube-system
KUBECONFIG
: 管理クラスタまたはユーザー クラスタの kubeconfig ファイルへのパス。SECRET
: Secret の名前例:admin-cluster-creds
たとえば、Cloud Audit Logs コンポーネントに対して次のコマンドを実行します。
kubectl get secret admin-cluster-creds --namespace kube-system \ --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json kubectl get secret user-cluster-creds --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json kubectl get secret kube-apiserver --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
新しいサービス アカウント キー ファイルを作成するには、次のコマンドを実行します。
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
次のように置き換えます。
NEW_KEY_FILE
: 新しいサービス アカウント キー ファイルの名前IAM_ACCOUNT
: Cloud Audit Logs、使用状況測定、Stackdriver のいずれかのサービス アカウントのメールアドレスです。
管理クラスタとユーザー クラスタの両方の対応する構成ファイルで、
cloudauditlogging
、usagemetering
、またはstackdriver
セクションを見つけます。serviceAccountKeyPath
フィールドを、先ほど作成した NEW_KEY_FILE に置き換えます。次のコマンドを使用して、変更を保存します。
gkectl update credentials COMPONENT --admin-cluster --kubeconfig \ ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG gkectl update credentials COMPONENT --kubeconfig \ ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
次のように置き換えます。
COMPONENT
:cloudauditlogging
、usagemetering
、またはstackdriver
のいずれかです。ADMIN_CLUSTER_KUBECONFIG
: 管理クラスタの kubeconfig ファイルへのパス。ADMIN_CLUSTER_CONFIG
: 管理クラスタの 構成ファイルへのパス。USER_CLUSTER_CONFIG
: ユーザー クラスタの構成ファイルへのパス。