Créer un utilisateur dans Kubernetes pour kubectl
J'ai besoin de créer des utilisateurs pour leur attribuer des autorisations avec RBAC, je les créer comme suit:
echo -n "lucia" | base64
bHVjaWE=
echo -n "pass" | base64
cGFzcw==
apiVersion: v1
kind: Secret
metadata:
name: lucia-secret
type: Opaque
data:
username: bHVjaWE=
password: cGFzcw==
Ou créer avec:
kubectl create secret generic lucia-secret --from-literal=username='lucia',password='pass'
Je ne sais pas comment continuer
USER_NICK=lucia
kubectl config set-credentials $USER_NICK \
--username=lucia \
--password=pass
kubectl get secret lucia-secret -o json | jq -r '.data["ca.crt"]' | base64 -d > ca.crt
endpoint=`kubectl config view -o jsonpath="{.clusters[?(@.name == \"$name\")].cluster.server}"`
kubectl config set-cluster cluster-for-lucia \
--embed-certs=true \
--server=$endpoint \
--certificate-authority=./ca.crt
kubectl config set-context context-lucia \
--cluster=cluster-for-lucia \
--user=$USER_NICK \
--namespace=default
ca.crt est null
Merci pour votre aide!
Vous devez vous connecter pour publier un commentaire.
Dans ce guide, vous pouvez trouver comment faire pour configurer un utilisateur pour votre cluster: https://docs.bitnami.com/kubernetes/how-to/configure-rbac-in-your-kubernetes-cluster/#use-case-1-create-user-with-limited-namespace-access
Longue histoire courte:
Concernant la
ca.crt
, vous devez le trouver dans votre hôte maître.Édité: Dans le cas de GKE, vérifiez ici https://cloud.google.com/container-engine/docs/iam-integration
Comme kubernetes docs et des Articles utilise un certificat de créer ou d'authentifier les utilisateurs pour kubectl client. Néanmoins, il est un moyen facile de le faire en utilisant ServiceAccount. On peut utiliser ServiceAccount comme un groupe RBAC contrôle d'authentification et il est très facile et descriptif. Voici les étapes à suivre.
Toutes les étapes que je suis en cours d'exécution est en
default
espace de noms. Je vais créer un pod readonly utilisateur qui peut faire,liste à,montre de pod dans tous les espaces de noms.Créer un ServiceAccount, dire "readonlyuser'.
kubectl create serviceaccount readonlyuser
Création d'un cluster de rôle, dire "readonlyuser'.
kubectl create clusterrole readonlyuser --verb=get --verb=list --verb=watch --resource=pods
Création d'un cluster rôle de liaison , de dire "readonlyuser'.
kubectl create clusterrolebinding readonlyuser --serviceaccount=default:readonlyuser --clusterrole=readonlyuser
Maintenant obtenir le jeton de secret de ServiceAccount nous avons créé avant. nous allons utiliser ce jeton pour authentifier l'utilisateur.
TOKEN=$(kubectl describe secrets "$(kubectl describe serviceaccount readonlyuser | grep -i Tokens | awk '{print $2}')" | grep token: | awk '{print $2}')
Maintenant définir les informations d'identification pour l'utilisateur dans le kube fichier de configuration. Je suis de l'utilisation de 'vikash" comme nom d'utilisateur.
kubectl config set-credentials vikash --token=$TOKEN
Maintenant Créer un Contexte, dire podreader, je suis à l'aide de mon clustername "kubernetes' ici.
kubectl config set-context podreader --cluster=kubernetes --user=vikash
Enfin, utiliser le contexte .
kubectl config use-context podreader
Et c'est tout. Maintenant, on peut exécuter
kubectl get pods --all-namespaces
. on peut aussi vérifier l'accès par l'exécution de donnéeCe n'est pas la façon de créer de nouveaux utilisateurs. Je vois que vous avez mal compris le but d'un compte de service ici.
Pour créer des utilisateurs, vous avez certainement besoin de l'autorité de certification paire de clés (ie. cert + clé). L'utiliser pour générer un client paire de clés pour chaque personne.
Pouvez-vous détailler comment créer ce groupe?
kubectl
, autant que je sache, vous ne pouvez pas le faire de cette façon. Le Compte de Service est destinée à un pod pour communiquer aveckube-apiserver
, pas pour un utilisateur d'utiliserkubectl
. La SA offre un jeton d'accèskube-apiserver
, pas un uid/pwd paire. Pour info, la clé utilisée pour signer le jeton est un spécial de SA clé privée est générée à partir de la clé de l'AC. Vous avez encore besoin du CA cert n'importe quoi.