Acceso Seguro al Dashboard de Kubernetes
Como ingeniero DevOps junior, tu misión es reforzar la seguridad de tu clúster de Kubernetes configurando una cuenta de servicio con privilegios limitados para el Dashboard de Kubernetes, aplicando los principios de RBAC.
Tareas
- Crear una nueva cuenta de servicio llamada
read-only-user en el espacio de nombres kubernetes-dashboard, utilizando el archivo YAML proporcionado.
- Crear un
ClusterRole con permisos de solo lectura para el espacio de nombres predeterminado, permitiendo las operaciones get, list y watch sobre los recursos pods, services, nodes, namespaces y deployments.
- Vincular el
ClusterRole a la nueva cuenta de servicio read-only-user.
- Generar un token para que la cuenta de servicio se utilice en el inicio de sesión del Dashboard.
Requisitos
- Trabajar dentro del directorio
~/project.
- Utilizar el espacio de nombres
kubernetes-dashboard para la cuenta de servicio.
- Crear un archivo YAML llamado
read-only-dashboard-access.yaml.
- La cuenta de servicio debe tener estrictamente permisos de lectura.
- Limitar el alcance del acceso al espacio de nombres
default.
Contenido del archivo YAML a proporcionar:
---
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 la salida del token de la cuenta de servicio:
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9...
Ejemplo de la vista del Dashboard tras iniciar sesión:
- Visible: Recursos del espacio de nombres, Deployments, Pods.
- No visible: Operaciones de creación, edición o eliminación.
Consejos
- Inicia Minikube y aplica el archivo
recommended.yaml del repositorio oficial del Dashboard de Kubernetes para desplegar la interfaz.
- Utiliza los comandos
kubectl create y kubectl apply.
- Verifica las configuraciones de
ClusterRole y ClusterRoleBinding.
- Ejecuta
kubectl -n kubernetes-dashboard create token read-only-user para generar el token de acceso.