Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save karthik101/f6ecc7d33239a698900ab49249e867ca to your computer and use it in GitHub Desktop.
Save karthik101/f6ecc7d33239a698900ab49249e867ca to your computer and use it in GitHub Desktop.
Creating admin user in kubernetes dashboard

In this guide, we will find out how to create a new user using Service Account mechanism of Kubernetes, grant this user admin permissions and log in to Dashboard using bearer token tied to this user.

Create Service Account

We are creating Service Account with name my-admin-user in namespace kube-system first.

kubectl create serviceaccount my-admin-user -n kube-system
kubectl get sa

Create ClusterRoleBinding

In most cases after provisioning our cluster using kops or kubeadm or any other popular tool, the ClusterRole admin-Role already exists in the cluster. We can use it and create only ClusterRoleBinding for our ServiceAccount.

kubectl create clusterrolebinding my-admin-user -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:my-admin-user

Bearer Token

Now we need to find token we can use to log in. Execute following command:

kubectl get secret $(kubectl get serviceaccount my-admin-user -n kube-system -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" -n kube-system | base64 --decode

It should print something like:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTZnbDZsIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiMTZhZmJhOS1kZmVjLTExZTctYmJiOS05MDFiMGU1MzI1MTYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.M70CU3lbu3PP4OjhFms8PVL5pQKj-jj4RNSLA4YmQfTXpPUuxqXjiTf094_Rzr0fgN_IVX6gC4fiNUL5ynx9KU-lkPfk0HnX8scxfJNzypL039mpGt0bbe1IXKSIRaq_9VW59X

Now copy the token and paste it into Enter token field on log in screen. zrzut ekranu z 2017-12-14 10-58-28

Click Sign in button and that's it. You are now logged in as an admin.

zrzut ekranu z 2017-12-14 10-59-31

In order to find out more about how to grant/deny permissions in Kubernetes read official authentication & authorization documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment