Erstellen eines neuen Batch-Jobtyps für das 2SL Job Execution Framework

kopie rolex

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~

⚙️ Teil meiner Serie zur Automatisierung von Cybersicherheitsmetriken. Der Code.

🔒 Verwandte Geschichten: AWS-Sicherheit | Anwendungssicherheit | Batch-Jobs

💻 Kostenlose Inhalte zu Jobs im Bereich Cybersicherheit | ✉️ Melden Sie sich für die E-Mail-Liste an

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~

Im letzten Beitrag habe ich erklärt, was eine Jobausführungsumgebung für die 2nd Sight Lab Job Execution ist Framework.

Job Execution Framework EnvironmentsACM.437 Initialisieren einer 2nd Sight Lab-Jobausführungsumgebung mit den minimalen Ressourcen, die zum Ausführen von Jobs erforderlich sind

medium.com

In der nächsten Reihe von Beiträgen bin ich Ich werde diese Umgebung Stück für Stück aufbauen. Am Ende haben Sie einen Job, den Sie mit dem 2nd Sight Lab Job Execution Framework ausführen können, um eine neue Umgebung für zukünftige Jobs zu erstellen.

Der Unterschied zu diesem Job besteht darin, dass wir ihn noch nicht erstellt haben Unsere Jobausführungsumgebung, sodass der Job Anmeldeinformationen von CloudShell abruft. Wie bereits erwähnt, empfehle ich die Verwendung von CloudShell aus den in einem früheren Beitrag dargelegten Gründen nicht, aber ich möchte keine Geheimnisse mit Anmeldeinformationen oder AWS-Entwicklerzugriffsschlüsseln im Root-Verwaltungskonto für unsere Organisation bereitstellen.

Abgesehen von dem Unterschied, woher die Anmeldeinformationen stammen, funktioniert der Job im Wesentlichen genauso wie ein Job, der über ein Testskript aus der Ausführungsumgebung ausgeführt wird, die wir erstellen.

Erstellen Sie ein neues Repository

Der erste Schritt besteht darin, ein zu erstellen Repository für unseren Job und erstellen Sie einen Container, der den Job ausführen kann.

Die vom Framework verwendeten separaten Repositorys habe ich hier erklärt:

Separate Repositorys für ein Job Execution Framework, Job Images und Job ConfigurationsACM .434 Auch das Erstellen von Docker-Containern mit Dateien aus verschiedenen Verzeichnissen oder Kontexten und Probleme mit buildx auf…

medium.com

Wir werden für diesen Job ein neues Repository mit dem Namen 2sl-job-awsenvinit erstellen.

Erforderliche Dateien für einen neuen 2SL Job Execution Framework-Job

Zwei Dateien sind in unserem Job-Repository erforderlich (neben der README-Datei und der Lizenz). Möglicherweise haben Sie einen Job, der andere Dateien erfordert, aber dies ist das Minimum.

Dockerfile – erstellt den Container mit allen Tools, die der Job zum Ausführen seiner Aktionen benötigt.

execute.sh – die jobspezifischen Aktionen.

Wie in einem früheren Beitrag erläutert Der Build-Prozess für den Container ruft Dateien sowohl aus dem Job-Ausführungs-Framework als auch aus dem jobspezifischen Container ab.

init.sh – Da wir diesen Job von AWS CloudShell aus ausführen, werden wir auch eine Init haben .sh-Skript, das die Anmeldeinformationen von CloudShell abruft und sie an den Container übergibt. Diese Datei aktualisiert derzeit auch buildx und erstellt den Container, aber im Idealfall würden wir das nicht einmal brauchen. Hoffentlich aktualisiert AWS buildx bald in CloudShell und ich habe in Zukunft eine weitere Option für Sie, wenn alles nach Plan verläuft.

Die Schritte zum Hinzufügen des Containers, Erstellen und Ausführen der Jobschritte sind im Wesentlichen die das gleiche wie beim letzten Job (2sl-job-awsorginit), also habe ich die Dateien von diesem Job in dieses Repository kopiert und die folgenden Änderungen vorgenommen.

Repository

Zuerst erstelle ich ein neues Repository und füge eine README-Datei hinzu:

GitHub – tradichel/2sl-job-awsenvinit: Initialisieren Sie ein 2nd Sight Lab Job Execution Framework…

github.com

Ich habe das Repository geklont und die Dateien von 2sl-job-awsorginit kopiert und eingefügt in dieses Repository.

README

Die Anweisungen sind im Wesentlichen die gleichen wie beim letzten Job, außer dass es eine Voraussetzung gibt (den letzten Job), also füge ich diese der Readme-Datei hinzu und aktualisiere den Jobnamen.

Init.sh

Ich habe eine Suche und Ersetzung durchgeführt und „org“ im Init-Skript in „env“ geändert.

Ich habe auch die Kommentare geändert:

Ich habe auch geändert das Profil auf root-admin.

Dockerfile

Das Einzige, was ich in der Dockerfile ändern musste, war der Name in den Kommentaren und die Beschreibung.

Weitere Informationen dazu, wie das funktioniert, finden Sie in diesem Beitrag Docker-Container funktionieren in AWS CloudShell und der nachfolgende Beitrag im Link unten:

Ein Docker-Container in CloudShellACM.435 Erstellen und Ausführen von Containern in AWS CloudShell

medium.com

execute.sh

Ich ersetze den auftragsspezifischen Code in „execute.sh“ durch Folgendes:

Um zu testen, was ich bisher funktioniert habe, habe ich Folgendes getan:

Melden Sie sich als der mit „aws-root“ erstellte Benutzer an Letzter Job in meinem Verwaltungskonto. Kopieren Sie init.sh aus dem 2sl-job-initawsenv-Git-Repository in CloudShell. Ändern Sie die Berechtigung schmod 700 init.sh. Führen Sie init.sh./init.sh aus. Wenn Sie einen Fehler wegen zu wenig Speicherplatz erhalten, starten Sie CloudShell wie zuvor erläutert neu und Führen Sie init.sh erneut aus.

Ich erhalte die erwartete Ausgabe, also können wir mit dem nächsten Schritt fortfahren:

An diesem Punkt erfordert Ihr Job keine Parameter und wird einfach ausgeführt Nach einer Reihe von Schritten können Sie „execute.sh“ durch alles ersetzen, was Sie möchten, und es so ausführen, wie ich es im vorherigen Job getan habe. Aber für diesen Job muss ich den Umgebungsnamen (oder eine Liste von Namen) zum Erstellen übergeben. Ich benötige also einen SSM-Parameter für diesen Job und werde ihn im nächsten Beitrag hinzufügen.

Nächster Schritt:

Hinzufügen eines SSM-Parameters für die Batch-Job-Konfiguration für das 2SL Job Execution FrameworkACM. 439 Bereitstellen einer 2SL-Jobausführungsumgebung – Schritt 2 – Hinzufügen eines Jobkonfigurationsparameters zum Bereitstellen eines einzelnen…

medium.com

Folgen Sie für Updates.

Teri Radichel | © 2nd Sight Lab 2024

Über Teri Radichel:~~~~~~~~~~~~~~~~~⭐️ Autor: Cybersecurity Books⭐️ Präsentationen: Präsentationen von Teri Radichel⭐️ Anerkennung: SANS Award , AWS Security Hero, IANS Faculty⭐️ Zertifizierungen: SANS ~ GSE 240⭐️ Ausbildung: BA Business, Master of Software Engineering, Master of Infosec⭐️ Unternehmen: Penetrationstests, Beurteilungen, Telefonberatung ~ 2nd Sight LabBenötigen Sie Hilfe bei Cybersicherheit, Cloud oder Anwendung Sicherheit?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~🔒 Fordern Sie einen Penetrationstest oder eine Sicherheitsbewertung an ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ❤️ Unterschreiben Oben in meiner mittleren E-Mail-Liste❤️ Twitter: @teriradichel❤️ LinkedIn: https://www.linkedin.com/in/teriradichel❤️ Mastodon: @[email protected]❤️ Facebook: 2nd Sight Lab❤️ YouTube: @2ndsightlab