Sécuriser l'accès au tableau de bord Kubernetes
En tant qu'ingénieur DevOps junior, votre mission consiste à sécuriser votre cluster Kubernetes en mettant en place un accès restreint pour le tableau de bord, prouvant ainsi votre maîtrise des mécanismes RBAC.
Tâches
- Créer un nouveau compte de service nommé
read-only-user dans l'espace de noms kubernetes-dashboard, en utilisant le fichier YAML fourni.
- Créer un
ClusterRole avec des permissions de lecture seule pour l'espace de noms par défaut, autorisant les opérations get, list et watch sur les ressources suivantes : pods, services, nodes, namespaces et deployments.
- Lier le
ClusterRole au nouveau compte de service read-only-user.
- Générer un jeton (token) pour permettre au compte de service de s'authentifier sur le tableau de bord.
Exigences
- Travaillez dans le répertoire
~/project.
- Utilisez l'espace de noms
kubernetes-dashboard pour le compte de service.
- Créez un fichier YAML nommé
read-only-dashboard-access.yaml.
- Le compte de service ne doit posséder que des droits de lecture.
- Limitez la portée de l'accès à l'espace de noms
default.
Contenu attendu du fichier YAML :
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: read-only-user
namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: read-only-dashboard-role
rules:
- apiGroups: [""]
resources: ["pods", "services", "nodes", "namespaces", "deployments"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: read-only-dashboard-access
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: read-only-dashboard-role
subjects:
- kind: ServiceAccount
name: read-only-user
namespace: kubernetes-dashboard
Exemples
Exemple de sortie pour la génération du jeton :
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
Aperçu du tableau de bord après connexion :
- Visible : Ressources de l'espace de noms, Deployments, Pods.
- Non visible : Opérations de création, d'édition ou de suppression.
Conseils
- Démarrez Minikube et appliquez le fichier
recommended.yaml du dépôt officiel du Dashboard Kubernetes pour déployer l'interface.
- Utilisez les commandes
kubectl create et kubectl apply.
- Vérifiez vos configurations de ClusterRole et ClusterRoleBinding.
- Utilisez la commande
kubectl -n kubernetes-dashboard create token read-only-user pour générer le jeton.