Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

2016 wurde ich im Rahmen einer großen Cloud-Migration mit der Erstellung von Cloud-Computing-Kontrollen beauftragt. Diese Kontrollen basierten auf Standards, die von unsererOrganisation angenommen und entwickelt wurden, und sie verhinderten unerwünschte und potenziell gefährliche Änderungen in unseren Cloud-Umgebungen. Ich begann mit dem Schreiben der Kontrollen mit dem, was ich für das beste Werkzeug in meinem Werkzeugkasten hielt: Java. Ich war ein Java-Sachverständiger (SME) und der Cloud-Provider (CSP) bot ein ausgereiftes Java Software Development Kit (SDK) an.

Die erste und, wie sich herausstellte, letzte Kontrolle, die ich in Java geschrieben habe, erzwang die Verschlüsselung von Daten im Ruhezustand bei der Speicherung von Objekten. Es gibt bestimmte Kontrolltypen im Cloud Computing, die ich als grundlegend für sicheres Computing betrachte, und die Verschlüsselung von Daten im Ruhezustand und bei der Übertragung steht ganz oben auf meiner Liste.

Mir wurde schnell klar, dass das Erstellen und Ausführen einzelner Programme oder Module zur Implementierung von Kontrollen für die riesige Sammlung von Cloud Computing-Diensten und ihren jeweiligen Funktionen nicht skalierbar oder leicht zu unterstützen war. Code zu schreiben, um das SDK zu nutzen, war zu wenig anspruchsvoll. Ich kam zu langsam voran, und es war schwierig, meinen Ansatz so zu verbreiten, dass er auf breiter Basis angenommen werden konnte. Die für Standards und Kontrollen zuständigen Mitarbeiter waren keine Java-Programmierer, und ich konnte nicht erwarten, dass sie Java lernen, nur um neue Kontrollen zu entwickeln oder die bereits entwickelten zu unterstützen.

Ich brauchte die Politik als Code

Ich brauchte eine abstraktere Lösung - vielleicht eine domänenspezifische Sprache (DSL) -, die ein gemeinsames Lexikon bietet, das den Leuten, die die Cloud-Computing-Kontrollen festlegen, vertrauter ist. Unabhängig von der zugrundeliegenden Implementierung sollten die Nutzer, die die Kontrollen definieren, Experten für Cloud Computing-Kontrollen sein und nicht für die Technologie, mit der die Kontrollen implementiert werden. Die Lösung, für die ich mich entschied, war Cloud Custodian (c7n).

C7n wurde von einem Kollegen von mir entwickelt und hat sich im Laufe der Zeit bei Cloud-Computing-Nutzern und -Anbietern durchgesetzt. Mit c7n haben wir Regel-Engines in unseren Cloud-Umgebungen eingesetzt und Richtlinien mit einer kontrollfreundlichen YAML-DSL geschrieben. Außerdem erforderte die DSL keine Kenntnisse des Python-Codes, der für die Erstellung von c7n verwendet wurde. C7n war das erste Policy as Code (PaC) Tool, das ich verwendet habe.

Hinweis

Unter Policy as Code (PaC) - dem Schwerpunkt dieses Buches - versteht man die Verwendung von Code-Artefakten zur Verwaltung und Anwendung von Regeln und Bedingungen. Policy Engines sind die Programme, die Policy Artefakte interpretieren, um Policy Entscheidungen anzuwenden. Die in den Richtlinienartefakten definierten Regeln und Bedingungen helfen uns bei der Umsetzung von Standards und Richtlinien, die wir erstellt oder angenommen haben. Diese Implementierungen - bekannt als Kontrollen - dienen derSicherheit, der Einhaltung von Vorschriften, der Unternehmensführung und der Anwendungbewährter Methoden, um unerwünschte Änderungen in den von uns unterstützten und genutzten Systemen zu verhindern und darauf zu reagieren.

Aus dieser Erfahrung lernte ich, dass Sicherheit, Compliance und Governance den Fortschritt nicht behindern müssen. Wir schrieben Richtlinien, die als Grenzen dienten, zwischen denen unsere Cloud-Ingenieure arbeiteten. Diese Grenzen hielten sie nicht auf; vielmehr lernten unsere Ingenieure die Kontrollen, die sie befolgen mussten, und wir reduzierten unerwünschte Änderungen in unseren Cloud-Umgebungen. Wir verwalteten die c7n-Richtlinien wie andere Code-Artefakte und nutzten Tools für die kontinuierliche Integration (CI) und die kontinuierliche Bereitstellung (CD), um unsere Richtlinien und Cloud-Umgebungen auf dem neuesten Stand zu halten.

PaC-Lösungen ermöglichen es den Nutzern, Richtlinien zu schreiben, um Verhaltensweisen durchzusetzen. Diese Verhaltensweisen werden in Sicherheits-, Compliance- und Governance-Kontrollen sowie in bewährten Methoden berücksichtigt. PaC kann - mit geeigneten Richtlinien - nicht-deterministische Verhaltensweisen in deinen Artefakten und Systemen reduzieren oder sogar eliminieren. Und wenn es um die Sicherung von Systemen geht, sind weniger Überraschungen im Allgemeinen eine gute Sache.

Wer sollte dieses Buch lesen?

Dieses Buch richtet sich an DevOps-Praktiker, Betreiber von Kubernetes-Clustern, Sicherheitsingenieure und alle, die für einen sicheren Betrieb in Cloud-Native- und Everything-as-Code-Umgebungen sorgen sollen. In diesem Buch stelle ich PaC-Konzepte und Anwendungsfälle vor und zeige dir Muster und Lösungen, mit denen du PaC erfolgreich für deine Sicherheits-, Compliance- und Governance-Anforderungen nutzen kannst. Ich denke, dieses Buch kann denjenigen von euch als Referenz dienen, die PaC verstehen und die richtige Lösung für ihre Anwendungsfälle auswählen müssen. Du kannst dieses Buch auch nutzen, um Techniken und Muster zu entdecken, die du sofort anwenden kannst. Ich denke, dass einige von euch dieses Buch noch einmal lesen werden, um ein tieferes Verständnis für die verschiedenen Aspekte von PaC zu erlangen.

In diesem Buch geht es um PaC und PaC-Lösungen, die größtenteils herstellerneutral und unabhängig von CSPs sind. Am Ende dieses Buches solltest du die PaC-Theorie und -Funktionen sowie Anwendungsfälle, Muster und bewährte Methoden für Sicherheits-, Compliance- und Governance-Kontrollen besser verstehen. In Kapitel 1 stelle ich dir ein Verfahren vor, mit dem du die richtige PaC-Lösung für deine Bedürfnisse und Möglichkeiten auswählen kannst. Wenn du dieses Buch liest, kannst du dich immer wieder auf diesen Prozess beziehen, um jede Lösung und ihre potenzielle Eignung für deine Bedürfnisse besser zu verstehen.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele usw.) steht unter https://github.com/Policy-as-Code-Book zum Download bereit.

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.

Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Policy as Code von Jimmy Ray (O'Reilly). Copyright 2024 Jimmy Ray, 978-1-098-13918-6."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter https://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/policy-as-code aufrufen .

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Du findest uns auf LinkedIn: https://linkedin.com/company/oreilly-media.

Sieh uns auf YouTube: https://youtube.com/oreillymedia.

Danksagungen

Obwohl ich der einzige Autor bin, der in diesem Buch aufgeführt ist, und ich mich allein auf den Weg gemacht habe, um dieses Buch zu schreiben, habe ich mich sofort dabei ertappt, wie ich die Ratschläge meiner Vorgänger und anderer KMUs der Branche gesucht habe. Ich begann mit diesem Projekt, als ich noch bei AWS arbeitete, und Michael Hausenblas - mein Kollege und ein produktiver Autor, dessen Bücher ich normalerweise von vorne bis hinten lese - half mir, mit O'Reilly und dem Schreibprozess zu beginnen. Ohne Michaels Erfahrung und Wissen als Wegbereiter wäre es viel schwieriger gewesen, dieses Projekt zu starten.

Ich hatte das Glück, während des Prozesses technische Überprüfungen, fachliche Expertise, kritisches Feedback und Ermutigung von mehreren Personen zu erhalten, denen ich zu Dank verpflichtet bin, auch wenn sie es nicht wissen. Anders Eknert, Jesse Loudon und Rosemary Wang waren meine ersten technischen Prüfer. Sie waren hartnäckig, forderten mich heraus, über meinen Tellerrand hinauszuschauen und die Bedürfnisse meiner Leserinnen und Leser zu berücksichtigen, und sie legten die Messlatte und meine Erwartungen hoch. Sie halfen mir während des Schreibens dieses Buches bei allgemeinen Policy-, Kubernetes- und Open Policy Agent (OPA)-Themen; in Bezug auf OPA, Rego und PaC lieferte Anders eine Fülle wertvoller Informationen. Im Slack-Kanal der OPA-Community sticht Stephan Renatus hervor, der mir bei der Beantwortung von Fragen gerade noch rechtzeitig geholfen hat, um Themen abzuschließen.

Für die Themen MagTape und OPA war Joe Searcy sehr hilfreich. Auch wenn das Projekt etwas eingeschlafen ist, gehört dieses Kapitel zu meinen Favoriten in diesem Buch, da es den Status quo der PaC- und Kubernetes-Integration in Frage stellt und die Kunst des Möglichen veranschaulicht .

Ich kenne Jim Bugwadia schon seit Jahren, seit meiner Zeit bei Capital One. Er und ich haben gemeinsam an einigen AWS-Blogs gearbeitet, für die ich auch die Hilfe von Chip Zoller in Anspruch genommen habe. Jim und Chip lieferten dringend benötigte Einblicke in Kubernetes und Kyverno sowie technische Übersichten zu verwandten Themen. Gemeinsam haben sie mir geholfen, das, was ich zu wissen glaubte, zu korrigieren und zu verbessern.

Michael LaPane half uns bei mehreren komplexen Terraform-Themen und wir diskutierten das Buch in mehreren Sitzungen im Crazy Rooster in Powhatan, Virginia, und bei ihm zu Hause, wo wir BBQ konsumierten.

Ich habe während des Schreibens dieses Buches mehrere Stunden im Gatekeeper-Slack-Kanal verbracht, und Sertaç Özercan und Rita Zhang waren dort sehr hilfreich.

Eve Ben Ezra, Michael Hume und Thomas Lawson haben uns in Form von KubeCon-Vorträgen und Blogbeiträgen wertvolle Hilfe und Informationen zu Conftest geliefert.

Als es an der Zeit war, über Cloud Custodian für Infrastructure as a Service (IaaS) und Kubernetes zu schreiben, beantworteten Kapil Thangavelu (Erfinder von Cloud Custodian) und David Shepherd - beides Kollegen aus meiner Zeit bei Capital One - sowie AJ Kerrigan bereitwillig alle meine Fragen und halfen mir, auf dem richtigen Weg zu bleiben. Es ist eine Sache, eine Technologie zu benutzen; es ist etwas ganz anderes, darüber kompetent schreiben zu können.

Rich Burroughs von Loft Labs hat mir mit jsPolicy geholfen, und Christopher Phillips, ein weiterer ehemaliger Capital One-Kollege, der jetzt bei Anchore arbeitet, hat mir mit SBOMs und den Anchore-Tools Syft und Grype geholfen.

Bei den Themen rund um die Software-Lieferkette haben mir die Leute von Liatrio, darunter Oliver Eikenberry, Robert Kelly, Jonathan Dorsey, Ahmed Alsabag und Eric Chapman, sehr geholfen. Liatrio verfügt über einen reichen Schatz an Wissen und Erfahrung im Bereich der Software-Lieferkette. Und da mein Kapitel über PaC und die Software-Lieferkette eines der letzten Kapitel war, bekam ich gerade noch rechtzeitig Hilfe von Cassie Crossley und ihrem damals gerade erschienenen Buch Software Supply Chain Security (O'Reilly). Dan Lorenc half mir, aus dem komplexen Thema, wie die Public-Key-Infrastruktur genutzt wird, um Signaturen auf Artefakte und Bescheinigungen anzuwenden, um Software-Lieferkettenerklärungen zu erstellen, etwas Einfaches zu destillieren.

Ich schätze die Erfahrung, Kubernetes auf die harte Tour - mit Bash und Go - mitmeinen damaligen Capital One-Kollegen Andrew Myhre und Zach Abrahamson aufzubauen. Die Lektionen, die ich damals gelernt habe, wende ich heute noch an.

Ich möchte Mark Donovan, Jeremy Cowan und Jesse Butler danken, drei hervorragenden Kollegen von AWS - Mark und ich kennen uns schon seit meinen ersten Tagen bei Capital One. Ich bin mir nicht sicher, ob sie wissen, wie sehr ich mich auf ihre Mentorenschaft verlasse.

Schreiben - wie Arbeiten - ist nicht ohne Opfer möglich. Ein Buch zu schreiben, ist eine ganz andere Ebene von Opfern, und meine Familie war gut darin, sich nicht zu beschweren oder Enttäuschung zu zeigen, wenn ich arbeitete, um den Zeitplan einzuhalten. Ich lernte neue Techniken, um im stillen und dunklen Haus zurechtzukommen, wenn ich bis spät in die Nacht arbeitete. Egal, wie sehr ich mich bemühte, es nicht zu tun, ich schien meine Frau immer zu wecken. Ich weiß ihre Nachsicht zu schätzen.

Und schließlich wäre das alles nicht möglich ohne mein O'Reilly-Team. Melissa Potter ist eine fantastische Redakteurin für Inhaltsentwicklung und einer der Hauptgründe dafür, dass ich die Inhalte für dieses Buch liefern konnte. Sie und ich haben uns regelmäßig getroffen und sie hat mir geholfen, zu verstehen, wie man für O'Reilly schreibt und mich daran erinnert, wie man Inhalte am besten erstellt. Als ich mehrere gesundheits- und arbeitsbedingte Probleme hatte, war Melissa da, um mich zu ermutigen und mir bei der Terminplanung zu helfen. Liz Faerm ist Produktionsredakteurin und belohnte mich routinemäßig mit frühen Veröffentlichungen und zusätzlichen Empfehlungen zur Verbesserung der Struktur meiner Inhalte. Simina Calin - Senior Acquisition Editor - war mein erster Kontakt zu O'Reilly und half mir, eine Strategie und eine Gliederung für das gesamte Buch zu entwickeln.

Get Politik als Kodex now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.