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
configMap
isecret
. - 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: 30s
Explicació: 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
myapp
al 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: 15s
Conclusió
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