Acceso seguro al Dashboard de Kubernetes

KubernetesKubernetesBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este desafío, mejorará la seguridad de su clúster de Kubernetes creando una cuenta de servicio de solo lectura para el Dashboard de Kubernetes, demostrando su comprensión del Control de Acceso Basado en Roles (Role-Based Access Control, RBAC). Creará una nueva cuenta de servicio, un ClusterRole con permisos de solo lectura y asociará el ClusterRole a la cuenta de servicio. Finalmente, generará un token para la cuenta de servicio que se utilizará para iniciar sesión en el Dashboard.


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{{"Acceso seguro al Dashboard de Kubernetes"}} kubernetes/create -.-> lab-434106{{"Acceso seguro al Dashboard de Kubernetes"}} kubernetes/apply -.-> lab-434106{{"Acceso seguro al Dashboard de Kubernetes"}} end

Acceso seguro al Dashboard de Kubernetes

Como ingeniero DevOps junior, mejorará la seguridad de su clúster de Kubernetes creando una cuenta de servicio de solo lectura para el Dashboard de Kubernetes, demostrando su comprensión del Control de Acceso Basado en Roles (Role-Based Access Control, RBAC).

Tareas

  • Cree una nueva cuenta de servicio llamada read-only-user en el espacio de nombres kubernetes-dashboard, utilizando el archivo YAML proporcionado.
  • Cree un ClusterRole con permisos de solo lectura para el espacio de nombres predeterminado, permitiendo operaciones get, list y watch en pods, services, nodes, namespaces y deployments.
  • Asocie el ClusterRole a la nueva cuenta de servicio llamada read-only-user.
  • Genere un token para la cuenta de servicio que se utilizará para iniciar sesión en el Dashboard.

Requisitos

  • Trabaje en el directorio ~/project.
  • Utilice el espacio de nombres kubernetes-dashboard para la cuenta de servicio.
  • Cree un archivo YAML llamado read-only-dashboard-access.yaml.
  • La cuenta de servicio debe tener solo permisos de lectura.
  • Limite el alcance de acceso al espacio de nombres default.

Proporcione el contenido del archivo 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

Ejemplos

Ejemplo de salida del token de la cuenta de servicio:

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...

Ejemplo de vista del Dashboard después de iniciar sesión:

  • Visible: Recursos del espacio de nombres, Despliegues, Pods
  • No visible: Operaciones de Crear, Editar, Eliminar

Pistas

  • Inicie Minikube y aplique el archivo recommended.yaml del repositorio oficial del Dashboard de Kubernetes para desplegar el Dashboard.
  • Utilice los comandos kubectl create y kubectl apply.
  • Verifique las configuraciones de ClusterRole y ClusterRoleBinding.
  • Utilice kubectl -n kubernetes-dashboard create token read-only-user para generar el token.
✨ Revisar Solución y Practicar

Resumen

En resumen, este desafío requiere que mejore la seguridad de su clúster de Kubernetes creando una cuenta de servicio de solo lectura para el Dashboard de Kubernetes. Creará una nueva cuenta de servicio, un ClusterRole con permisos de solo lectura y asociará el ClusterRole a la cuenta de servicio. Finalmente, generará un token para la cuenta de servicio que se utilizará para iniciar sesión en el Dashboard.