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}
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}

View File

@ -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

View File

@ -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:

View File

@ -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}

View File

@ -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}

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.
\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}

BIN
main.pdf

Binary file not shown.