ausblick und anforderungen
This commit is contained in:
parent
bc6f0dbc1a
commit
226b4204fb
@ -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}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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}
|
||||||
|
@ -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}
|
||||||
|
@ -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}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user