Bereitstellung von SUSE Security in der Public Cloud
Bereitstellung von SUSE® Security auf einem Public Cloud Kubernetes Service
Bereitstellung von SUSE® Security auf einem Public Cloud K8s-Service wie AWS EKS, Azure AKS, IBM Cloud K8s, Google Cloud, Alibaba Cloud oder Oracle Cloud. SUSE® Security hat das Amazon EKS Anywhere Konformitäts- und Validierungsframework bestanden und ist daher eine validierte Lösung, die als Add-on für EKS-Anywhere auf Snowball Edge-Geräten über die AWS-Konsole verfügbar ist.
Zuerst erstellen Sie Ihren K8s-Cluster und bestätigen den Zugriff mit kubectl get nodes.
Um SUSE® Security bereitzustellen, verwenden Sie die Beispielbereitstellungsanweisungen und -beispiele aus dem Kubernetes-Bereich der Produktionsbereitstellung. Bearbeiten Sie die Beispiel-YAML, wenn Sie SUSE® Security-Bilder aus einer lokalen oder einer Cloud-Registry (z.B. ECR oder ACR) abrufen.
Einige Cloud-Anbieter haben integrierte Lastenausgleicher, die einfach bereitgestellt werden können, indem Sie Type: LoadBalancer anstelle von NodePort für die SUSE® Security Weboberfläche verwenden.
SUSE® Security unterstützt auch die Helm-basierte Bereitstellung mit einem Helm-Chart unter https://github.com/neuvector/neuvector-helm.
Netzwerkzugriff
Stellen Sie sicher, dass der interne und externe Ingress-Zugriff ordnungsgemäß konfiguriert ist. Für den NodePort-Dienst muss der zufällige Port im Bereich 3xxxx von außen auf einer öffentlichen IP eines Worker- oder Masterknotens zugänglich sein. Sie können die Konsole über die öffentliche IP-Adresse eines beliebigen Worker-Knotens und diesen Port (NodePort) oder die öffentliche IP des Lastenausgleichers und den Standardport 8443 aufrufen. Sie können die IP/Port mit folgendem Befehl anzeigen:
kubectl get svc -n neuvector
Die meisten K8s-Dienste ermöglichen automatisch alle inter-pod / inter-cluster Kommunikation zwischen Knoten, was auch den SUSE® Security Containern (Durchsetzer, Controller, Manager) ermöglicht, innerhalb des Clusters zu kommunizieren.
Die Beispiel-Kubernetes-YAML-Datei wird einen Manager und 3 Controller bereitstellen. Es wird ein Durchsetzer auf jedem Knoten als Daemonset bereitgestellt. Hinweis: Es wird nicht empfohlen, mehr als einen Manager hinter einem Lastenausgleicher bereitzustellen (skalieren), da dies zu potenziellen Problemen mit dem Sitzungsstatus führen kann.
Microsoft Azure AKS
Beim Bereitstellen eines K8s-Clusters auf Azure ist die Standardeinstellung für Kubernetes RBACs deaktiviert. Bitte aktivieren Sie RBACs, um die Cluster-Admin-Clusterrolle zu aktivieren, andernfalls müssen Sie diese später manuell erstellen, um Helm-basierte Bereitstellungen zu unterstützen.
Google Cloud Platform / GKE
Sie können die integrierten Lastenausgleicher verwenden, die einfach bereitzustellen sind, indem Sie ‘Type: LoadBalancer’ anstelle von NodePort für die SUSE® Security Weboberfläche verwenden. Die Konfiguration von persistentem Speicher mit dem Typ RWM (Read Write Many) kann erfordern, dass ein Speicherdienst wie NFS erstellt wird, bevor SUSE® Security bereitgestellt wird.
SUSE® Security erfordert ein SDN Plugin wie Flannel, Weave oder Calico.
Verwenden Sie die Umgebungsvariable NV_PLATFORM_INFO mit dem Wert platform=Kubernetes:GKE, damit SUSE® Security GKE-spezifische Aktionen, wie das Ausführen der GKE Kubernetes CIS Benchmarks, durchführen kann.
GKE Autopilot-Unterstützung
Die GKE Autopilot-Unterstützung ist mit NeuVector v5.4.3 und später verfügbar. Bitte folgen Sie den folgenden Schritten, um NeuVector im Autopilot-Cluster bereitzustellen.
Ein AllowlistSynchronizer sollte im Cluster erstellt werden, bevor NeuVector bereitgestellt wird. Hier ist die Konfigurations-YAML mit allowlistPath und dem Befehl zum Anwenden der YAML:
Beispielbefehl zum Anwenden der YAML:
kubectl apply -f allowlist.yaml
Beispiel-YAML-Konfiguration:
apiVersion: auto.gke.io/v1
kind: AllowlistSynchronizer
metadata:
name: neuvector-allowlist
spec:
allowlistPaths:
- SUSE/neuvector-enforcer/v1.0.0/suse-neuvector-enforcer.yaml
- SUSE/neuvector-scanner/v1.0.0/suse-neuvector-scanner.yaml
Überprüfen Sie nach Ausführung des Befehls kubectl apply -f <YAML file>, ob der AllowlistSynchronizer bereit ist.
Beispielbefehl:
kubectl get AllowlistSynchronizer neuvector-allowlist -o yaml
Beispiel-YAML-Konfiguration:
apiVersion: auto.gke.io/v1
kind: AllowlistSynchronizer
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"auto.gke.io/v1","kind":"AllowlistSynchronizer","metadata":{"annotations":{},"name":"neuvector-allowlist"},"spec":{"allowlistPaths":["SUSE/neuvector-enforcer/v1.0.0/suse-neuvector-enforcer.yaml","SUSE/neuvector-scanner/v1.0.0/suse-neuvector-scanner.yaml"]}}
creationTimestamp: "2025-04-28T18:17:16Z"
generation: 1
name: neuvector-allowlist
resourceVersion: "13326"
uid: 3e425c28-9bef-4459-b769-381d974f17f6
spec:
allowlistPaths:
- SUSE/neuvector-enforcer/v1.0.0/suse-neuvector-enforcer.yaml
- SUSE/neuvector-scanner/v1.0.0/suse-neuvector-scanner.yaml
status:
conditions:
- lastTransitionTime: "2025-04-28T18:17:17Z"
message: Synchronization completed successfully; allowlists up to date
observedGeneration: 1
reason: SyncSuccessful
status: "True"
type: Ready
lastSyncAttempt: "2025-04-28T18:17:17Z"
managedAllowlistStatus:
- filePath: SUSE/neuvector-enforcer/v1.0.0/suse-neuvector-enforcer.yaml
generation: 1
lastSuccessfulSync: "2025-04-28T18:17:16Z"
phase: Installed
- filePath: SUSE/neuvector-scanner/v1.0.0/suse-neuvector-scanner.yaml
generation: 1
lastSuccessfulSync: "2025-04-28T18:17:17Z"
phase: Installed
Die untenstehende override.yaml Datei muss verwendet werden, um NeuVector im GKE Autopilot-Cluster bei Verwendung von Helm bereitzustellen.
cve:
scanner:
podLabels:
# The scanner allowlist should be mapped with scanner deployment workload.
cloud.google.com/matching-allowlist: suse-neuvector-scanner
resources:
# Below are the tested limits for scanner deployment in GKE Auto-Pilot cluster for scanner pod.
limits:
ephemeral-storage: "3Gi"
requests:
ephemeral-storage: "2Gi"
enforcer:
podLabels:
# The enforcer allowlist should be mapped with the enforcer daemon set workload.
cloud.google.com/matching-allowlist: suse-neuvector-enforcer
Wenn Sie die YAML-Bereitstellung verwenden, fügen Sie bitte die podLabels und die Ressourcengrenzen in den enforcer und scanner YAML-Konfigurationen entsprechend hinzu.
Um mehr über den allowlistSynchronizer zu erfahren, sehen Sie sich die GKE-Dokumentation an.
Verwaltung von Auto-Scaling-Knoten mit einem Pod-Störungshaushalt
Öffentliche Cloud-Anbieter unterstützen die Möglichkeit, Knoten automatisch zu skalieren, was Pods, einschließlich der SUSE® Security Controller, dynamisch entfernen kann. Um Störungen der Controller zu verhindern, kann ein SUSE® Security Pod-Störungshaushalt erstellt werden.
Zum Beispiel erstellen Sie die untenstehende Datei nv_pdr.yaml, um sicherzustellen, dass jederzeit mindestens 2 Controller ausgeführt werden.
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: neuvector-controller-pdb
namespace: neuvector
spec:
minAvailable: 2
selector:
matchLabels:
app: neuvector-controller-pod
Dann
kubectl create -f nv_pdr.yaml
Für weitere Informationen: https://kubernetes.io/docs/tasks/run-application/configure-pdb/