Troppi strumenti...
Ciao a tutti, questa è una piccola raccolta di comandi e suggerimenti utili (spero) per la certificazione CKS.
kubectl
Decodificare i secret al volo:
kubectl get secret my-super-secret -o jsonpath="{.data.key}" | base64 --decode
Ottenere tutte le immagini dei pod nel namespace corrente:
kubectl get pods -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}'
etcd
Recuperare i secret direttamente da etcd:
ETCDCTL_API=3 etcdctl --<various certs> get /registry/{type}/{namespace}/{name}
seccomp - limitare le syscall
Il percorso standard in cui il kubelet cerca i profili seccomp è: /var/lib/kubelet/seccomp .
Per caricare un profilo nella definizione di un Pod si usa:
apiVersion: v1
kind: Pod
metadata:
name: pod-with-seccomp
spec:
securityContext:
seccompProfile:
type: Localhost
localhostProfile: profiles/audit.json
containers:
...
profiles/audit.json è il percorso relativo a partire da /var/lib/kubelet/seccomp .
apparmor - cosa un container può o non può fare
Controllare lo stato di apparmor:
aa-status
Caricare un profilo apparmor:
apparmor_parser -q /etc/apparmor.d/profile.something
Il nome da usare davvero nell'annotation di kubernetes è il nome del profilo dentro il file che stiamo caricando: attenzione, può essere diverso.
Come caricare un profilo nella definizione di un pod:
apiVersion: v1
kind: Pod
metadata:
name: hello-apparmor
annotations:
container.apparmor.security.beta.kubernetes.io/hello: localhost/myprofile
spec:
containers:
- name: hello
image: busybox
command: [ "sh", "-c", "echo 'Hello AppArmor!' && sleep 1h" ]
In questo esempio carichiamo il profilo apparmor myprofile per il container hello
trivy - scansione delle immagini alla ricerca di vulnerabilità
Trovare tutte le immagini in un namespace e scansionarle con trivy per cercare vulnerabilità CRITICAL:
kubectl get pods -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | xargs -n 1 trivy image --severity CRITICAL
link disponibili durante l'esame
Kubernetes
Strumenti
Regole della CKS: https://docs.linuxfoundation.org/tc-docs/certification/important-instructions-cks