This page describes how to rotate your service account keys using gkectl
for
Cloud Audit Logs, Usage Metering, and Stackdriver components on Google Distributed Cloud.
To rotate your service account keys:
Create a directory to store a backup of your current secrets:
mkdir backup
Note the following information for the relevant component:
Cloud Audit Logs
Cluster Secret Namespace Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt Admin kube-apiserver CLUSTER_NAME Usage Metering
Cluster Secret Namespace Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt User usage-metering-bigquery-service-account-key kube-system Stackdriver
Cluster Secret Namespace Admin admin-cluster-creds kube-system Admin user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt User google-cloud-credentials kube-system User stackdriver-service-account-key knative-serving Create a backup of each secret using the following command:
kubectl get secret
SECRET --namespaceNAMESPACE \ --kubeconfigKUBECONFIG -o json > backup/SECRET -NAMESPACE .jsonReplace the following:
NAMESPACE
: the namespace where the secret is located. For example,kube-system
.KUBECONFIG
: the path to the kubeconfig file for the admin or user cluster.SECRET
: the name of the secret. For example,admin-cluster-creds
.
For example, run the following commands for the Cloud Audit Logs component:
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 --namespaceNAMESPACE \ --kubeconfigKUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE .json kubectl get secret kube-apiserver --namespaceNAMESPACE \ --kubeconfigKUBECONFIG -o json > backup/kube-apiserver-NAMESPACE .jsonTo create a new service account key file, run the following command:
gcloud iam service-accounts keys create
NEW_KEY_FILE --iam-accountIAM_ACCOUNT Replace the following:
NEW_KEY_FILE
: the name for your new service account key fileIAM_ACCOUNT
: your service account email address for either Cloud Audit Logs, Usage Metering, or Stackdriver.
In the corresponding configuration files for both the admin cluster and user clusters, find the
cloudauditlogging
,usagemetering
, orstackdriver
section.Replace the
serviceAccountKeyPath
field with the NEW_KEY_FILE you created earlier.Save the changes you made using the following commands:
gkectl update credentials
COMPONENT --admin-cluster --kubeconfig \ADMIN_CLUSTER_KUBECONFIG --configADMIN_CLUSTER_CONFIG gkectl update credentialsCOMPONENT --kubeconfig \KUBECONFIG --configUSER_CLUSTER_CONFIG Replace the following;
COMPONENT
: one ofcloudauditlogging
,usagemetering
, orstackdriver
.ADMIN_CLUSTER_KUBECONFIG
: the path to the kubeconfig file for the admin cluster.ADMIN_CLUSTER_CONFIG
: the path to the admin cluster configuration file.USER_CLUSTER_CONFIG
: the path to the user cluster configuration file.