Sécuriser l'accès au tableau de bord Kubernetes

KubernetesKubernetesBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce défi, vous améliorerez la sécurité de votre cluster Kubernetes en créant un compte de service en lecture seule pour le tableau de bord Kubernetes, démontrant ainsi votre compréhension du contrôle d'accès basé sur les rôles (Role-Based Access Control - RBAC). Vous allez créer un nouveau compte de service, un ClusterRole avec des autorisations en lecture seule, et lier le ClusterRole au compte de service. Enfin, vous générerez un jeton pour le compte de service à utiliser pour la connexion au tableau de bord.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") subgraph Lab Skills kubernetes/get -.-> lab-434106{{"Sécuriser l'accès au tableau de bord Kubernetes"}} kubernetes/create -.-> lab-434106{{"Sécuriser l'accès au tableau de bord Kubernetes"}} kubernetes/apply -.-> lab-434106{{"Sécuriser l'accès au tableau de bord Kubernetes"}} end

Sécuriser l'accès au tableau de bord Kubernetes

En tant que jeune ingénieur DevOps, vous allez améliorer la sécurité de votre cluster Kubernetes en créant un compte de service en lecture seule pour le tableau de bord Kubernetes, démontrant ainsi votre compréhension du contrôle d'accès basé sur les rôles (Role-Based Access Control - 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 autorisations en lecture seule pour l'espace de noms par défaut, permettant les opérations get, list et watch sur les pods, services, nodes, namespaces et deployments
  • Lier le ClusterRole au nouveau compte de service nommé read-only-user
  • Générer un jeton pour le compte de service à utiliser pour la connexion au tableau de bord

Exigences

  • Travailler dans le répertoire ~/project
  • Utiliser l'espace de noms kubernetes-dashboard pour le compte de service
  • Créer un fichier YAML nommé read-only-dashboard-access.yaml
  • Le compte de service ne devrait avoir que des autorisations de lecture
  • Limiter la portée de l'accès à l'espace de noms default

Fournissez le contenu 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 du jeton du compte de service :

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...

Exemple de vue du tableau de bord après connexion :

  • Visible : Ressources d'espace de noms, Déploiements, Pods
  • Non visible : Opérations de création, édition, suppression

Indices

  • Démarrez Minikube et appliquez le fichier recommended.yaml du dépôt officiel du tableau de bord Kubernetes pour déployer le tableau de bord
  • Utilisez les commandes kubectl create et kubectl apply
  • Vérifiez les configurations de ClusterRole et ClusterRoleBinding
  • Utilisez kubectl -n kubernetes-dashboard create token read-only-user pour générer le jeton
✨ Vérifier la solution et pratiquer

Résumé

En résumé, ce défi vous demande d'améliorer la sécurité de votre cluster Kubernetes en créant un compte de service en lecture seule pour le tableau de bord Kubernetes. Vous allez créer un nouveau compte de service, un ClusterRole avec des autorisations en lecture seule, et lier le ClusterRole au compte de service. Enfin, vous générerez un jeton pour le compte de service à utiliser pour la connexion au tableau de bord.