このページでは、次のサービス アカウント キーをローテーションする方法について説明します。
サービス アカウント キーをローテーションするには:
現在のシークレットのバックアップを保存するディレクトリを作成します。
mkdir backup
関連するサービス アカウントの次の情報をメモします。
コンポーネント アクセス(プレビュー)
クラスタ シークレット 名前空間 管理 admin-cluster-creds kube-system 管理 ユーザー クラスタ証明書 CLUSTER_NAME-gke-onprem-mgmt 管理 private-registry-creds kube-system User private-registry-creds kube-system 非公開レジストリを使用していない場合、
private-registry-creds
Secret はコンポーネント アクセス サービス アカウント キーを保持します。非公開レジストリを使用している場合は、private-registry-creds
Secret に非公開レジストリの認証情報が保持されます。connect-register
クラスタ シークレット 名前空間 管理 admin-cluster-creds kube-system 管理 ユーザー クラスタ証明書 CLUSTER_NAME-gke-onprem-mgmt logging-monitoring
クラスタ シークレット 名前空間 管理 admin-cluster-creds kube-system 管理 ユーザー クラスタ証明書 CLUSTER_NAME-gke-onprem-mgmt ユーザー google-cloud-credentials kube-system ユーザー stackdriver-service-account-key knative-serving 監査ロギング
クラスタ シークレット 名前空間 管理 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
たとえば、監査ロギング サービス アカウントに対する次のコマンドを実行します。
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
: サービス アカウントのメールアドレス。
管理クラスタの構成ファイルで、
componentAccessServiceAccountKeyPath
フィールド、gkeConnect
セクション、stackdriver
セクション、cloudAuditLogging
セクションを見つけます。これらの場所では、サービス アカウント キーファイルへのパスを置き換えてください。ユーザー クラスタの構成ファイルで、
componentAccessServiceAccountKeyPath
フィールド、gkeConnect
セクション、stackdriver
セクション、cloudAudigLogging
、usageMetering
を見つけます。これらの場所では、サービス アカウント キーファイルへのパスを置き換えてください。次のコマンドを使用して、変更を保存します。
gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --admin-cluster gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
次のように置き換えます。
COMPONENT
、componentaccess
、register
、cloudauditlogging
、usagemetering
、stackdriver
のいずれか。ADMIN_CLUSTER_KUBECONFIG
: 管理クラスタの kubeconfig ファイルのパス。ADMIN_CLUSTER_CONFIG
: 管理クラスタの 構成ファイルへのパス。USER_CLUSTER_CONFIG
: ユーザー クラスタの構成ファイルへのパス。
バックアップを復元する
前の手順で作成したシークレットのバックアップを復元する必要がある場合は、次のコマンドを実行します。
kubectl apply -f backup/