diff --git a/chapters/anforderungen.tex b/chapters/anforderungen.tex index e3aa15f..3471fb0 100644 --- a/chapters/anforderungen.tex +++ b/chapters/anforderungen.tex @@ -15,7 +15,8 @@ Notizen zu diesem Interview befinden sich im Anhang unter \section{Ergebnisse} Das Ergenis der Anforderungserfassung ist ein Lastenheft, das in constraints, funktionale und -nicht-funktioniale Anforderungen zu unterteilen ist. +nicht-funktioniale Anforderungen unterteilt ist. Im Zuge des Interviews und diversen anderen, informalen Gespräche, +hat sich der Autor ein tiefes Verständnis für das vorliegende Problem des Auftraggebers anggeignet. \begin{table}[ht] \centering @@ -41,6 +42,7 @@ nicht-funktioniale Anforderungen zu unterteilen ist. Nutzung von \ac{1P} ist zwingend erforderlich. \\ \hline Die Übermittlung der Secrets muss über das Internet erfolgen. \\ \hline \end{tabular} - \caption{Anforderungen} + \caption{Lastenheft} + \label{tbl:lastenheft} \end{table} diff --git a/chapters/ausblick.tex b/chapters/ausblick.tex index 29aa019..80078a2 100644 --- a/chapters/ausblick.tex +++ b/chapters/ausblick.tex @@ -2,9 +2,15 @@ % Chapter: Evaluation % +% Let chapter stay on the same page +\begingroup +\let\clearpage\relax + \chapter{Ausblick} Auf diese Umsetzung aufbauend sollten die bestehenden Ansible-Roles im Docker-Ansible-Repository des Partneruntehmens so angepasst werden, sodass diese das \textit{resolve\_1p\_secret} Filtermodul verwenden. Ebenso sollte das bestehende Inventar an Host-Konfigurationsdateien migriert werden, sodass diese keine Klartext-Secrets mehr beinhalten, sondern diese nach \ac{1P} verschoben werden und die Host-Konfigurationsdateien lediglich eine IT-sicherheitstechnisch unbedenkliche Referenz auf \ac{1P}-Einträge aufweisen. + +\endgroup diff --git a/chapters/evaluation-fazit.tex b/chapters/evaluation-fazit.tex index e91b6fd..671299f 100644 --- a/chapters/evaluation-fazit.tex +++ b/chapters/evaluation-fazit.tex @@ -6,10 +6,21 @@ Das abschließende Ergebnis des in dieser Ausarbeitung dokumentierten Projektes ist ein Python-Projekt, das in der Lage ist, anhand einer Berechtigungs-Konfigurationsdatei im Yaml-Format \ac{1P}-Einträge in Entwickler*innen-Vaults zu kopieren, zu löschen und deren Referenz zu den originalen Einträgen zu wahren. -Ebenso ist Teil des Ergebnisses ein Ansible-Filtermodul, das in der Lage ist, an sich unsensible \ac{1P}-Referenzen +Diese Berechtigungs-Konfigurationsdatei unterstützt das Erfassen von Berechtigungen über Wildcard-Matching sowie über einzelne +\ac{UUID}-Zuweisungen. Diese Einträge können Entwickler*innen anschließend in der \ac{1P}-GUI-Anwendung einsehen.\\ +Das Synchronisations-Werkzeug verweigert Anfragen, die zur Löschung von originalen Einträgen führen könnte. +\\ +\\ +Ebenso ist Teil des Ergebnisses ein Ansible-Filtermodul, das in der Lage ist, unsensible \ac{1P}-Referenzen in Host-Konfigurationsdateien aus \ac{1P} zu derereferenzieren, sowohl als interne*r Entwickler*in ohne Entwickler*innen-Vault, -als auch als externe*r Entwickler*in mit Entwickler*innen-Vault. Dies geschiet in einer IT-sicherheitstechnich unbedenklichen +als auch als externe*r Entwickler*in mit\\ +Entwickler*innen-Vault. Das geschiet in einer IT-sicherheitstechnich unbedenklichen und performanten Art- und Weise. +\\ +\\ +Hiermit ist das in \fullref{tbl:lastenheft} definierte Lastenheft des Auftraggebers in Gänze erfüllt. +Nach Vorstellung der erarbeiteten Ergebnisse vor dem Auftraggeber zeigt sich sich dieser zufrieden und bestätigt die +pragmatische Korrektheit des Produktes. \section{Mehrwert für das Partnerunternehmen} Die hier geschaffene Technologie bringt dem Partnerunternehmen zweierlei Mehrwert: diff --git a/chapters/technische-umsetzung/main.tex b/chapters/technische-umsetzung/main.tex index c359a19..f4b6790 100644 --- a/chapters/technische-umsetzung/main.tex +++ b/chapters/technische-umsetzung/main.tex @@ -328,7 +328,6 @@ Durch das Implementieren des Eintrags-Zwischenspeichers wird die Ausführzeit vo \hline Mapping+Item-Cache & 2\\ \hline - \hline \end{tabular} \caption{Ausführzeiten des Test-Playbooks mit Testdaten (Fünf Secrets aus einem 1P-Eintrag)} \label{tbl:ausführzeiten-versch-caches} diff --git a/dexes/acrodex.tex b/dexes/acrodex.tex index 87e0783..8389d64 100644 --- a/dexes/acrodex.tex +++ b/dexes/acrodex.tex @@ -8,16 +8,16 @@ \begin{acronym} % % + \acro{1PSA}[1PSA]{1Password Secrets Automation} \acro{1P}[1P]{1Password} \acro{API}[API]{Application Programmer Interface} \acro{CLI}[CLI]{Command Line Interface} \acro{GAU}[GAU]{Größter Anzunehmender Unfall} \acro{GUI}[GUI]{Graphical User Interface} \acro{MASA}[MASA]{Medienagenten Secret Authority} - \acro{YAML}[YAML]{Yet Another Markup Language} \acro{UUID}[UUID]{Universally Unique Identifier} \acroplural{UUID}[UUIDs]{Universally Unique Identifiers} - \acro{1PSA}[1PSA]{1Password Secrets Automation} + \acro{YAML}[YAML]{Yet Another Markup Language} % % \end{acronym} diff --git a/dexes/glossarydex.tex b/dexes/glossarydex.tex index 2c5f6f2..fadcf83 100644 --- a/dexes/glossarydex.tex +++ b/dexes/glossarydex.tex @@ -9,17 +9,23 @@ Eine Gruppierung an Daten, die einen Login ermögliche. Z.B. $(\text{Nutzername},\text{Passwort})$. Eine solche Struktur kann bein \ac{1P} aus beliebig vielen Schlüsselwertpaaren bestehen. Wird in dieser Ausarbeitung synonym zu 'Secret' verwendet. \item [(1P-)Vault] \hfill \\ Eine Kollektion an Secret-Einträgen in einem Passwort-Manager (1Password). - \item [Nutzvault] \hfill \\ - Ein 1P-Vault, in dem die originalen Einträge des Partnerunternehmens verortet sind. Hier liegen keine Kopien, sondern Originale! + \item [Ansible-Playbook/s] \hfill \\ + Ansible-Playbooks sind Skripte, mit dem Ziel einen deklarierten Zustand herzustellen. \cite{bib:ansible} + \item [Ansible-Role] \hfill \\ + Eine Abfolge von definierten Schritten, die von Ansible-Playbooks ausgeführt werden. Eine solche Role könnte z.B. einen Server buchen, konfigurieren und verwendungsfertig bereitstellen. + \item [Detailansicht / Detailaufruf] \hfill \\ + Eine Anfrage, \emph{ein} Objekt oder \emph{einen} Eintrag zurückgibt oder manipuliert. + \item [Docker] \hfill \\ + Eine arrivierte Container-Engine für Anwendungsentwicklung. \item [Entwickler*innen-Vault] \hfill \\ Ein 1P-Vault, in dem die Kopien bzw. Referenzen auf Einträge des Partnerunternehmens verortet sind. Hier liegen nur Kopien bzw. Referenzen! Der Sinn eines solchen Vaultes ist es, Entwickler*innen beschränkten Lesezugriff auf Daten der Nutzvaults zu gewähren. - \item [Ansible-Playbook/s] \hfill \\ - Ansible-Playbooks sind Skripte, mit dem Ziel einen deklarierten Zustand herzustellen. \cite{bib:ansible} - \item [Docker] \hfill \\ - Eine arrivierte Container-Engine für Anwendungsentwicklung. - \item [Toolbox] \hfill \\ - Eine Ansammlung an Werkzeugen, wie zum Beispiel Skripte. + \item [Jinja-Templating-Engine] \hfill \\ + Eine Templating Engine, die das Jina-Format verwendet. Ansible verwendet eine Jinja-Templating-Engine. + \item [Listenansicht / Listenaufruf] \hfill \\ + Eine Anfrage, die eine Liste von Objekten oder Einträgen zurückgibt. + \item [Nutzvault] \hfill \\ + Ein 1P-Vault, in dem die originalen Einträge des Partnerunternehmens verortet sind. Hier liegen keine Kopien, sondern Originale! \item [Öffentliche 1P-UUID] \hfill \\ Die 1P-UUID, die zu einem originalen Eintrag gehört, und nicht zu einer Referenz. Externe Entwickler*innen haben also keinen direkten Zugriff auf einen solchen Eintrag, sondern müssen stattdessen eine Referenz auf diesen Eintrag verwenden. @@ -28,11 +34,9 @@ \item [Private 1P-UUID] \hfill \\ Die 1P-UUID, die zu einem Referenz-Eintrag gehört, und nicht zu einem originalen Eintrag. Diese Einträge sind emphemerisch und existieren ausschließlich in den einzelnen Developer-Vaults und sind Entwickler*innen-spezifisch. - \item [Listenansicht / Listenaufruf] \hfill \\ - Eine Anfrage, die eine Liste von Objekten oder Einträgen zurückgibt. - \item [Detailansicht / Detailaufruf] \hfill \\ - Eine Anfrage, \emph{ein} Objekt oder \emph{einen} Eintrag zurückgibt oder manipuliert. - \item [Jinja-Templating-Engine] \hfill \\ - Eine Templating Engine, die das Jina-Format verwendet. + \item [Secret] \hfill \\ + Eine vertrauliche Information, wie zum Beispiel ein Passwort. + \item [Toolbox] \hfill \\ + Eine Ansammlung an Werkzeugen, wie zum Beispiel Skripte. \end{description} diff --git a/main.pdf b/main.pdf index 91f54a3..4be86b6 100644 Binary files a/main.pdf and b/main.pdf differ