Infrastructure as Code Fünf Tipps zur IaC-Einführung

Von Barbara Miletic

Anbieter zum Thema

Die Verwendung von Infrastructure as Code (IaC) sollen den IT-Alltag erleichtern. Sie ermöglicht es, eine automatisierte Cloud-Umgebung zu schaffen. Die Sicherheitsexperten von Palo Alto geben fünf Tipps, wie Unternehmen mit der sicheren Anwendung beginnen.

Palo Alto Networks gibt fünf Tipps für die sichere Einführung von Infrastructure as Code.
Palo Alto Networks gibt fünf Tipps für die sichere Einführung von Infrastructure as Code.
(Bild: monsitj - stock.adobe.com)

Schnell, sicher und entlastend – was wünscht man sich mehr? Infrastructure as Code bietet Unternehmern Vorteile. Infrastrukturleistungen lassen sich effizient, kostengünstig und in variablem Umfang bereitstellen. Rechenleistung, Speicher und Netzwerk können auf Basis eines maschinenlesbaren Codes nachvollzogen werden. Für den User erübrigt es sich somit, sich durch die Benutzeroberfläche eines Cloud-Anbieters zu klicken.

Durch IaC wird die Cloud-Infrastruktur in Code entworfen und verwaltet. Es vereinfacht den Prozess der Konfiguration einer Ressource, indem es den Endzustand dessen definiert, was erstellt werden soll. Frameworks wie Terraform, CloudFormation und Azure Resource Manager (ARM) führen alle Skripte aus, um diese Ressourcen richtig bereitzustellen.

Wie steht es um die Sicherheit bei der Einführung von Infrastructure as Code? Dieser Frage geht Palo Alto Networks nach.

Mit einer Greenfield-Anwendung beginnen

Prisma Cloud hilft Kunden, den Übergang von der manuellen Konfigurationen zu einer sicheren IaC-Nutzung zu vollziehen. Der Experte empfiehlt, mit einer neuen Anwendung zu beginnen und alles von Anfang an zu machen.

Unternehmen sollten am besten mit einer neuen Anwendung starten, die sich in der Entwicklung befindet, die gerade überarbeitet oder die regelmäßig aktualisiert wird. Diese Anwendung kann so von Grund auf Cloud-nativ aufgebaut werden. Hilfreich ist es dabei, sich an Best Practices zu orientieren. Daraufhin können Anwender damit beginnen, die Legacy-Anwendungen so umzugestalten, dass IaC für alle Aktualisierungen der Infrastruktur verwendet werden kann.

Best Practices anhand eigener Codes erlernen

Lernen geht bekanntlich am besten durch Handeln. Das gilt auch für die IaC-Sicherheit. Statische IaC-Analyse-Tools wie Checkov haben über 800 Richtlinien für verschiedene IaC-Templates.

Probieren geht über Studieren. Um sich die IaC-Best-Practices langfristig anzueignen, empfiehlt es sich, den Code selbst zu schreiben und ein Tool für die Teamkollegen für Feedback zu haben. Das Aufspüren von Fehlkonfigurationen hilft zu verstehen, was die Richtlinien sind, warum sie riskant sind und wie man sie vermeiden kann. Durch „Learning by doing“ wird man mit den Richtlinien vertraut.

Vorhandenen Code als Ausgangspunkt nutzen

Der Open-Source-Code ist eine Möglichkeit, eine Entwicklung anzustoßen. Anwender können aber auch öffentliche und private Module, Register sowie Repositories nutzen. Die Sicherheitshygiene sollte dennoch durchgeführt werden. Eine Analyse von Sicherheits- und Compliance-Praktiken für 2.600 Terraform Registry-Module und Tausende von Helm-Diagrammen in Artifact Hub ergab, dass 44 Prozent aller Terraform-Module in der Terraform Registry eine Fehlkonfiguration enthielten und 71 Prozent der Helm-Diagramme in Artifact Hub eine Fehlkonfiguration enthielten.

Funktionalität und Benutzerfreundlichkeit stehen bei den Modulen in diesen Registrys und Repositories im Vordergrund. Es liegt in der Verantwortung der Anwender, die bewährten Sicherheitsverfahren zu verstehen und zu wissen, welche Industriestandards eingehalten werden sollen. So kann beispielsweise das Repository der Person, die die Infrastruktur für die Webanwendung in Terraform erstellt hat, als Schnellstart dienen. Daneben sollten die Sicherheitskontrollen, um Sicherheits- und Compliance-Verstöße zu beheben, vor Anwendung der Templates genutzt werden.

In allen Phasen umsetzbares Feedback geben

Ein effektiver Zeitpunkt, um Fehlkonfigurationen zu beheben, ist jederzeit, bevor ein böser Akteur dieses Problem ausnutzt. Effizient und mit geringem Aufwand lassen sich Fehlkonfigurationen in der Anforderungs- und Entwurfsphase erkennen und beheben. Häufiges, konsistentes Feedback in jeder Phase des Softwareentwicklungszyklus ist ein guter Weg, um Probleme zu finden und zu beheben.

Palo Alto empfiehlt:

  • Beziehen Sie einen Sicherheitsexperten in die Besprechungen zur Anforderungsermittlung und zum Entwurf ein, um Sicherheitsaspekte in die Anforderungen für jede Ergänzung oder Aktualisierung aufzunehmen.
  • Integrieren Sie automatisierte Sicherheitstests lokal in IDEs, um den Ingenieuren direkt an der Quelle und im Kontext Feedback zu geben.
  • Identifizieren Sie Fehlkonfigurationen während des CI/CD-Prozesses und verhindern Sie, dass inakzeptable Probleme zu einem Repository hinzugefügt oder bereitgestellt werden.
  • Nutzen Sie Ihr VCS als Ort, um Verstöße gegen Best Practices direkt in Code-Kommentaren zu Pull-Requests/Merge-Requests zu diskutieren.

Dabei sollte die Suche nach Fehlkonfigurationen mit Hilfe von Tools und Überprüfungen in der Cloud-Umgebung fortwährend in Angriff genommen werden. Indem die Experten in jeder Phase prüfen, können möglicherweise vorher unentdeckte Fehler unter die Lupe genommen werden.

Zur positiven Zusammenarbeit bei der IT-Security trägt bei, das Sicherheitsfeedback und das gemeinsame Lernen auf Augenhöhe zu teilen. Palo Alto gibt mit auf den Weg: Jeder Fehler ist eine Gelegenheit, im Team zu lernen. Ermutigen Sie zum Lernen, indem Sie sowohl die Erfolge als auch die Wachstumschancen feiern.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Korrekturen im Code vornehmen

Der Prozess, alles im Code zu machen und über ein VCS einzuchecken und mit CI/CD-Automatisierung bereitzustellen, wird GitOps genannt. GitOps hat Vorteile wie eine höhere Betriebszeit und eine vergleichsweise kürzere mittlere Zeit bis zur Problemlösung (Mean Time to Resolution, MTTR).

Das Erstellen und Ändern aller Konfigurationen im Code kann laut Experten anfangs ungewohnt sein. Palo Alto führt aus: „Sie könnten versucht sein, in eine Cloud-Benutzeroberfläche zu springen und eine kleine Änderung vorzunehmen, zum Beispiel das Hinzufügen einer neuen IP-Adresse, mit der Sie sich per SSH in eine VM einwählen können, oder das Hinzufügen von Verschlüsselung zu einem Speicher-Bucket.“ Dies sollte man lassen. „Wenn Sie Änderungen direkt in Ihrer Cloud-Benutzeroberfläche vornehmen, werden alle in der Einleitung aufgeführten IaC-Vorteile zunichtegemacht“, so die Spezialisten.

Die manuelle Bearbeitung von Konfigurationen führt zu einem Drift, bei dem der Code nicht mit dem übereinstimmt, was in der Cloud läuft. Dadurch werden die IaC-Templates veraltet und nicht mehr nützlich. Zudem wird es schwieriger, mit Kollegen über die Änderungen an der Cloud-Infrastruktur zusammenzuarbeiten. Auch wenn es zum Drift kommt, gilt es, daraus zu lernen und zu überprüfen, ob es sich um ein einmaliges Ereignis handelt oder ob er systematisch ist. Das Kernproblem sollte angegangen und alle Änderungen am Code wieder vorgenommen werden.

Das Reparieren von Laufzeitkonfigurationen im Code ist Übungssache. Muss der Anwender eine neue IP-Adresse hinzufügen, um sich per SSH in eine VM einzuwählen? Wenn er das oft genug gemacht hat, weiß er genau, wo er den Ressourcenblock in der IaC-Datei findet, fügt die neue IP-Adresse hinzu und führt den „apply“-Befehl aus, um es schnell zu erledigen.

(ID:49015493)