Was macht k8s-security-policies?
Implementieren Sie Kubernetes-Sicherheitsrichtlinien einschließlich NetworkPolicy, PodSecurityPolicy und RBAC für produktionsreife Sicherheit. Verwenden Sie dies beim Sichern von Kubernetes-Clustern, Implementieren von Netzwerkisolation oder Durchsetzen von Pod-Sicherheitsstandards.
Übersicht
Dieses Skill-Paket bietet Anleitungen und Beispiele zur Einrichtung von Kubernetes-Sicherheitsrichtlinien:
- NetworkPolicy: Steuert den Netzwerkverkehr zwischen Pods und Diensten
- PodSecurityPolicy: Definiert Sicherheitsbeschränkungen für Pods
- RBAC: Verwaltet Zugriffsberechtigungen für Benutzer und Dienste
Voraussetzungen
- Ein laufender Kubernetes-Cluster (Version 1.18+)
kubectlCLI konfiguriert mit Cluster-Zugriff- Ausreichende Berechtigungen zum Erstellen von Cluster-Ressourcen
Verwendung
NetworkPolicy-Beispiel
Erstellen Sie eine Netzwerkrichtlinie, die eingehenden Verkehr nur von bestimmten Pods erlaubt:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: api-allow
spec:
podSelector:
matchLabels:
app: api
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
PodSecurityPolicy-Beispiel
Definieren Sie eine Sicherheitsrichtlinie, die Pods mit eingeschränkten Berechtigungen ausführt:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
runAsUser:
rule: MustRunAsNonRoot
seLinux:
rule: RunAsAny
fsGroup:
rule: MustRunAs
ranges:
- min: 1
max: 65535
RBAC-Beispiel
Weisen Sie einem Benutzer die Rolle 'view' zu:
kubectl create rolebinding bob-view-binding --clusterrole=view --user=bob --namespace=default
Best Practices
- Prinzip der geringsten Privilegien: Gewähren Sie nur minimale erforderliche Berechtigungen
- Standardmäßig ablehnen: Erstellen Sie standardmäßige NetworkPolicys, die allen Verkehr ablehnen, und fügen Sie dann Ausnahmen hinzu
- Richtlinien regelmäßig überprüfen: Überwachen und aktualisieren Sie Richtlinien bei Cluster-Änderungen
- Tools verwenden: Nutzen Sie Tools wie
kubectl auth can-izur Überprüfung von RBAC
Fehlerbehebung
- Überprüfen Sie RBAC-Berechtigungen mit:
kubectl auth can-i <verb> <resource> - Verwenden Sie
kubectl describe networkpolicyzur detaillierten Ansicht - Stellen Sie sicher, dass PodSecurityPolicy-Controller aktiviert ist