Skip to main content

Sicher entwickeln mit Snyk und GKE Autopilot

Artikel von
Headshot of Jay Yeras

Jay Yeras

Kubernetes Blog

14. Dezember 2021

0 Min. Lesezeit

Sprechen Sie mit beliebigen Kunden aus der Tech-Branche, und das Wort Kubernetes wird früher oder später mit Sicherheit fallen. Kubernetes bietet Nutzern Orchestrierung, automatisierte Deployments, Skalierung und die Verwaltung containerisierter Anwendungen, um der wachsenden Kundennachfrage gerecht zu werden – und das bei hoher Erweiterbarkeit und Flexibilität. Dieser entscheidende Vorteil der Kubernetes-Technologie, kurz K8s, und die Tatsache, dass K8s bei Google für den Betrieb von Produktions-Workloads entwickelt wurde, erklären die breite Akzeptanz in der Branche.

Google Kubernetes Engine (GKE) wurde im einzigartigen Innovationsgeist von Google entwickelt und bietet Kunden einen Managed Service, um Kubernetes-Workloads auf Google Cloud auszuführen. Mit der kürzlich erfolgten Einführung von GKE Autopilot profitieren Kunden von höherer betrieblicher Effizienz: Ein neuer Betriebsmodus senkt die Betriebskosten und bietet optimierte Cluster-Konfigurationen, die Best Practices entsprechen, skalierbar sind und Produktions-Workloads unterstützen.

Moderne Anwendungen

Beim Entwickeln moderner Anwendungen gibt es verschiedene Ebenen, aus denen sich eine Anwendung zusammensetzt. Ein containerisierter Workload umfasst beispielsweise in der Regel mindestens vier unterschiedliche Elemente: das Container-Image, den Anwendungscode, Open-Source-Abhängigkeiten und die Anwendungskonfiguration. Jede dieser Ebenen kann Angreifern eine potenzielle Möglichkeit bieten, Schwachstellen, Exploits und Fehlkonfigurationen auszunutzen.

Die Snyk-Plattform unterstützt Entwickler dabei, Software über den gesamten Cloud-Native-Anwendungsstack hinweg sicher zu entwickeln – einschließlich Code, Open Source, Containern, Kubernetes und Infrastructure as Code (IaC).

Umfassende Sicherheit

Ein Einblick in potenzielle Schwachstellen in den verschiedenen Ebenen Ihrer Anwendung ist nur der erste Schritt. Snyk liefert Entwicklern konkrete Erkenntnisse, die nicht nur für Transparenz sorgen, sondern auch Priorisierung und Empfehlungen zur Behebung ermöglichen. Sicherheitsprobleme zu finden ist gut – ein zuverlässiger Weg, sie zu beheben, ist noch besser. Snyk skaliert Sicherheitsfunktionen, indem Entwickler in die Lage versetzt werden, Schwachstellen in Container-Images zu beseitigen: durch ein Upgrade auf ein sichereres Basis-Image oder einen Neuaufbau der Anwendung, wenn das Basis-Image veraltet ist.

Snyk führt Schwachstellen in Anwendungen und Containern zusammen. Möglicherweise haben Sie nicht immer Zugriff auf den Quellcode, der in Ihren Containern ausgeführt wird. Trotzdem ist es wichtig, Schwachstellen in den Code-Abhängigkeiten zu kennen. Snyk erkennt und überwacht beim Container-Scan Open-Source-Abhängigkeiten für gängige Programmiersprachen und außerdem Fehlkonfigurationen in Ihren Kubernetes-Manifesten.

Workloads scannen

Snyk ist ab sofort im Google Cloud Marketplace verfügbar. Kunden mit einem Snyk-Business- oder Enterprise-Tarif können unsere Kubernetes-Integration ganz einfach aktivieren und ihre Workloads auf GKE – einschließlich Autopilot-Clustern – mit nur wenigen Klicks absichern. In diesem Beitrag zeigen wir Ihnen, wie Sie einen GKE-Autopilot-Cluster bereitstellen, eine Beispielanwendung deployen und das Helm-Chart snyk-monitor installieren.

Sehen wir uns einige Beispiele für grundlegende Schritte an, die Sie in einem Terminal oder in der Cloud Shell ausführen können, um Snyk Container auf GKE Autopilot bereitzustellen.

Namespace erstellen

kubectl create namespace snyk-monitor

Secret erstellen

kubectl create secret generic snyk-monitor -n snyk-monitor \    
  --from-literal=dockercfg.json={} \
  --from-literal=integrationId=abcd1234-abcd-1234-abcd-1234abcd1234

Helm-Repository hinzufügen

helm repo add snyk-charts https://snyk.github.io/kubernetes-monitor/ --force-update

Chart installieren

helm upgrade --install snyk-monitor snyk-charts/snyk-monitor \
  --namespace snyk-monitor \
  --set pvc.enabled=true \
  --set pvc.create=true \
  --set pvc.name="snyk-monitor-pvc" \
  --set clusterName="my-cluster" \
  --set nodeAffinity.disableBetaArchNodeSelector=true \
  --set requests.memory="512Mi" \
  --set requests."ephemeral-storage"="50Gi" \
  --set limits."ephemeral-storage"="50Gi"

Mit diesen Befehlen wird Snyk auf GKE Autopilot bereitgestellt. Anschließend können Sie Workloads mit Snyk scannen und überwachen.

Diagramm eines Kubernetes-Clusters mit den Komponenten default, kube-system, snyk-monitor und node, die mit Snyk verbunden sind.

Ergebnisse prüfen

Von Snyk überwachte Projekte liefern Ihnen einen zusammenfassenden Bericht mit einem Überblick über die verschiedenen Ebenen Ihrer Anwendung sowie der Gesamtzahl der Schwachstellen, aufgeschlüsselt nach Schweregrad. In diesem Beispiel sehen wir zwei Kubernetes-Deployments, die zu einer Beispielanwendung gehören und Informationen zum Container-Image sowie zu den Open-Source-Abhängigkeiten im Anwendungscode enthalten.

Snyk Projects-Dashboard mit importierten GKE-Autopilot-Projekten, Schweregraden von Sicherheitslücken und Berichtslinks

Wenn wir eines der Deployments genauer untersuchen, erhalten wir eine erweiterte Ansicht mit zusätzlichen Informationen. So können wir beispielsweise detaillierte Kontextdaten zu Schwachstellen in unserer Anwendung und zu Fehlkonfigurationen in unseren Kubernetes-Manifesten einsehen. Dank der integrierten Optimierungen von GKE Autopilot werden einige Fehlkonfigurationen sofort reduziert, da Speicher- und CPU-Limits beim Deployment automatisch festgelegt werden. In unserer Beispiel-Manifestdatei wurde absichtlich kein Sicherheitskontext definiert. Da sich die Kenntnis der Kubernetes-Sicherheits-Best-Practices und ihre Umsetzung von Kunde zu Kunde unterscheiden, ist es umso wichtiger, diese Probleme transparent zu machen und vor allem Empfehlungen zu ihrer Behebung zu geben.

Snyk-Dashboard mit Sicherheitsprüfungen der Konfiguration und Schwachstellen einer Kubernetes-Bereitstellung. Mehrere Konfigurationsprüfungen sind als FEHLGESCHLAGEN gekennzeichnet.

Wenn Entwickler die Sicherheitsergebnisse für das in ihrer Anwendung verwendete Container-Image genauer untersuchen, erhalten sie schnell umsetzbare Empfehlungen für einen geeigneten Upgrade-Pfad. So können sie fundiert entscheiden, welches Image sich am besten zur Behebung von Sicherheitsproblemen eignet.

Snyk-Dashboard mit Details zum Basis-Image eines Container-Images und Empfehlungen für ein Upgrade von node:10.4.1-jessie auf node:17.0.0-bullseye-slim

Zusammen mit den Ergebnissen der Software Composition Analysis (SCA) decken diese Erkenntnisse die verschiedenen Ebenen moderner Cloud-Native-Anwendungen umfassend ab.

Die Snyk-Code-KI-Engine nutzt ein spezielles Verfahren, das maschinelles Lernen anhand von Millionen Open-Source-Commits mit Feedback aus dem Snyk-Security-Research-Team kombiniert, um den Bericht noch aussagekräftiger zu machen.

Fazit

Die Snyk-Plattform funktioniert nahtlos mit GKE Autopilot, einer Revolution im Bereich Managed Kubernetes. Kunden können mit der Kubernetes-Integration von Snyk Container schnell mit der Absicherung ihrer Workloads auf GKE Autopilot beginnen. Außerdem können sie die Snyk CLI mit Google Cloud Build sowie Integrationen mit Google Container Registry, Google Artifact Registry und einer der verschiedenen SCM-Integrationen für Snyk-Git-Repositories nutzen.

Möchten Sie mehr darüber erfahren, wie Sie Kubernetes-Workloads sicher entwickeln? Melden Sie sich für ein kostenloses Snyk-Konto an!

Sichern Sie Ihre Infrastruktur an der Quelle

Snyk automatisiert die IaC-Sicherheit und Compliance in Workflows und erkennt abweichende sowie fehlende Ressourcen.