Introducció
El certificat de Kubernetes Security Specialist (CKS) està dissenyat per validar les habilitats i coneixements necessaris per assegurar les aplicacions i la plataforma Kubernetes durant el cicle de vida de desenvolupament. Aquest mòdul proporcionarà una guia completa per preparar-se per a l'examen CKS, incloent conceptes clau, pràctiques recomanades i exercicis pràctics.
Objectius del Mòdul
- Comprendre els requisits i l'estructura de l'examen CKS.
- Aprendre les millors pràctiques de seguretat en Kubernetes.
- Practicar amb exemples reals i exercicis pràctics.
Contingut
- Requisits i Estructura de l'Examen CKS
Requisits
- Certificació Prèvia: És necessari tenir la certificació de Kubernetes Administrator (CKA) per poder presentar-se a l'examen CKS.
- Coneixements Pràctics: Experiència pràctica amb Kubernetes i coneixements bàsics de seguretat.
Estructura de l'Examen
- Durada: 2 hores.
- Format: Examen pràctic basat en tasques.
- Àrees de Coneixement:
- Cluster Setup: Configuració segura del clúster.
- Cluster Hardening: Enfortiment del clúster.
- System Hardening: Enfortiment del sistema.
- Minimizing Microservice Vulnerabilities: Minimització de vulnerabilitats en microserveis.
- Supply Chain Security: Seguretat de la cadena de subministrament.
- Monitoring, Logging, and Runtime Security: Monitorització, registre i seguretat en temps d'execució.
- Configuració Segura del Clúster
Configuració de Control d'Accés Basat en Rols (RBAC)
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: pod-reader rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "watch", "list"]
Explicació: Aquest fragment de codi defineix un rol anomenat pod-reader que permet als usuaris obtenir, veure i llistar pods en el namespace default.
Exercici Pràctic
- Crear un Rol: Defineix un rol que permeti llistar i veure secrets en un namespace específic.
- Assignar el Rol: Assigna el rol a un usuari específic utilitzant un RoleBinding.
Solució:
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: secret-reader rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: read-secrets namespace: default subjects: - kind: User name: jane apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: secret-reader apiGroup: rbac.authorization.k8s.io
- Enfortiment del Clúster
Polítiques de Seguretat de Pods (PSP)
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
allowPrivilegeEscalation: false
runAsUser:
rule: MustRunAsNonRoot
seLinux:
rule: RunAsAny
supplementalGroups:
rule: MustRunAs
ranges:
- min: 1
max: 65535
fsGroup:
rule: MustRunAs
ranges:
- min: 1
max: 65535
volumes:
- 'configMap'
- 'emptyDir'
- 'projected'
- 'secret'
- 'downwardAPI'
- 'persistentVolumeClaim'Explicació: Aquesta política de seguretat de pods (PSP) restringeix els pods per assegurar que no s'executin com a usuaris privilegiats i que no puguin escalar privilegis.
Exercici Pràctic
- Crear una PSP: Defineix una PSP que permeti només l'ús de volums
configMapisecret. - Aplicar la PSP: Assegura't que la PSP s'apliqui a tots els pods en el namespace
default.
Solució:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: limited-volumes
spec:
privileged: false
allowPrivilegeEscalation: false
runAsUser:
rule: MustRunAsNonRoot
seLinux:
rule: RunAsAny
supplementalGroups:
rule: MustRunAs
ranges:
- min: 1
max: 65535
fsGroup:
rule: MustRunAs
ranges:
- min: 1
max: 65535
volumes:
- 'configMap'
- 'secret'
- Minimització de Vulnerabilitats en Microserveis
Seguretat d'Imatges
- Escaneig d'Imatges: Utilitza eines com Trivy o Clair per escanejar imatges de contenidors per vulnerabilitats.
- Polítiques d'Imatges: Implementa polítiques per assegurar que només es permetin imatges signades i escanejades.
Exemple de Configuració de Trivy
Explicació: Aquest comandament escaneja la imatge myapp:latest per vulnerabilitats de severitat alta i crítica.
- Monitorització, Registre i Seguretat en Temps d'Execució
Monitorització amb Prometheus
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: example-servicemonitor
labels:
team: frontend
spec:
selector:
matchLabels:
app: example
endpoints:
- port: web
interval: 30sExplicació: Aquest ServiceMonitor configura Prometheus per monitoritzar un servei amb l'etiqueta app: example al port web cada 30 segons.
Exercici Pràctic
- Configurar un ServiceMonitor: Defineix un ServiceMonitor per monitoritzar un servei anomenat
myappal portmetrics. - Verificar la Configuració: Assegura't que Prometheus estigui recollint les mètriques correctament.
Solució:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-servicemonitor
labels:
team: backend
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: metrics
interval: 15sConclusió
Aquest mòdul ha cobert els conceptes clau i les pràctiques recomanades per preparar-se per a l'examen de Kubernetes Security Specialist (CKS). Hem explorat la configuració segura del clúster, l'enfortiment del clúster, la minimització de vulnerabilitats en microserveis i la monitorització i seguretat en temps d'execució. Practicar amb aquests exemples i exercicis pràctics ajudarà a consolidar els coneixements necessaris per superar l'examen CKS amb èxit.
Consell Final: Practica regularment en un entorn real o simulat per familiaritzar-te amb les tasques pràctiques que trobaràs a l'examen. Bona sort!
Curs de Kubernetes
Mòdul 1: Introducció a Kubernetes
- Què és Kubernetes?
- Arquitectura de Kubernetes
- Conceptes i Terminologia Clau
- Configuració d'un Clúster de Kubernetes
- CLI de Kubernetes (kubectl)
Mòdul 2: Components Bàsics de Kubernetes
Mòdul 3: Gestió de Configuració i Secrets
Mòdul 4: Xarxes en Kubernetes
Mòdul 5: Emmagatzematge en Kubernetes
Mòdul 6: Conceptes Avançats de Kubernetes
Mòdul 7: Monitorització i Registre
- Monitorització amb Prometheus
- Registre amb Elasticsearch, Fluentd i Kibana (EFK)
- Controls de Salut i Probes
- Servidor de Mètriques
Mòdul 8: Seguretat en Kubernetes
- Control d'Accés Basat en Rols (RBAC)
- Polítiques de Seguretat de Pods
- Seguretat de Xarxa
- Seguretat d'Imatges
Mòdul 9: Escalabilitat i Rendiment
- Autoscalat Horitzontal de Pods
- Autoscalat Vertical de Pods
- Autoscalat de Clúster
- Optimització del Rendiment
Mòdul 10: Ecosistema i Eines de Kubernetes
Mòdul 11: Estudis de Cas i Aplicacions del Món Real
- Desplegament d'una Aplicació Web
- CI/CD amb Kubernetes
- Execució d'Aplicacions Stateful
- Gestió Multi-Clúster
