ausblick und anforderungen

This commit is contained in:
Leon Etienne 2025-02-14 11:19:47 +01:00
parent bc6f0dbc1a
commit 226b4204fb
Signed by: leonetienne
SSH Key Fingerprint: SHA256:hs2AZKjRTbd2kYg44u89rM19UT2LyBOpSbIShsdkkfg
7 changed files with 43 additions and 21 deletions

View File

@ -15,7 +15,8 @@ Notizen zu diesem Interview befinden sich im Anhang unter
\section{Ergebnisse} \section{Ergebnisse}
Das Ergenis der Anforderungserfassung ist ein Lastenheft, das in constraints, funktionale und 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] \begin{table}[ht]
\centering \centering
@ -41,6 +42,7 @@ nicht-funktioniale Anforderungen zu unterteilen ist.
Nutzung von \ac{1P} ist zwingend erforderlich. \\ \hline Nutzung von \ac{1P} ist zwingend erforderlich. \\ \hline
Die Übermittlung der Secrets muss über das Internet erfolgen. \\ \hline Die Übermittlung der Secrets muss über das Internet erfolgen. \\ \hline
\end{tabular} \end{tabular}
\caption{Anforderungen} \caption{Lastenheft}
\label{tbl:lastenheft}
\end{table} \end{table}

View File

@ -2,9 +2,15 @@
% Chapter: Evaluation % Chapter: Evaluation
% %
% Let chapter stay on the same page
\begingroup
\let\clearpage\relax
\chapter{Ausblick} \chapter{Ausblick}
Auf diese Umsetzung aufbauend sollten die bestehenden Ansible-Roles im Docker-Ansible-Repository 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. 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, 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 sondern diese nach \ac{1P} verschoben werden und die Host-Konfigurationsdateien lediglich eine IT-sicherheitstechnisch unbedenkliche Referenz auf \ac{1P}-Einträge
aufweisen. aufweisen.
\endgroup

View File

@ -6,10 +6,21 @@
Das abschließende Ergebnis des in dieser Ausarbeitung dokumentierten Projektes 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 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. \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, 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. 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} \section{Mehrwert für das Partnerunternehmen}
Die hier geschaffene Technologie bringt dem Partnerunternehmen zweierlei Mehrwert: Die hier geschaffene Technologie bringt dem Partnerunternehmen zweierlei Mehrwert:

View File

@ -328,7 +328,6 @@ Durch das Implementieren des Eintrags-Zwischenspeichers wird die Ausführzeit vo
\hline \hline
Mapping+Item-Cache & 2\\ Mapping+Item-Cache & 2\\
\hline \hline
\hline
\end{tabular} \end{tabular}
\caption{Ausführzeiten des Test-Playbooks mit Testdaten (Fünf Secrets aus einem 1P-Eintrag)} \caption{Ausführzeiten des Test-Playbooks mit Testdaten (Fünf Secrets aus einem 1P-Eintrag)}
\label{tbl:ausführzeiten-versch-caches} \label{tbl:ausführzeiten-versch-caches}

View File

@ -8,16 +8,16 @@
\begin{acronym} \begin{acronym}
% %
% %
\acro{1PSA}[1PSA]{1Password Secrets Automation}
\acro{1P}[1P]{1Password} \acro{1P}[1P]{1Password}
\acro{API}[API]{Application Programmer Interface} \acro{API}[API]{Application Programmer Interface}
\acro{CLI}[CLI]{Command Line Interface} \acro{CLI}[CLI]{Command Line Interface}
\acro{GAU}[GAU]{Größter Anzunehmender Unfall} \acro{GAU}[GAU]{Größter Anzunehmender Unfall}
\acro{GUI}[GUI]{Graphical User Interface} \acro{GUI}[GUI]{Graphical User Interface}
\acro{MASA}[MASA]{Medienagenten Secret Authority} \acro{MASA}[MASA]{Medienagenten Secret Authority}
\acro{YAML}[YAML]{Yet Another Markup Language}
\acro{UUID}[UUID]{Universally Unique Identifier} \acro{UUID}[UUID]{Universally Unique Identifier}
\acroplural{UUID}[UUIDs]{Universally Unique Identifiers} \acroplural{UUID}[UUIDs]{Universally Unique Identifiers}
\acro{1PSA}[1PSA]{1Password Secrets Automation} \acro{YAML}[YAML]{Yet Another Markup Language}
% %
% %
\end{acronym} \end{acronym}

View File

@ -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. 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 \\ \item [(1P-)Vault] \hfill \\
Eine Kollektion an Secret-Einträgen in einem Passwort-Manager (1Password). Eine Kollektion an Secret-Einträgen in einem Passwort-Manager (1Password).
\item [Nutzvault] \hfill \\ \item [Ansible-Playbook/s] \hfill \\
Ein 1P-Vault, in dem die originalen Einträge des Partnerunternehmens verortet sind. Hier liegen keine Kopien, sondern Originale! 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 \\ \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! 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. Der Sinn eines solchen Vaultes ist es, Entwickler*innen beschränkten Lesezugriff auf Daten der Nutzvaults zu gewähren.
\item [Ansible-Playbook/s] \hfill \\ \item [Jinja-Templating-Engine] \hfill \\
Ansible-Playbooks sind Skripte, mit dem Ziel einen deklarierten Zustand herzustellen. \cite{bib:ansible} Eine Templating Engine, die das Jina-Format verwendet. Ansible verwendet eine Jinja-Templating-Engine.
\item [Docker] \hfill \\ \item [Listenansicht / Listenaufruf] \hfill \\
Eine arrivierte Container-Engine für Anwendungsentwicklung. Eine Anfrage, die eine Liste von Objekten oder Einträgen zurückgibt.
\item [Toolbox] \hfill \\ \item [Nutzvault] \hfill \\
Eine Ansammlung an Werkzeugen, wie zum Beispiel Skripte. Ein 1P-Vault, in dem die originalen Einträge des Partnerunternehmens verortet sind. Hier liegen keine Kopien, sondern Originale!
\item [Öffentliche 1P-UUID] \hfill \\ \item [Öffentliche 1P-UUID] \hfill \\
Die 1P-UUID, die zu einem originalen Eintrag gehört, und nicht zu einer Referenz. 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. 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 \\ \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 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. in den einzelnen Developer-Vaults und sind Entwickler*innen-spezifisch.
\item [Listenansicht / Listenaufruf] \hfill \\ \item [Secret] \hfill \\
Eine Anfrage, die eine Liste von Objekten oder Einträgen zurückgibt. Eine vertrauliche Information, wie zum Beispiel ein Passwort.
\item [Detailansicht / Detailaufruf] \hfill \\ \item [Toolbox] \hfill \\
Eine Anfrage, \emph{ein} Objekt oder \emph{einen} Eintrag zurückgibt oder manipuliert. Eine Ansammlung an Werkzeugen, wie zum Beispiel Skripte.
\item [Jinja-Templating-Engine] \hfill \\
Eine Templating Engine, die das Jina-Format verwendet.
\end{description} \end{description}

BIN
main.pdf

Binary file not shown.