it-wiki:kubernetes:security
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| it-wiki:kubernetes:security [2025/10/30 09:10] – marko | it-wiki:kubernetes:security [2025/10/31 03:55] (aktuell) – [Container und Container Image Security] marko | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Pod Security Admission ====== | ====== Pod Security Admission ====== | ||
| Die Kubernetes Pod Security Admission (PSA) ist eine im Core von Kubernetes integrierte Admission-Controller-Strategie, | Die Kubernetes Pod Security Admission (PSA) ist eine im Core von Kubernetes integrierte Admission-Controller-Strategie, | ||
| + | {{ : | ||
| ===== Funktionsweise ===== | ===== Funktionsweise ===== | ||
| Der Pod Security Admission Controller überprüft beim Erstellen oder Aktualisieren eines Pods, ob dessen Spezifikation den im Namespace konfigurierten Sicherheitsstufen entspricht. Pods, die restriktive Einstellungen unterlaufen, | Der Pod Security Admission Controller überprüft beim Erstellen oder Aktualisieren eines Pods, ob dessen Spezifikation den im Namespace konfigurierten Sicherheitsstufen entspricht. Pods, die restriktive Einstellungen unterlaufen, | ||
| Zeile 21: | Zeile 21: | ||
| kubectl label namespace < | kubectl label namespace < | ||
| pod-security.kubernetes.io/ | pod-security.kubernetes.io/ | ||
| - | pod-security.kubernetes.io/ | + | pod-security.kubernetes.io/ |
| pod-security.kubernetes.io/ | pod-security.kubernetes.io/ | ||
| - | pod-security.kubernetes.io/ | + | pod-security.kubernetes.io/ |
| </ | </ | ||
| Zeile 30: | Zeile 30: | ||
| * Bei Verstoß gegen `restricted` gibt es eine Warnung. | * Bei Verstoß gegen `restricted` gibt es eine Warnung. | ||
| + | Ein weiteres Beispiel als Manifestfile | ||
| + | <code yaml> | ||
| + | apiVersion: v1 | ||
| + | kind: Namespace | ||
| + | metadata: | ||
| + | name: my-baseline-namespace | ||
| + | labels: | ||
| + | pod-security.kubernetes.io/ | ||
| + | pod-security.kubernetes.io/ | ||
| + | |||
| + | # We are setting these to our _desired_ `enforce` level. | ||
| + | pod-security.kubernetes.io/ | ||
| + | pod-security.kubernetes.io/ | ||
| + | pod-security.kubernetes.io/ | ||
| + | pod-security.kubernetes.io/ | ||
| + | </ | ||
| + | Es besteht auch die Möglichkeit statt einer eindeutigen Version einfach '' | ||
| ===== Profile im Detail ===== | ===== Profile im Detail ===== | ||
| - **Privileged** | - **Privileged** | ||
| Zeile 49: | Zeile 66: | ||
| **Hinweis: | **Hinweis: | ||
| Für eine produktive Umgebung sollte die Konfiguration regelmäßig geprüft und mit weiteren Maßnahmen (z. B. Role-based Access Control, Image Policies) kombiniert werden. | Für eine produktive Umgebung sollte die Konfiguration regelmäßig geprüft und mit weiteren Maßnahmen (z. B. Role-based Access Control, Image Policies) kombiniert werden. | ||
| + | |||
| + | ===== Anwendung von Pod Security Standards verstehen ===== | ||
| + | ''< | ||
| + | - **Privileged** <code bash> | ||
| + | pod-security.kubernetes.io/ | ||
| + | namespace/ | ||
| + | namespace/ | ||
| + | namespace/ | ||
| + | namespace/ | ||
| + | - **Baseline** <code bash> | ||
| + | pod-security.kubernetes.io/ | ||
| + | namespace/ | ||
| + | namespace/ | ||
| + | Warning: existing pods in namespace " | ||
| + | Warning: etcd-psa-wo-cluster-pss-control-plane (and 3 other pods): host namespaces, hostPath volumes | ||
| + | Warning: kindnet-vzj42: | ||
| + | Warning: kube-proxy-m6hwf: | ||
| + | namespace/ | ||
| + | namespace/ | ||
| + | - **Restricted** <code bash> | ||
| + | pod-security.kubernetes.io/ | ||
| + | namespace/ | ||
| + | namespace/ | ||
| + | Warning: existing pods in namespace " | ||
| + | Warning: coredns-7bb9c7b568-hsptc (and 1 other pod): unrestricted capabilities, | ||
| + | Warning: etcd-psa-wo-cluster-pss-control-plane (and 3 other pods): host namespaces, hostPath volumes, allowPrivilegeEscalation != false, unrestricted capabilities, | ||
| + | Warning: kindnet-vzj42: | ||
| + | Warning: kube-proxy-m6hwf: | ||
| + | namespace/ | ||
| + | Warning: existing pods in namespace " | ||
| + | Warning: local-path-provisioner-d6d9f7ffc-lw9lh: | ||
| + | namespace/ | ||
| + | |||
| + | Aus der vorherigen Ausgabe geht hervor, dass die Anwendung des privileged Pod-Sicherheitsstandards keine Warnungen für irgendwelche Namespaces ausgibt. Die Standards '' | ||
| ---- | ---- | ||
| - | ===== Umsetzung im produktiven Cluster / Pod-Sicherheitsstandards auf Clusterebene ===== | + | ===== Pod-Sicherheitsstandards auf Clusterebene ===== |
| Es werden die folgenden Pod-Sicherheitsstandards auf die Version latest angewendet: | Es werden die folgenden Pod-Sicherheitsstandards auf die Version latest angewendet: | ||
| * baseline standard in enforce mode | * baseline standard in enforce mode | ||
| Zeile 64: | Zeile 115: | ||
| fehlschlagen, | fehlschlagen, | ||
| - | Bei der Implementierung von Pod Security Admission | + | Bei der Implementierung von Pod Security Admission |
| * Abhängig von der Risikobewertung eines Clusters könnte ein strengerer Pod-Sicherheitsstandard die bessere Wahl sein. Beispielsweise '' | * Abhängig von der Risikobewertung eines Clusters könnte ein strengerer Pod-Sicherheitsstandard die bessere Wahl sein. Beispielsweise '' | ||
| Zeile 99: | Zeile 150: | ||
| runtimeClasses: | runtimeClasses: | ||
| # Array of namespaces to exempt. | # Array of namespaces to exempt. | ||
| - | namespaces: [kube-system, | + | namespaces: [kube-system, |
| </ | </ | ||
| + | < | ||
| + | < | ||
| + | Das obige Manifest muss über den kube-apiserver angegeben werden. | ||
| + | </ | ||
| - | + | - Bereiten Sie das Konfigurationsverzeichnis vor: <code bash> | |
| + | cp psa-config.yaml / | ||
| + | - Ändern Sie die API-Serverkonfiguration: | ||
| + | extraArgs: | ||
| + | admission-control-config-file: | ||
| + | extraVolumes: | ||
| + | - name: psa-config | ||
| + | hostPath: | ||
| + | mountPath: | ||
| + | readOnly: | ||
| + | - Starten Sie den API-Server neu:\\ Nach der Aktualisierung der Konfiguration muss der API-Server neu gestartet werden, um die Änderungen anzuwenden. | ||
| + | \\ | ||
| + | \\ | ||
| ====== Container und Container Image Security ====== | ====== Container und Container Image Security ====== | ||
| ===== trivy ===== | ===== trivy ===== | ||
it-wiki/kubernetes/security.1761815417.txt.gz · Zuletzt geändert: von marko