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.