Palo Alto Networks gibt fünf Tipps für die sichere Einführung von Infrastructure as Code

Infrastructure as Code (IaC) ermöglicht es, Cloud-Infrastrukturen in Code zu entwerfen, zu erstellen, bereitzustellen und zu verwalten, anstatt sich durch die Benutzeroberfläche eines Cloud-Anbieters zu klicken oder eine lange Liste von CLI-Befehlen zu verwenden. [...]

(Quelle: Palo Alto Networks)

IaC – insbesondere deklaratives IaC – 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.

Diese Methode zum Aufbau einer Cloud-Infrastruktur ist besser skalierbar als die Ausführung von Ad-hoc-Befehlen, da alle Konfigurationen zentral gespeichert und versionskontrolliert sind.

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

  • Ein Unternehmen möchte eine neue Region für die Notfallwiederherstellung hinzufügen? Dann genügt es die gleichen Templates in einer neuen Region auszuführen.
  • Ein Unternehmen arbeitet mit einem großen Team an denselben Templates? Versionskontrollsysteme (VCS) ermöglichen die Zusammenarbeit über Codekommentare im Code selbst.
  • Ein Unternehmen möchte eine Änderung rückgängig machen?

Einfach die Änderungen im Code rückgängig machen und den Befehl „apply“ erneut ausführen, oder, wenn man GitOps verwendet, einfach „git revert“ ausführen.

IaC bietet auch eine neue Möglichkeit für die Sicherheit. Da die eigentlichen Befehle von den Tools abstrahiert werden, können viele Plattformen sicherere Standardeinstellungen als die der Cloud-Anbieter verwenden.

Es ist auch eine Möglichkeit, Fehlkonfigurationen zu erkennen, bevor sie zu einem Problem für die Öffentlichkeit werden. So können Sie beispielsweise verhindern, dass ein Speicher-Bucket ohne Verschlüsselung bereitgestellt wird, anstatt auf eine Laufzeitwarnung zu warten, wenn dieser Bucket bereits offengelegt ist.

Die Übernahme von IaC aus traditionellen UI- oder CLI-Konfigurationen wird nicht über Nacht geschehen.

Palo Alto Networks nennt einige Tipps, die Unternehmen bei der Einführung von IaC beachten sollten.

1. Mit einer Greenfield-Anwendung beginnen

Prisma Cloud hat vielen Kunden geholfen, den Übergang von manuellen Konfigurationen zu einer sicheren IaC-Nutzung zu vollziehen. Am einfachsten ist es, mit einer neuen Anwendung zu beginnen und alles von Anfang an zu machen.

Beginnen Sie mit einer neuen Anwendung, die sich in der Entwicklung befindet, einer Anwendung, die gerade überarbeitet wird, oder einer Anwendung, die ständig aktualisiert wird und die Sie von Grund auf Cloud-nativ aufbauen können.

Befolgen Sie Best Practices und halten Sie sich so genau wie möglich an die Sicherheits- und Compliance-Anforderungen.

Auf der Grundlage dieser Erkenntnisse können Sie dann damit beginnen, Ihre Legacy-Anwendungen so umzugestalten, dass IaC für alle Aktualisierungen der Infrastruktur verwendet wird.

2. Best Practices anhand des eigenen, echten Codes erlernen

Wann immer Sie eine neue Fähigkeit erlernen, wie z.B. IaC-Sicherheit, geht nichts über das Lernen durch Handeln. Statische IaC-Analyse-Tools wie Checkov haben über 800 Richtlinien für verschiedene IaC-Templates. All diese Richtlinien zu lernen, indem man über sie liest, führt nicht dazu, dass sie im Gedächtnis haften bleiben.

Der beste Weg, IaC-Best-Practices zu erlernen und sich als Plattform-Ingenieur weiterzuentwickeln, besteht darin, Code zu schreiben, ein Tool und Teamkollegen zu haben, die Feedback zu diesem Code geben und aus ihren Erkenntnissen lernen.

Das Aufspüren von Fehlkonfigurationen hilft Ihnen zu verstehen, was die Richtlinien sind, warum sie riskant sind und wie man sie vermeiden kann. Durch diese „Learning by doing“-Methode werden die Richtlinien zur zweiten Natur.

3. Vorhandenen Code als Ausgangspunkt nutzen

Wie jeder andere Code ist auch Open-Source-Code eine Möglichkeit, eine neue Entwicklung anzustoßen. Es gibt keinen Grund, das Rad neu zu erfinden, wenn Sie eine Architektur bereitstellen wollen. Stattdessen können Sie die Vorteile von öffentlichen und privaten Modulen, Registern und Repositories nutzen.

Dies entbindet Sie jedoch nicht von der Sicherheitshygiene. Eine kürzlich durchgeführte Analyse der besten 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.

Genau wie das Modell der geteilten Verantwortung in der Cloud werden die Module in diesen Registrys und Repositories speziell für Funktionalität und Benutzerfreundlichkeit entwickelt – nicht für die Einhaltung von Vorschriften. Es liegt in Ihrer Verantwortung, die bewährten Sicherheitsverfahren zu verstehen und zu wissen, welche Industriestandards Sie einhalten müssen.

„Forken“ Sie also das Repository der Person, die die Infrastruktur für ihre Webanwendung in Terraform erstellt hat, als Schnellstart, aber nutzen Sie die Sicherheitskontrollen, um Sicherheits- und Compliance-Verstöße zu beheben, bevor Sie die Templates anwenden.

4. In allen Phasen umsetzbares Feedback geben

Der effektivste Zeitpunkt, um eine Fehlkonfiguration zu beheben, ist jederzeit, bevor ein böser Akteur dieses Problem ausnutzt. Am effizientesten und mit dem geringsten Aufwand lassen sich Fehlkonfigurationen jedoch in der Anforderungs- und Entwurfsphase erkennen und beheben.

Häufiges, konsistentes Feedback in jeder Phase des Softwareentwicklungszyklus ist der beste Weg, um Probleme zu finden und zu beheben.

  • 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.

Hören Sie damit nicht auf. Setzen Sie die Suche nach Fehlkonfigurationen mit Hilfe von Tools und Überprüfungen in Ihrer Cloud-Umgebung während der Laufzeit fort. Indem Sie in jeder Phase prüfen, entdecken Sie Dinge, die bei früheren Überprüfungen durchgerutscht sind, und Dinge, die erst nach der vollständigen Bereitstellung falsch konfiguriert erscheinen.

Unabhängig davon, wo Sie Ihr Sicherheitsfeedback einbringen, freuen Sie sich immer über gefundene Fehler und beschämen Sie nicht den Ingenieur, der sie verursacht hat.

Es ist besser, zu teilen und zu lernen als zu beschämen und zu leugnen. Dieses Lernen auf Augenhöhe hat gut dokumentierte Vorteile und beschleunigt die Entwicklung.

5. 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 eindeutige betriebliche Vorteile, wie z. B. eine höhere Betriebszeit und eine kürzere mittlere Zeit bis zur Problemlösung (Mean Time to Resolution, MTTR).

Das Erstellen und Ändern aller Konfigurationen im Code fühlt sich anfangs unangenehm an. Sie könnten versucht sein, in eine Cloud-Benutzeroberfläche zu springen und eine kleine Änderung vorzunehmen, z. B. 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.

Tun Sie das nicht! Wenn Sie Änderungen direkt in Ihrer Cloud-Benutzeroberfläche vornehmen, werden alle in der Einleitung aufgeführten IaC-Vorteile zunichtegemacht.

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 Ihre IaC-Templates veraltet und nicht mehr so nützlich, und es wird schwieriger, mit Kollegen über die Änderungen an Ihrer Cloud-Infrastruktur zusammenzuarbeiten.

Wie im vorangegangenen Abschnitt erwähnt, ist Drift kein Grund, sich zu schämen. Gehen Sie den Drift-Ereignissen auf den Grund und lernen Sie aus ihnen. Handelt es sich bei dem aufgetretenen Drift um ein einmaliges Ereignis oder ist er systematisch? Sie müssen das Kernproblem angehen und wieder alle Änderungen am Code vornehmen.

Wenn Sie das Reparieren von Laufzeitkonfigurationen im Code oft genug wiederholt haben, wird es Ihnen zur zweiten Natur werden. Sie müssen eine neue IP-Adresse hinzufügen, um sich per SSH in eine VM einzuwählen?

Wenn Sie das oft genug gemacht haben, wissen Sie genau, wo Sie den Ressourcenblock in der IaC-Datei finden, fügen die neue IP-Adresse hinzu und führen den „apply“-Befehl aus, um es schnell zu erledigen.

IaC bietet viele Vorteile

Die Verwendung von IaC für die Verwaltung aller Cloud-Konfigurationen hat eindeutige Geschwindigkeits- und Betriebsvorteile.

Wenn es richtig gemacht wird, kann es auch eine sichere Cloud-Umgebung schaffen, bevor etwas bereitgestellt wird. Mit diesen Tipps können Unternehmen  mit der Entwicklung sicherer Anwendungen beginnen und die Belastung der Technik- und Sicherheitsteams verringern.

Ein letzter Tipp von Palo Alto Networks: Jeder Fehler ist eine Gelegenheit, im Team zu lernen. Erzwingen Sie, dass alle Konfigurationen im Code vorgenommen werden, damit vor der Bereitstellung ordnungsgemäße Sicherheitsprüfungen durchgeführt werden können, und damit Teams offen an den Änderungen in einem VCS zusammenarbeiten können.

Ermutigen Sie zum Lernen, indem Sie sowohl die Erfolge als auch die Wachstumschancen feiern. Die Einführung von IaC ist eine aufregende Reise, die den Betrieb und die Sicherheit erheblich verbessern wird, wenn sie sicher durchgeführt wird.


Mehr Artikel

Unternehmen legen ihren Fokus auf Investitionen zur Performancesteigerung durch Künstliche Intelligenz. (c) Pexels
News

GenAI: Vom Experiment zum strategischen Werkzeug

KI hat sich von einem Hype zu einem strategischen Gamechanger entwickelt. Laut einer Studie von NTT DATA ist die Experimentierphase für generative KI (GenAI) endgültig vorbei. Stattdessen stehen nun konkrete Pläne zur langfristigen Nutzung im Vordergrund – mit dem Ziel, Performance, Arbeitsplatzkultur, Compliance, Sicherheit und Nachhaltigkeit zu optimieren. […]

News

Internationale Konferenz zeigt den Weg zur datengetriebenen Zukunft

Am 13. November 2024 fand im Bundesministerium für Klimaschutz, Umwelt, Energie, Mobilität, Innovation und Technologie (BMK) die Global Data Spaces Connect 2024 (GDSC24) statt, eine internationale Plattform, die Akteur:innen aus Wirtschaft, Wissenschaft und öffentlicher Verwaltung zu einem Austausch über den aktuellen Stand und die Zukunft der Datenräume (Data Spaces) zusammenbrachte. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*