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

  1. 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ó.

  1. 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

  1. Crear un Rol: Defineix un rol que permeti llistar i veure secrets en un namespace específic.
  2. 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

  1. 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

  1. Crear una PSP: Defineix una PSP que permeti només l'ús de volums configMap i secret.
  2. 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'

  1. 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

trivy image --severity HIGH,CRITICAL myapp:latest

Explicació: Aquest comandament escaneja la imatge myapp:latest per vulnerabilitats de severitat alta i crítica.

  1. 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

  1. Configurar un ServiceMonitor: Defineix un ServiceMonitor per monitoritzar un servei anomenat myapp al port metrics.
  2. 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

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

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats