Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROTECTION OF A PROCESS OF SETTING UP A SUBDIRECTORY AND A NETWORK INTERFACE FOR A CONTAINER INSTANCE
Document Type and Number:
WIPO Patent Application WO/2023/001773
Kind Code:
A1
Abstract:
Method for protecting a process of setting up a subdirectory and/or a network interface for a container instance (31) for providing a container-based application, comprising - generating a directory guideline (28) which comprises at least one incorporation rule for assigning the subdirectory of the container instance (31) to the subdirectory in the source directory, in particular for persistent subdirectories in which data are persistently stored; and/or generating an interface guideline (27) which comprises at least one incorporation rule for assigning the network interface of the container instance (31) to the network interface of the associated host computer (30), - loading a container image (25), an associated configuration file (24) and the directory guideline (28) and/or the interface guideline (27) into a runtime environment (33) of the host computer (30), - checking, before the process of starting the container instance (31), whether all subdirectories stipulated by the container image (25) for the container instance (31) can be incorporated in the source directory according to the directory guideline (28) and/or whether all network interfaces stipulated by the configuration file (24) can be incorporated according to the interface guideline (27) without contravening incorporation options for subdirectories and network interfaces of further container instances (32) which already exist, and - generating (S5) the container instance (31) from the container image (25) in the host computer (30) only in the event of a positive checking result.

Inventors:
KNIERIM CHRISTIAN (DE)
Application Number:
PCT/EP2022/070085
Publication Date:
January 26, 2023
Filing Date:
July 18, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
International Classes:
G06F9/455; G06F21/62; G06F3/06; G06F21/53
Foreign References:
US20140282518A12014-09-18
US20180314846A12018-11-01
US20090222880A12009-09-03
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur Absicherung eines EinrichteVorgangs eines Unterverzeichnisses und/oder einer Netzwerkschnittstelle für eine Containerinstanz (31) zur Bereitstellung einer Contai- ner-basierten Anwendung, bei dem mindestens ein Unterver zeichnis der Containerinstanz durch Zuweisung mindestens ei nes Unterverzeichnisses in einem QuellVerzeichnis eines zuge ordneten physikalischen Datenspeichers bereitgestellt wird und mindestens eine Netzwerkschnittstelle der Container instanz durch Zuweisung mindestens einer entsprechenden vir tuellen oder physikalischen Netzwerkschnittstelle eines zuge ordneten Gastrechners (30) bereitgestellt wird, umfassend

- Erzeugen (Sl) einer Verzeichnisrichtline (28), die mindes tens eine Einbinderegel für die Zuweisung des Unterverzeich nisses der Containerinstanz (31) zum Unterverzeichnis im QuellVerzeichnis umfasst; und/oder

- Erzeugen (S2) einer Schnittstellenrichtline (27), die min destens eine Einbinderegel für die Zuweisung der Netzwerk schnittstelle der Containerinstanz (31) zur Netzwerkschnitt stelle des zugeordneten Gastrechners (30) umfasst,

- Laden (S3) eines Containerabbilds (25), einer zugeordneten Konfigurationsdatei (24), sowie der Verzeichnisrichtlinie (28) und/oder der Schnittstellenrichtlinie (27) in eine Lauf- zeitumgebung (33) des Gastrechners (30),

- in der Laufzeitumgebung (33) vor dem Startvorgang der Con tainerinstanz (31), Überprüfen (S4), ob alle vom Containerab bild (25) für die Containerinstanz (31) festgelegten Unter verzeichnisse im QuellVerzeichnis entsprechend der Verzeich nisrichtlinie (28) einbindbar sind, und/oder ob alle von der Konfigurationsdatei (24) festgelegten Netzwerkschnittstellen entsprechend der Schnittstellenrichtlinie (27) einbindbar sind ohne EinbindeOptionen von Unterverzeichnissen und Netz- werkschnittstellen von bereits vorhandenen weiteren Containe rinstanzen (32) zu verletzen, und

- Erzeugen (S5) der Containerinstanz (31) aus dem Contai nerabbild (25) im Gastrechner (30) lediglich bei einem posi tiven Überprüfungsergebnis.

2. Verfahren nach Anspruch 1, wobei die Verzeichnisrichtlinie (28) und die Schnittstellenrichtlinie (27) durch einen Er steller der Konfigurationsdatei (24) erstellt und an die Kon figurationsdatei (24) gebunden werden.

3. Verfahren nach Anspruch 1, wobei die Verzeichnisrichtline (28) durch einen Ersteller des Containerabbilds (25) erstellt und an das Containerabbild (25) gebunden wird.

4. Verfahren nach dem vorangehenden Anspruch, wobei die Ver- zeichnisrichtlinie (28) Metainformation in Bezug auf die Un terverzeichnisse umfasst und die Metainformation in Form ei nes Abbild-Kennzeichens dem Containerabbild (25) zugewiesenen wird.

5. Verfahren nach einem der vorangehenden Ansprüche, wobei die Verzeichnisrichtlinie (28) und/oder die Schnittstellen richtlinie (27) festlegen, ob das Unterverzeichnis im Quell verzeichnis und/oder die Netzwerkschnittstelle ausschließlich von einer einzigen Containerinstanz (31) oder von mehreren Containerinstanzen gebildet aus dem gleichen Containerabbild oder von mehreren Containerinstanzen gebildet aus unter schiedlichen Containerabbildern eingebunden werden darf.

6. Verfahren nach einem der vorangehenden Ansprüche, wobei die Verzeichnisrichtlinie (28) eine erlaubte Zugriffsoption auf das Unterverzeichnis oder die Netzwerkschnittstelle fest legt.

7. Verfahren nach einem der vorangehenden Ansprüche, wobei die Verzeichnisrichtlinie (28) und/oder Schnittstellenricht- linie (27) Einbinderegeln abhängig von einer Signatur des Containerabbildes (25) festlegt.

8. Verfahren nach einem der vorangehenden Ansprüche, wobei die Verzeichnisrichtlinie (28) einen Verweis auf die Konfigu rationsdatei (25) mit Direktiven, welche auf mindestens eine Umgebungsvariable verweisen, umfasst, und die Umgebungsvari able eine Angabe eines Unterverzeichnisses in der Container instanz (25) umfasst.

9. Verfahren nach einem der vorangehenden Ansprüche, wobei die Schnittstellenrichtline (27) einen Verweis auf die Konfi gurationsdatei (24) mit erlaubten Eigenschaften der Netzwerk schnittstellen umfasst.

10. Verfahren nach einem der vorangehenden Ansprüche, wobei eine zentrale Einbindedatenbank (40) für die Laufzeitumgebung (33) der Containerinstanz (31) erzeugt wird, und die Einbin dedatenbank (40) einen Namen und eine Version des Contai nerabbilds (25) aus dem die Containerinstanz (31) erzeugt wurde, das ZielVerzeichnis in der Containerinstanz (31), das QuellVerzeichnis des zugeordneten physikalischen Datenspei chers (30) und die erlaubten EinbindeOptionen und Zugriffsop tionen des Zielverzeichnisses, sowie die der Containerinstanz (31) zugeordneten Netzwerkschnittstellen und EinbindeOptionen umfasst.

11. Verfahren nach Anspruch 10, wobei die Einbindedatenbank (40) persistent gespeichert wird.

12. Verfahren nach Anspruch 10 und 11, wobei anhand der Ein bindedatenbank (40) überprüft wird, ob ein für ein Unterver zeichnis angefordertes QuellVerzeichnis oder für ein überge ordnetes oder untergeordnetes Verzeichnis des QuellVerzeich nis und/oder ob eine einzubindende Netzwerkschnittstelle be reits für ein anderes Containerabbild (25) aktuell eingebun den ist oder für ein Containerabbild (25) eines anderen Typs jemals eingebunden war.

13. Verfahren nach Anspruch 10 und 12, wobei nach einem er folgreichen Einbinden eines Unterverzeichnisses und/oder ei ner Netzwerkschnittstelle, der Name und die Version des Con- tainerabbilds (25), das Ziel erzeichnis in der Container instanz (31), das QuellVerzeichnis des zugeordneten physika lischen Datenspeichers und die erlaubten EinbindeOptionen und Zugriffsoptionen des ZielVerzeichnisses und/oder die einge bundene Netzwerkschnittstelle und die EinbindeOptionen für die Netzwerkschnittstelle an die Einbindedatenbank (40) über mittelt und dort gespeichert werden.

14. Verfahren nach einem der vorangehenden Ansprüche, wobei ein Unterverzeichnis nicht in die Containerinstanz (31) ein gebunden wird, wenn beim Überprüfen von Containerinstanzen, die aus anderen Containerabbildern und/oder Konfigurationsda teien gebildet wurden, gegenüber der Verzeichnisrichtlinie (28) festgestellt wird, dass die Verzeichnisrichtlinie (28) keine erlaubte EinbindeOption für das einzubindende Unterver zeichnis enthält oder das einzubindende Unterverzeichnis ein übergeordnetes oder untergeordnetes Verzeichnis zu einem nicht in der Verzeichnisrichtlinie (28) genannten Unterver zeichnis ist, und/oder wobei eine Netzwerkschnittstelle nicht eingebunden wird, wenn beim Überprüfen von Containerinstanzen, die aus anderer Con- tainerbildern und/oder Konfigurationsdateien gebildet wurden, gegenüber der Schnittstellenrichtlinie (27) festgestellt wird, dass die Schnittstellenrichtlinie (27) keine erlaubte EinbindeOption für die einzubindende Netzwerkschnittstelle enthält.

15. Anordnung (50) zur Absicherung eines EinrichteVorgangs mindestens eines Unterverzeichnisses und/oder mindestens ei ner Netzwerkschnittstelle für eine Containerinstanz (31) zur Bereitstellung einer Container-basierten Anwendung, bei dem ein Unterverzeichnis der Containerinstanz (31) durch Zuwei sung mindestens eines Unterverzeichnisses in einem Quellver zeichnis eines zugeordneten physikalischen Datenspeichers be- reitgestellt wird und mindestens eine Netzwerkschnittstelle der Containerinstanz (31) durch Zuweisung mindestens einer virtuellen oder physikalischen Netzwerkschnittstelle eines zugeordneten Gastrechners (30) bereitgestellt wird, umfassend eine Generierungs orrichtung (20), die derart ausgebildet ist

- eine Verzeichnisrichtline (28) zu erzeugen, die mindestens eine Einbinderegel für die Zuweisung des Unterverzeichnisses der Containerinstanz (31) zum Unterverzeichnis im Quellver zeichnis umfasst, insbesondere für persistente Unterverzeich nisse in dem Daten persistent gespeicherten werden;

- eine Schnittstellenrichtline (27) zu erzeugen, die mindes tens eine Einbinderegel für die Zuweisung der Netzwerk schnittstelle der Containerinstanz (31) zur virtuellen und/oder physikalischen Netzwerkschnittstelle des zugeordne ten Gastrechners (30) umfasst,

- ein Containerabbild (25), eine zugeordnete Konfigurations- datei (24), sowie die Verzeichnisrichtlinie (28) und die Schnittstellenrichtlinie (27) in eine Laufzeitumgebung (33) des Gastrechners (30) zu laden, und der Gastrechner (30) derart ausgebildet ist,

- in der Laufzeitumgebung (33) vor dem Startvorgang der Con tainerinstanz (31) zu überprüfen, ob alle vom Containerabbild (25) für die Containerinstanz (31) festgelegten Unterver zeichnisse im QuellVerzeichnis entsprechend der Verzeichnis richtlinie (28) einbindbar sind, und/oder ob alle von der Konfigurationsdatei (24) festgelegten Netzwerkschnittstellen entsprechend der Schnittstellenrichtlinie (27) einbindbar sind, ohne EinbindeOptionen von Unterverzeichnissen und Netz werkschnittstellen von bereits vorhandenen weiteren Containe rinstanzen zu verletzen, und

- die Containerinstanz (31) aus dem Containerabbild (25) im Gastrechner (30) lediglich bei einem positiven Überprüfungs- ergebnis zu erzeugen.

16. Computerprogrammprodukt, umfassend ein nicht flüchtiges Computerlesbares Medium, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die bei Ausführung der Programmcodeteile durch den digitalen Computer diesen veranlassen, die Schritte des Verfahrens nach einem der Ansprüche 1 bis 14 durchzuführen.

Description:
Beschreibung

Absicherung eines EinrichteVorgangs eines Unterverzeichnisses und einer Netzwerkschnittstelle für eine Containerinstanz

Die Erfindung betrifft ein Verfahren zur Absicherung eines EinrichteVorgangs eines Unterverzeichnisses und/oder einer Netzwerkschnittstelle für eine Containerinstanz, bei dem ein Unterverzeichnis der Containerinstanz durch Zuweisung eines Unterverzeichnisses in einem QuellVerzeichnis eines zugeord neten physikalischen Datenspeichers bereitgestellt wird und eine Netzwerkschnittstelle der Containerinstanz durch Zuwei sung einer entsprechenden virtuellen oder physikalischen Netzwerkschnittstelle eines zugeordneten Gastrechners bereit gestellt wird.

Containervirtualisierung ist eine Methode, bei der mehrere Instanzen eines Betriebssystems isoliert voneinander einen Betriebssystemkern eines Gastrechners nutzen können. Software Container, im Weiteren kurz Container genannt, stellen somit eine leichtgewichtige Art der Virtualisierung einer Laufzeit umgebung auf einem Gastrechner, auch Hostsystem genannt, dar und kapseln eine in einer Containerinstanz betriebene Soft ware-Applikation vom darunterliegenden Hostsystem ab. Soft ware Applikationen, im Weiteren kurz Applikation genannt, werden mittlerweile in vielen Bereichen wie beispielsweise der Industrieautomation und der Prozesssteuerung, aber auch für Anwendungen in Transportsysfernen oder Fahrzeugen mittels Container implementiert.

Um eine Containerinstanz auf dem Hostsystem starten zu kön nen, wird ein Containerabbild benötigt, welches neben der Ap plikationssoftware selbst auch die für die ApplikationsSoft ware erforderlichen Binärprogramme und Bibliotheken enthält. Oftmals wird zur Bereitstellung der erforderlichen Binärpro gramme und Bibliotheken ein so genanntes Basis-Image verwen det, welches einen Paketmanager enthält mit dessen Hilfe wei- tere Komponenten innerhalb des Containerabbild installiert werden können.

Um der Containerinstanz beim Start Parameter zuordnen zu kön nen oder von der Containerinstanz erzeugte Daten persistent speichern zu können, werden zum Start einer solchen Containe rinstanz sogenannte „Volumes" an diese übergeben und in die Containerinstanz eingehängt. Ein „Volume" ist ein Unterver zeichnis eines Dateisystems in der Containerinstanz, das vom darunterliegenden Betriebssystem in die Containerinstanz ein gehängt wird und in dem Daten persistent, also dauerhaft, ge speichert sind bzw. werden.

Mit Hilfe eines solchen persistenten Unterverzeichnisses wer den einer Containerinstanz beispielsweise Schlüssel eines kryptographischen Netzwerkprotokolls für den sicheren Betrieb von Netzwerkdiensten, private Schlüssel für Zertifikate, Kon figurationseinstellungen für die Containerinstanz oder Umge bungsinformationen des darunterliegenden Gerätes oder der ge samten Laufzeitumgebung an die Containerinstanz übergeben und hiermit auch die in der Containerinstanz betriebene Applika tion parametriert.

Welche QuellVerzeichnisse des darunterliegenden Systems als persistente Unterverzeichnisse in die Containerinstanz einge hängt werden, ist beim Erstellen eines Containerabbilds nicht bekannt . Zur Übergabe von Startparametern kann jedoch für ei nen den Ersteller des Containerabbilds ein ZielVerzeichnis definiert werden, in welches das persistente Unterverzeichnis mit den Übergabeparametern eingehängt werden soll.

Ein Problem entsteht nun, wenn andere, nicht autorisierte Containerinstanzen unberechtigterweise auf Unterverzeichnis, insbesondere ein persistentes Unterverzeichnis zugreifen, da hierdurch beispielsweise Schlüsselmaterial, welches für Con- tainerinstanzen gebildet aus anderen Containerabbildern vor gesehen ist, abgegriffen wird. Ein ähnliches Problem entsteht bei der Einbindung von Netzwerkschnittstellen, die einer Con- tainerinstanz zugewiesen werden sollen. Durch unberechtigte Mitbenutzung von Netzwerkschnittstellen kann Verkehr zwischen anderen Containerinstanzen abgehört werden. Diese Zuweisung einer Netzwerkschnittstelle erfolgt im Falle einer laufenden Containerinstanz direkt über Kommandos der Container-Lauf- zeitumgebung, beispielsweise durch die Definition spezieller Parameter in Docker-Kommandos oder mit Hilfe von Docker- Compose-Dateien . Der Ersteller eines Containerabbilds weiß hierbei nicht, welche anderen Containerabbilder sich in das gleiche Netzwerk bzw. auf die gleiche Netzwerkschnittstellen verbinden . Böswillige Containerinstanzen können sich somit auf eine einer anderem Containerinstanz zugewiesenen Netz werkschnittstelle verbinden und darüber Daten ausspähen.

Es ist somit eine Aufgabe der vorliegenden Erfindung, einen unberechtigten Zugriff und ein unberechtigtes Modifizieren oder Ausspähen auf eine Containerinstanz, insbesondere auf der Containerinstanz zugewiesene Dateisysteme und zugewiesene Netzwerkschnittstellen zu erschweren.

Die Aufgabe wird durch die in den unabhängigen Ansprüchen be schriebenen Maßnahmen gelöst. In den Unteransprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt.

Gemäß einem ersten Aspekt betrifft die Erfindung ein Verfah ren zur Absicherung eines EinrichteVorgangs bei dem mindes tens ein Unterverzeichnis der Containerinstanz durch Zuwei sung mindestens eines Unterverzeichnisses in einem Quellver zeichnis eines zugeordneten physikalischen Datenspeichers be reitgestellt wird und mindestens eine Netzwerkschnittstelle der Containerinstanz durch Zuweisung mindestens einer ent sprechenden virtuellen oder physikalischen Netzwerkschnitt stelle eines zugeordneten Gastrechners bereitgestellt wird, umfassend die Schritte

- Erzeugen einer Verzeichnisrichtline, die mindestens eine Einbinderegel für die Zuweisung des Unterverzeichnisses der Containerinstanz zum Unterverzeichnis im QuellVerzeichnis um- fasst, insbesondere für persistente Unterverzeichnisse in dem Daten persistent gespeicherten werden;

- Erzeugen einer Schnittstellenrichtline, die mindestens eine Einbinderegel für die Zuweisung der Netzwerkschnittstelle der Containerinstanz zu einer virtuellen und/oder physikalischen Netzwerkschnittstelle des zugeordneten Gastrechners umfasst,

- Laden eines Containerabbilds, einer zugeordneten Konfigura tionsdatei, sowie der Verzeichnisrichtlinie und der Schnitt stellenrichtlinie in eine Laufzeitumgebung des Gastrechners,

- vor dem Startvorgang der Containerinstanz, überprüfen, ob alle vom Containerabbild für die Containerinstanz festgeleg ten Unterverzeichnisse im QuellVerzeichnis entsprechend der Verzeichnisrichtlinie einbindbar sind und ob alle von der Konfigurationsdatei festgelegten Netzwerkschnittstellen ent sprechend der Schnittstellenrichtlinie einbindbar sind, ohne bereits vorhandene EinbindeOptionen von Unterverzeichnissen und Netzwerkschnittstellen von weiteren Containerinstanzen zu verletzen, und

- Erzeugen der Containerinstanz aus dem Containerabbild im Gastrechner lediglich bei einem positiven Überprüfungsergeb- nis.

Zur besseren Verständlichkeit wurde in den einzelnen Merkma len der Ausdruck „das mindestens eine" bzw. „die mindestens eine Netzwerkschnittstelle" durch „das Unterverzeichnis" bzw. „die Netzwerkschnittstelle" ersetzt. Die Anspruchsmerkmale gelten somit nicht nur für ein einziges Unterverzeichnis bzw. eine Netzwerkrichtlinie, sondern auch jeweils für mehrere Un terverzeichnisse und Netzwerkschnittstellen. Dies gilt für alle Ansprüche und die Beschreibung.

Durch das Überprüfen der Konfigurationsanweisungen in der Konfigurationsdatei und den im Containerabbild festgelegten Anforderungen an Verzeichnisse und Netzwerkschnittstellen ge genüber der Verzeichnis- und Schnittstellenrichtlinie vor dem Start der Containerinstanz können sicherheitskritische Unter verzeichnisse und Netzwerkschnittstellen der Containerinstanz identifiziert werden. Insbesondere wird überprüft, ob und mit welchen EinbindeOptionen die gleichen Unterverzeichnisse oder Netzwerkschnittstellen bereits in andere Containerinstanzen auf dem Gastrechner eingebunden sind. Sind durch die bereits vorliegende Einbindung in andere Containerinstanzen die Ver zeichnis- und Netzwerkrichtlinie nicht mehr durchsetzbar, führt dies zu einem negativen Prüfungsergebnis. Lediglich wenn keine in den Verzeichnis- und Schnittstellenrichtlinie vorgeschriebene EinbindeOption verletzt wird, liegt ein posi tives Prüfungsergebnis vor und die Containerinstanz wird er zeugt. Somit liegen lediglich überprüfte und sichere Contai nerinstanzen auf dem Gastrechner vor. Die Verzeichnisrichtli nie umfasst insbesondere Einbinderegeln für persistente Un terverzeichnisse . Diese sind durch ihre Verwendung zum Ein bringen von sicherheitsrelevanten Daten oder Konfigurations- einstellungen der Applikation, wie kryptographische Schlüssel oder zum Abspeichern von durch die Applikation erzeugte, per- sistierte Daten besonders schutzbedürftig.

Die mindestens eine Netzwerkschnittstelle können virtuelle Netzwerkschnittstellen sein, die ein virtuelles Netzwerk auf dem Gastrechner erzeugen oder physikalisch Netzwerkschnitt stellen des Gastrechners sein, die Daten aus dem Gastrechner heraus übertragen.

In einer vorteilhaften Ausführungsform werden die Verzeich- nisrichtlinie und die Schnittstellenrichtlinie durch einen Ersteller der Konfigurationsdatei erstellt und an die Konfi- gurationsdatei gebunden.

Dadurch kann ein Ersteller der Konfigurationsdatei sowohl die Einbinderegeln für die Unterverzeichnisse und Netzwerk schnittstellen in die Containerinstanz vorgeben.

In einer vorteilhaften Ausführungsform wird die Verzeichnis- richtline durch einen Ersteller des Containerabbilds erstellt und an das Containerabbild gebunden. Dadurch kann nicht nur der Betreiber der Laufzeitumgebung und somit der Betreiber des Gastrechners, sondern der Ersteller des Containerabbilds die Einbinderegeln für Unterverzeichnis se und Netzwerkschnittstellen festlegen.

In einer vorteilhaften Ausführungsform umfasst die Verzeich- nisrichtlinie Metainformation in Bezug auf die Unterverzeich nisse und die Metainformation wird in Form eines Abbild- Kennzeichens, auch als „image tag" bezeichnet, dem Contai nerabbild zugewiesenen.

Dies ermöglicht eine einfache Kopplung der Verzeichnisricht- line an das Containerabbild.

In einer vorteilhaften Ausführungsform legt die Verzeichnis richtlinie und/oder die Schnittstellenrichtlinie fest, ob das Unterverzeichnis im QuellVerzeichnis und/oder die Netzwerk schnittstelle ausschließlich von einer einzigen Container instanz eingebunden werden darf oder von mehreren Container instanzen gebildet aus dem gleichen Containerabbild oder von mehreren Containerinstanzen gebildet aus unterschiedlichen Containerabbildern eingebunden werden darf.

Somit kann der Zugriff auf ein Unterverzeichnis im Quellver zeichnis abhängig vom Containerabbild, aus dem die zugreifen de Containerinstanz erstellt wurde, vorgegeben werden.

In einer vorteilhaften Ausführungsform legt die Verzeichnis richtlinie mindestens eine erlaubte Zugriffsoption auf das Unterverzeichnis fest.

Durch die Verzeichnisrichtline ist somit hinterlegt, ob das QuellVerzeichnis nur für die Containerinstanz selbst exklusiv als ZielVerzeichnis in die Containerinstanz eingebunden wer den soll, ob es für den gleichen Instanz-Typ, also Container instanzen, die aus dem gleichen Containerabbild erzeugt wer den, eingehängt werden darf und ob andere Instanztypen, also Containerinstanzen, die von einem anderen Containerabbild er- zeugt wurden, und mit welchen Zugriffsoptionen eingebunden werden darf. Zugriffsoptionen sind beispielsweise ein nur le sender, nur schreibender oder lesender und schreibender Zu griff oder auch eine Einschränkung bezüglich der Ausführbar keit von in das Unterverzeichnis eingehängten Dateien, und weitere . Die Bezeichnungen „einbinden", „einhängen" und „ein richten" werden in der Beschreibung als Synonyme verwendet.

In einer vorteilhaften Ausführungsform legt die Verzeichnis richtlinie und/oder Schnittstellenrichtlinie Einbinderegeln abhängig von einer Signatur des Containerabbildes fest.

Somit können Einbinderegeln abhängig vom Ersteller des Con tainerabbilds eingebracht und durchgesetzt werden.

In einer vorteilhaften Ausführungsform umfasst die Verzeich- nisrichtlinie und/oder Schnittstellenrichtlinie einen Verweis auf die Konfigurationsdatei mit Direktiven, welche auf min destens eine Umgebungsvariable verweisen, und die Umgebungs variable eine Angabe eines Unterverzeichnisses in der Contai nerinstanz umfasst.

Mit einer Umgebungsvariable kann das ZielVerzeichnis dyna misch angegeben werden. Dabei wird in der Verzeichnisrichtli nie das Unterverzeichnis der Containerinstanz nicht explizit genannt, sondern durch eine Variable angegeben, deren Wert das einzubindende Unterverzeichnis angibt.

In einer vorteilhaften Ausführungsform umfasst die Schnitt steilenricht1ine einen Verweis auf die Konfigurationsdatei mit erlaubten Eigenschaften der Netzwerkschnittstellen.

In einer vorteilhaften Ausführungsform wird eine zentrale Einbinde-Datenbank für die Laufzeitumgebung der Container instanz erzeugt, und die Einbinde-Datenbank umfasst einen Namen und eine Version des Containerabbilds aus dem die Con tainerinstanz erzeugt wurde, das ZielVerzeichnis in der Con- tainerinstanz, das QuellVerzeichnis des zugeordneten physika- lischen Datenspeichers und die erlaubten EinbindeOptionen und Zugriffsoptionen des Zielverzeichnisses, sowie Angaben und EinbindeOptionen der Netzwerkschnittstellen der Container instanz.

In einer vorteilhaften Ausführungsform wird die Einbinde- Datenbank persistent gespeichert.

In einer vorteilhaften Ausführungsform wird anhand der Ein binde-Datenbank überprüft, ob ein für ein Unterverzeichnis angefordertes QuellVerzeichnis oder ein übergeordnetes oder untergeordnetes Verzeichnis des Quellverzeichnis, und/oder ob eine angeforderte Netzwerkschnittstelle bereits für ein ande res Containerabbild aktuell eingebunden ist oder für ein Con tainerabbild eines anderen Typs jemals eingebunden war.

Durch die Einbinde-Datenbank können parallel vorhandene, aber auch zu einer früheren Zeit erzeugte Containerinstanzen und deren eingebundene Unterverzeichnisse und Netzwerkschnitt stellen für die Überprüfung mit der Verzeichnis- und/oder Schnittstellenrichtlinie bereitgestellt werden.

In einer vorteilhaften Ausführungsform werden nach einem er folgreichen Einbinden eines Unterverzeichnisses und/oder ei ner Netzwerkschnittstelle, der Name und die Version des Con- tainerabbilds, das ZielVerzeichnis in der Containerinstanz, das QuellVerzeichnis des zugeordneten physikalischen Daten speichers, die erlaubten EinbindeOptionen und Zugriffsoptio nen des ZielVerzeichnisses und/oder die eingebundene Netz werkschnittstelle und die EinbindeOptionen für die Netzwerk schnittstelle an die Einbinde-Datenbank übermittelt und dort gespeichert.

Somit wird die Einbinde-Datenbank automatisch nach jedem er folgreichen Einrichtevorgang mit den aktuell eingerichteten Unterverzeichnissen und Netzwerkschnittstellen aktualisiert. In einer vorteilhaften Ausführungsform wird ein Unterver zeichnis nicht in die Containerinstanz eingebunden, wenn beim Überprüfen von Containerinstanzen, die aus anderen Contai nerabbildern und/oder mit anderen Konfigurationsdateien ge bildet wurden, gegenüber der Verzeichnisrichtlinie festge stellt wird, dass die Verzeichnisrichtlinie keine erlaubte EinbindeOption für das einzubindende Unterverzeichnis enthält oder das einzubindende Unterverzeichnis ein übergeordnetes oder untergeordnetes Verzeichnis zu einem nicht in der Ver- zeichnisrichtlinie genannten Unterverzeichnis ist, und/oder wobei eine Netzwerkschnittstelle nicht eingebunden wird, wenn beim Überprüfen von Containerinstanzen, die aus anderen Con- tainerbildern und/oder mit anderen Konfigurationsdateien ge bildet wurden, gegenüber der Schnittstellenrichtlinie festge stellt wird, dass die Schnittstellenrichtlinie keine erlaubte EinbindeOption für die einzubindende Netzwerkschnittstelle enthält.

Somit wird verhindert, dass Unterverzeichnisse oder Netzwerk schnittstellen, die nicht der Verzeichnis- oder Netzwer krichtlinie entsprechen in die Containerinstanz eingebunden werden.

Ein zweiter Aspekt der Erfindung betrifft eine Vorrichtung zur Absicherung eines EinrichteVorgangs bei dem mindestens ein Unterverzeichnis der Containerinstanz durch Zuweisung mindestens eines Unterverzeichnisses in einem QuellVerzeich nis eines zugeordneten physikalischen Datenspeichers bereit gestellt wird und mindestens eine Netzwerkschnittstelle der Containerinstanz durch Zuweisung mindestens einer entspre chenden virtuellen oder physikalischen Netzwerkschnittstelle eines zugeordneten Gastrechners bereitgestellt wird, umfas send eine Generierungseinheit, die derart ausgebildet ist - eine Verzeichnisrichtline zu erzeugen, die mindestens eine Einbinderegel für die Zuweisung des Unterverzeichnisses der Containerinstanz zum Unterverzeichnis im QuellVerzeichnis um- fasst, insbesondere für persistente Unterverzeichnisse in dem Daten persistent gespeicherten werden;

- eine Schnittstellenrichtline zu erzeugen, die mindestens eine Einbinderegel für die Zuweisung der Netzwerkschnittstel le der Containerinstanz zur virtuellen und/oder physikali schen Netzwerkschnittstelle des zugeordneten Gastrechners um fasst,

- ein Containerabbild, eine zugeordnete Konfigurationsdatei, sowie die Verzeichnisrichtlinie und die Schnittstellenricht linie in eine Laufzeitumgebung des Gastrechners zu laden, und der Gastrechner derart ausgebildet ist,

- vor dem Startvorgang der Containerinstanz zu überprüfen, ob alle vom Containerabbild für die Containerinstanz festgeleg ten Unterverzeichnisse im QuellVerzeichnis entsprechend der Verzeichnisrichtlinie einbindbar sind, und/oder ob alle von der Konfigurationsdatei festgelegten Netzwerkschnittstellen entsprechend der Schnittstellenrichtlinie einbindbar sind, ohne EinbindeOptionen von Unterverzeichnissen und Netzwerk schnittstellen von bereits vorhandenen weiteren Container instanzen zu verletzen, und

- die Containerinstanz aus dem Containerabbild im Gastrechner lediglich bei einem positiven Überprüfungsergebnis zu erzeu gen.

Durch die Anordnung kann sichergestellt werden, das Netzwerk schnittstellen und Unterverzeichnisse nach fest vorgegebenen Einbinderegeln für eine Containerinstanz eingebunden werden und somit ein Zugriff durch andere Containerinstanzen verhin derbar ist.

Ein dritter Aspekt der Erfindung betrifft ein Computerpro grammprodukt, umfassend ein nicht flüchtiges Computerlesbares Medium, das direkt in einen Speicher eines digitalen Compu ters ladbar ist, umfassend Programmcodeteile, die bei Ausfüh rung der Programmcodeteile durch den digitalen Computer die sen veranlassen, die Schritte des Verfahrens durchzuführen. Sofern es in der nachfolgenden Beschreibung nicht anders an gegeben ist, beziehen sich die Begriffe „überprüfen", „erzeu gen", „laden" und dergleichen, vorzugsweise auf Handlungen und/oder Prozesse und/oder Verarbeitungsschritte, die Daten verändern und/oder erzeugen und/oder die Daten in andere Da ten überführen, wobei die Daten insbesondere als physikali sche Größen dargestellt werden oder vorliege können, bei spielsweise als elektrische Impulse. Das System und darin insbesondere die physikalische als auch die virtuelle Reali sierung ausgebildeten Gastrechner, GenerierungsVorrichtung und weitere kann einen oder mehrere Prozessoren umfassen.

Ein Computerprogrammprodukt, wie z. B. ein Computerpro grammmittel, kann beispielsweise als Speichermedium, wie z.

B. Speicherkarte, USB-Stick, CD-ROM, DVD oder auch in Form einer herunterladbaren Datei von einem Server in einem Netz werk bereitgestellt oder geliefert werden. Dies kann z. B. in einem drahtlosen Kommunikationsnetzwerk durch die Übertragung einer entsprechenden Datei auf das Computerprogrammprodukt oder dem Computerprogrammmittel erfolgen.

Ausführungsbeispiele des erfindungsgemäßen Verfahrens und der erfindungsgemäßen Anordnung sind in den Zeichnungen beispiel haft dargestellt und werden anhand der nachfolgenden Be schreibung näher erläutert. Es zeigen:

Fig. 1 ein Ausführungsbeispiel eines erfindungsgemäßen

Gastrechners mit einer Containerinstanz in schema tischer Darstellung;

Fig. 2 ein Ausführungsbeispiel des erfindungsgemäßen Ver fahrens in Form eines Ablaufdiagramms; und

Fig. 3 ein Ausführungsbeispiel eines Containerabbilds mit Dateisystemschichten einer Anwendung des erfin dungsgemäßen Verfahrens in schematischer Darstel lung. Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.

Fig. 1 zeigt einen Gastrechner 10 mit Hardware-Ressourcen 11, einen Betriebssystemkern 12, auch Kernel genannt. Hardware- Ressourcen 11 sind beispielsweise Prozessoren zur Durchfüh rung von Operationen, ein Datenspeicher 15 oder auch Netz werkschnittstellen 17, zur Übermittlung von Daten an ein in ternes oder externes Netzwerk. Bei einer Containervirtuali- sierung können in einer Laufzeitumgebung mehrere Instanzen des Betriebssystems isoliert voneinander den Betriebssystem kern 12 des Gastrechners 10 nutzen. Mit Hilfe der Container- Laufzeitumgebung lässt sich verwalten, welche Hardware- Ressourcen 11 den Prozessen in der Containerinstanz 13, 14 zugewiesen werden. Eine Containerinstanz 14 kann zum Betrei ben einer Software-Applikation verwendet werden, indem ein Containerabbild mit einer Software-Applikation in eine solche Instanz des Betriebssystems 12 geladen wird. Anhand einer Be reitstellungskonfigurationsdatei , im Weiteren kurz Konfigura tionsdatei genannt, wird unter anderem mindestens ein Unter verzeichnis eines QuellVerzeichnisses 15 einem Unterverzeich nis in einem ZielVerzeichnis 16 in der Containerinstanz 14 zugeordnet. In gleicher Weise werden durch die Konfigurati onsdatei Netzwerkschnittstellen 17 aus den Hardware- Ressourcen 11 des Gastrechners 10 einer Netzwerkschnittstelle 18 der Containerinstanz 14 zugeordnet. Netzwerkschnittstellen können virtuelle interne Schnittstelle oder auch reale exter ne Schnittstellen sein.

Um der Containerinstanz 14 beim Start Parameter zuordnen zu können oder von der Containerinstanz erzeugte Daten speichern zu können, werden zum Start der Containerinstanz 14 Unterver zeichnisse eines Dateisystems, sogenannte „Volumes", an die Containerinstanz 14 übergeben und in die Containerinstanz eingehängt. Ein persistentes Unterverzeichnis ist ein Unter verzeichnis eines Dateisystems in der Containerinstanz 14, das vom darunterliegenden Betriebssystem 12 in die Container- instanz 14 eingehängt wird und in dem Daten persistent, also dauerhaft, gespeichert sind bzw. werden. Das Dateisystem kann physisch auf den Gastrechner 10, beispielsweise als Teil der Hardware-Ressourcen 11 oder in einer vom Gastrechner 10 abge setzten oder ausgelagerten Speichereinheit angeordnet sein.

In einer Docker-Laufzeitumgebung wird ein „Volume" beispiels weise mit Hilfe eines sogenannten „Bind-Mounts" eingehängt.

Mit Hilfe eines solchen persistenten Unterverzeichnisses wer den einer Containerinstanz beispielsweise Schlüssel eines kryptographischen Netzwerkprotokolls für den sicheren Betrieb von Netzwerkdiensten, private Schlüssel für Zertifikate, Kon figurationseinstellungen für die Containerinstanz oder Umge bungsinformationen des darunterliegenden Gastrechners 10 oder der gesamten Laufzeitumgebung an die Containerinstanz überge ben und hiermit auch die im Container betriebene Applikation parametriert .

Welche QuellVerzeichnisse 15 des Gastrechners 10 als Unter verzeichnisse 16 in die Containerinstanz 14 eingehängt wer den, ist beim Erstellen eines Containerabbilds nicht bekannt. Des Weiteren ist es möglich, dass das Persistierungsziel über einen Konfigurationsparameter definiert wird, welcher durch einen Übergabeparameter oder innerhalb der Konfigurationsda tei abgelegt ist, die innerhalb des eingehängten persistenten ZielVerzeichnisses der Instanz zur Verfügung gestellt wird.

Die einzuhängenden persistenten Unterverzeichnisse werden beim Start der Containerinstanz 14 durch entsprechende Star- tup-Parameter über die Kommandozeile übergeben. Alternativ besteht die Möglichkeit über entsprechenden Konfigurationsdi rektiven innerhalb der Konfigurationsdatei, beispielsweise einer Docker-Compose-Datei, oder als Bereitstellungsinforma tion in einem Orchestrierer entsprechende persistente Unter verzeichnisse an die Containerinstanz 14 zu übergeben.

Das erfindungsgemäße Verfahren zur Absicherung des Einrichte vorgangs eines Unterverzeichnisses und/oder einer Netzwerk- Schnittstelle für eine Containerinstanz zur Bereitstellung einer Container-basierten Anwendung, wird nun anhand von Fig. 2 näher beschrieben. Dabei wird ein Unterverzeichnis der Con tainerinstanz 14 durch Zuweisung eines Unterverzeichnisses in einem QuellVerzeichnis 15 eines zugeordneten physikalischen Datenspeichers bereitgestellt und eine Netzwerkschnittstelle der Containerinstanz durch Zuweisung einer entsprechenden virtuellen oder physikalischen Netzwerkschnittstelle eines zugeordneten Gastrechners bereitgestellt wird

In einem ersten Verfahrensschritt S1 wird eine Verzeichnis- richtline erzeugt, die mindestens eine Einbinderegel für die Zuweisung eines Unterverzeichnisses der Containerinstanz zum Unterverzeichnis im QuellVerzeichnis umfasst, insbesondere für persistente Unterverzeichnisse in dem Daten persistent gespeicherten werden. Entsprechend wird im Verfahrensschritt S2 eine Schnittstellenrichtline in der Containerinstanz er zeugt, die mindestens eine Einbinderegel für die Zuweisung der Netzwerkschnittstelle der Containerinstanz zur Netzwerk schnittstelle des zugeordneten Gastrechners umfasst. Insbe sondere legt die Verzeichnisrichtlinie fest, welche Verzeich nisse oder Dateien in der Containerinstanz als persistente Unterverzeichnisse übergeben werden dürfen. Im Verfahrens schritt S3 wird ein Containerabbild, eine zugeordnete Konfi- gurationsdatei, sowie der Verzeichnisrichtlinie und/oder der Schnittstellenrichtlinie in eine Laufzeitumgebung des Gast rechners geladen.

Die Verzeichnisrichtlinie wird beispielsweise durch einen Er steller des Containerabbilds erstellt und an das Containerab bild gebunden. Die Verzeichnisrichtlinie umfasst Metainforma tion in Bezug auf die Unterverzeichnisse und die Metainforma tion wird in Form eines Abbild-Kennzeichens, auch image-tag bezeichnet, dem Containerabbild zugewiesenen.

Analog wird im Verfahrensschritt S2 eine Schnittstellenricht line erzeugt, die mindestens eine Einbinderegel für die Zu- Weisung der Netzwerkschnittstelle der Containerinstanz zur Netzwerkschnittstelle des zugeordneten Gastrechners umfasst.

In der Verzeichnisrichtlinie und in der Schnittstellenricht linie ist festgelegt, ob das Unterverzeichnis im Quellver zeichnis und die Netzwerkschnittstelle ausschließlich von ei ner einzigen Containerinstanz oder von mehreren Container instanzen gebildet aus dem gleichen Containerabbild oder von mehreren Containerinstanzen gebildet aus unterschiedlichen Containerabbildern eingebunden werden darf. Die Verzeichnis richtlinie legt des Weiteren eine erlaubte Zugriffsoption in Bezug auf einen nur lesenden, nur schreibenden oder lesenden und schreibenden Zugriff auf das Unterverzeichnis oder die Netzwerkschnittstelle fest. Durch die Verzeichnisrichtlinie und/oder die Schnittstellenrichtlinie werden Einbinderegeln abhängig von einer Signatur des Containerabbildes festlegt.

Mit anderen Worten, die Verzeichnisrichtlinie legt fest, ob ein ZielVerzeichnis nur exklusiv von einer Containerinstanz oder von allen Containerinstanzen des gleichen Instanztyps, d.h. aus dem gleichen Containerabbild gebildet, oder auch von Containerinstanzen von anderen Instanztypen, d.h. aus anderen Containerabbilder gebildet, beispielsweise mit den Zu griffsoptionen nur lesend oder auch schreibend eingehängt werden darf. Des Weiteren können Einschränkungen in der Ver zeichnis- und/oder Schnittstellenrichtline abhängig von der Signatur des Container-Images definiert werden. Dies wird insbesondere für persistente Unterverzeichnisse festgelegt.

Analog zur Ressourcenzuteilung für Unterverzeichnisse, kann für Netzwerkressourcen in der Schnittstellenrichtlinie defi niert werden, ob das oder die zugewiesenen Netzwerkschnitt stellen zu einer Containerinstanz exklusiv zugeteilt werden, generell freigegeben werden oder nur einem Containerabbild geteilt werden, das eine in der Schnittstellenrichtlinie vor gegebene Signatur aufweist. Über die Schnittstellenrichtlinie wird somit gesteuert, dass sich nur vertrauenswürdige Contai nerinstanzen miteinander unterhalten. Diese Schnittstellen richtlinie kann entweder für einzelne Containerabbilder defi- niert werden und beispielsweise über Abbildkennzeichen, soge nannte Tags, zugewiesen werden oder Schnittstellen- Definitionen einer Konfigurationsdatei, beispielsweise über eine Docker-Compose-Datei, referenzieren. Erfolgt die Schnittstellen-Definition auf Docker-Compose-Ebene, kann jede einzelne referenzierte Schnittstelle eingeschränkt werden und ein Default-Verhalten für weitere Schnittstellen definiert werden.

In einer Ausführungsform werden die Verzeichnisrichtlinie und die Schnittstellenrichtlinie durch einen Ersteller der Konfi gurationsdatei erstellt und an die Konfigurationsdatei gebun den. In einer Ausführungsform umfasst die Schnittstellen- richtline einen Verweis auf die Konfigurationsdatei mit er laubten Eigenschaften der Netzwerkschnittstellen. Optional umfasst die Verzeichnisrichtlinie einen Verweis auf die Kon figurationsdatei mit Direktiven, welche auf mindestens eine Umgebungs ariable verweisen, umfasst, und die Umgebungsvari able eine Angabe eines Unterverzeichnisses in der Container instanz. In gleicher Weise kann die Schnittstellenrichtline einen Verweis auf die Konfigurationsdatei mit erlaubten Ei genschaften der Netzwerkschnittstellen umfassen. Damit wird sichergestellt, dass auch von einem Plattformbetreiber Ziel verzeichnisse und Netzwerkschnittstellen mit Hilfe eigener Konfigurationsdateien dynamisch über Parameter definiert wer den können.

Vor dem Startvorgang der Containerinstanz, wird in Verfah rensschritt S4 überprüft, ob alle vom Containerabbild für die Containerinstanz festgelegten Unterverzeichnisse im Quellver zeichnis entsprechend der Verzeichnisrichtlinie einbindbar sind, und/oder ob alle von der Konfigurationsdatei festgeleg ten Netzwerkschnittstellen entsprechend der Schnittstellen richtlinie einbindbar sind ohne EinbindeOptionen von Unter verzeichnissen und Netzwerkschnittstellen, von bereits vor handenen weiteren Containerinstanzen zu verletzen. Abschlie ßend wird in Verfahrensschritt S5 die Containerinstanz aus dem Containerabbild im Gastrechner lediglich dann erzeugt, wenn das Überprüfen ein positives Überprüfungsergebnis ergibt.

Es wird angenommen, dass der darunterliegenden Plattform, d.h. dem Betriebssystem 12 und den Ressourcen 11 des Gast rechners 10 und der Container-Laufzeitumgebung oder sofern mehrere Laufzeitumgebungen betrieben werden sollten, sämtli chen Ausprägungen von Laufzeitumgebungen vertraut wird und die Laufzeitumgebung Signaturen auswertet.

Soll eine Containerinstanz basierend auf dem Containerabbild in der Laufzeitumgebung gestartet werden, wird die hinterleg te Verzeichnisrichtlinie und die Schnittstellenrichtline für das Containerabbild vor dem eigentlichen Startvorgang inter pretiert. Der Gastrechner 10 bzw. die Container- Laufzeitumgebung kann die Validierung der Verzeichnis- und Schnittstellenrichtline durchführen. Der Gastrechner kann da zu eine einfügbare Funktionseinheit, die einen eigenständigen Dienst aufruft, umfassen.

Für die Überprüfung wird eine zentrale Einbinde-Datenbank für die Laufzeitumgebung der Containerinstanz erzeugt. Die Ein binde-Datenbank umfasst einen Namen und eine Version des Con- tainerabbilds, aus dem die Containerinstanz erzeugt wurde, sowie das ZielVerzeichnis in der Containerinstanz, das Quell verzeichnis des zugeordneten physikalischen Datenspeichers und die erlaubten EinbindeOptionen und Zugriffsoptionen des Zielverzeichnisses, sowie die der Containerinstanz zugeordne ten Netzwerkschnittstellen und EinbindeOptionen. Die Einbin de-Datenbank persistent gespeichert wird. Anhand der Einbin de-Datenbank wird überprüft, ob ein für ein Unterverzeichnis angefordertes QuellVerzeichnis oder für ein übergeordnetes oder untergeordnetes Verzeichnis des QuellVerzeichnis einge bunden ist. Des Weiteren wird überprüft, ob eine einzubinden de Netzwerkschnittstelle bereits für ein anderes Containerab bild aktuell eingebunden ist oder für ein Containerabbild ei nes anderen Typs jemals eingebunden war.

Nach einem erfolgreichen Einbinden eines Unterverzeichnisses und/oder einer Netzwerkschnittstelle, werden der Name und die Version des Containerabbilds, das ZielVerzeichnis in der Con- tainerinstanz, das Quell erzeichnis des zugeordneten physika lischen Datenspeichers und die erlaubten EinbindeOptionen und Zugriffsoptionen des ZielVerzeichnisses und/oder die einge bundene Netzwerkschnittstelle und die EinbindeOptionen für die Netzwerkschnittstelle an die Einbinde-Datenbank übermit telt und dort gespeichert.

Ein Unterverzeichnis wird nicht in die Containerinstanz ein gebunden, wenn beim Überprüfen von Containerinstanzen, die aus anderer Containerbildern und/oder Konfigurationsdateien gebildet wurden, gegenüber der Verzeichnisrichtlinie festge stellt wird, dass die Verzeichnisrichtlinie keine erlaubte EinbindeOption für das einzubindende Unterverzeichnis enthält oder das einzubindende Unterverzeichnis ein übergeordnetes oder untergeordnetes Verzeichnis zu einem nicht in der Ver- zeichnisrichtlinie genannten Unterverzeichnis ist. Analog wir eine Netzwerkschnittstelle nicht eingebunden, wenn beim Über prüfen von Containerinstanzen, die aus anderer Containerbil dern und/oder Konfigurationsdateien gebildet wurden, gegen über der Schnittstellenrichtlinie festgestellt wird, dass die Schnittstellenrichtlinie keine erlaubte EinbindeOption für die einzubindende Netzwerkschnittstelle enthält.

Im Folgenden wird das Prüfen beim Einhängevorgang eines Un terverzeichnisses, insbesondere eines persistenten Unterver zeichnisses beschrieben:

Ist für das Containerabbild eine Verzeichnisrichtlinie hin terlegt, wird überprüft, ob das QuellVerzeichnis bereits von einer anderen Containerinstanz in Verwendung ist oder in Ver wendung eines anderen Instanztyps war und somit auf der Plattform für ein anderes Image reserviert ist. Um dies nicht nur für laufende Instanzen sondern auch für nicht-laufende Instanzen überprüfen zu können, wird eine zentrale Einbinde datenbank für die Laufzeitumgebung erzeugt, in der neben dem Name, der Version (-Tag) des Containerabbilds dem Zielver- zeichnis auch das gewünschte QuellVerzeichnis und die ge wünschte Zugriffsoption persistent gespeichert wird.

Vor dem Start der auf einem Containerabbild basierenden Con- tainerinstanz, wird zunächst überprüft, ob für diese Contai nerinstanz überhaupt persistente Unterverzeichnisse als Star- tup-Parameter definiert sind. Ist dies nicht der Fall, findet keine weitere Überprüfung statt, auch wenn im Containerabbild eine entsprechende Verzeichnisrichtline hinterlegt ist. Grund hierfür ist, dass durch das Starten der Containerinstanz kei ne Daten persistiert werden und auch keine Schützenswerten Daten des darunterliegenden Gastrechners gefährdet sind. In einer alternativen Variante kann durch die Laufzeitumgebung erzwungen werden, dass bei einer vorliegenden Verzeichnis richtline auch entsprechende Daten zugewiesen werden. Dies kann z.B. ebenfalls in der Verzeichnisrichtline für das Con tainerabbild definiert werden.

Ist mindestens ein einzubindendes Unterverzeichnis, insbeson dere ein persistentes Unterverzeichnis beim Start einer Con tainerinstanz spezifiziert, werden folgendes überprüft:

Zunächst wird geprüft, ob das gewünschte ZielVerzeichnis identisch mit einem im für das Containerabbild hinterlegten Verzeichnis ist, für das eine Verzeichnisrichtlinie hinter legt ist. Ist dies nicht der Fall oder sollen übergeordnete oder untergeordnete TeilVerzeichnisse in das Containerabbild eingehängt werden, wird der Vorgang abgebrochen. Hiermit wird sichergestellt, dass nur in den erlaubten Einhängepunkten persistente Daten erzeugt werden. Wird zum Referenzieren eine Variable oder eine Direktive einer Konfigurationsdatei ver wendet, die ein Unterverzeichnis referenziert, das noch nicht eingehängt ist, überprüft die Laufzeitumgebung oder das Plugin die referenzierte Datei auf dem QuellVerzeichnis und interpretiert diese.

Ist in der Verzeichnisrichtlinie spezifiziert, dass ein per sistentes Unterverzeichnis von einer Containerinstanz eines Typs nur exklusiv eingebunden werden darf, wird überprüft, ob bereits eine Containerinstanz gleichen Typs existiert und das eingehängte Verzeichnis für das gleiche QuellVerzeichnis ak tiv ist. Ist dies der Fall, wird der Startvorgang ebenfalls abgebrochen und das Einrichten des Unterverzeichnisses ver weigert. Hierdurch wird sichergestellt, dass z.B. zwei gleichlaufende Datenbanken, die in unterschiedlichen Contai ner-Instanzen implementiert sind, keine inkonsistenten Daten erzeugen, indem diese auf das gleiche persistente Unterver zeichnis zugreifen. Sofern es sich um eine nicht- orchestrierte Umgebung handelt, kann die Überprüfung statt finden, indem auf den lokal betriebenen Container- Laufzeitumgebungen bereits eine Containerinstanz mit dem spe zifizierten Unterverzeichnis betrieben wird. Im orchestrier ten Umfeld kann hierzu ein Orchestrierer befragt werden oder in der Einbindedatenbank zusätzlich die laufenden Container instanzen mit den entsprechenden Unterverzeichnissen hinter legt werden. Diese wird dann von der Container- Laufzeitumgebung kontinuierlich aktualisiert. Ein zugeordne tes Unterverzeichnis von einem anderen QuellVerzeichnis ist - sofern dieses noch nicht in Benutzung ist - zulässig.

In der oben genannten Einbindedatenbank wird überprüft, ob das gewünschte QuellVerzeichnis bzw. ein übergeordneter oder untergeordneter Pfad bereits für ein anderes Containerabbild aktuell eingehängt ist. Zusätzlich wird überprüft, ob das Verzeichnis oder ein untergeordnetes oder übergeordnetes Ver zeichnis für ein Containerabbild eines anderen Typs jemals eingehängt wurde, und ob dies für den spezifizierten Pfad für das spezifizierte Containerabbild mit den spezifizierten Ein bindeoptionen und Zugriffsoptionen zulässig ist. Wird hierbei eine Verletzung der hinterlegten Verzeichnisrichtlinie fest gestellt, wird der Einrichtevorgang ebenfalls mit einer ent sprechenden Fehlermeldung abgebrochen. Diese Überprüfung fin det auch für ein Containerabbild statt, für das keine spezi fischen Verzeichnisrichtlinie hinterlegt ist. Hiermit wird verhindert, dass von anderen Containerabbilds reservierte Be reiche von nicht autorisierten Containerabbildern benutzt werden. Sofern das Einrichteverfahren erfolgreich ist und noch nicht in der Einbindedatenbank hinterlegt ist, wird dieser mit den Metadaten des zu startenden Containerabbilds und dem spezifi ziertem Quell erzeichnis sowie der Version des Containerab bilds und dem Containerabbildnamen in die Einbindedatenbank eingetragen . Hiermit wird sichergestellt, dass bereits be nutzte Verzeichnisse anderer Containerinstanzen entsprechend reserviert sind und für andere Containerinstanzen eine Über prüfung stattfinden kann.

Sollen Instanzen eines Containerabbilds generell nicht mehr auf einem Gastrechner betrieben werden, können in der Einbin dedatenbank die jeweiligen Einträge für ein Containerabbild durch einen Administrator gelöscht werden. Ein Containerab bild wird somit für die Plattform bzgl. seiner eingebundenen Unterverzeichnisse komplett „deregistriert". Zudem kann in der für das Containerabbild hinterlegten Verzeichnis- und/oder Schnittstellenrichtline spezifiziert werden, dass die in der Einbindedatenbank hinterlegten Daten für ältere Containerabbilder überschrieben bzw. gelöscht werden, sodass in neueren Versionen ein geändertes Einbindeverhalten ermög licht wird. Für die Verzeichnisrichtline soll zudem für jedes einzubindende Unterverzeichnis eines Containerabbilds hinter legt werden, ob dieses versionsspezifisch oder für den alle Versionen dieses Containerabbilds generell gelten soll.

In einer erweiterten Ausführungsform wendet die Container- Laufzeitumgebung die spezifizierte Verzeichnis- und/oder Schnittstellenrichtlinie nur auf definierte Containerabbilder an, beispielsweise abhängig von der Signatur des Containerab bilds. Für ein Containerabbild, das nicht diesen Eigenschaf ten entspricht, kann somit die Interpretation der Verzeich- nisrichtlinie generell deaktiviert werden. Es werden ledig lich QuellVerzeichnisse von geschützten Containerabbildern überprüft und gesichert, indem das Starten der Container instanzen für nicht-validierte Containerabbilder nur unter bunden wird, sofern versucht wird reservierte Quellverzeich- nisse bzw. deren übergeordnete oder untergeordnete Verzeich nisse einzuhängen.

Die Zuweisung von Netzwerk-Interfaces wird analog geschützt. Wird eine Netzwerkschnittstelle neu angelegt, ist keine Prü fung erforderlich. Existiert diese Netzwerkschnittstelle be reits, wird von der Laufzeitumgebung überprüft, ob die mit der Netzwerkschnittstelle verbundenen Container-Instanzen ge mäß der Schnittstellenrichtlinie spezifiziert sind und ob die Containerinstanz, welche das Containerabbild zugewiesen be kommen soll, den Anforderungen der anderen Containerinstanzen genügt. Wird hierbei eine Verletzung der Schnittstellenricht- line erkannt, wird der Startvorgang der Containerinstanz ver weigert.

Die Prüfung wird nicht nur beim Start einer Containerinstanz, sondern auch bei einem dynamischen Hinzufügen von Netzwerk schnittstellen zur Laufzeit der Containerinstanz durchge führt.

In einer Ausführungsform wird die Verzeichnis- und/oder Netz- werkrichtlinie mit Hilfe einer Signatur über den Inhalt der Verzeichnis- und/oder Netzwerkrichtlinie geschützt. Die Sig natur wird von der Container-Laufzeitumgebung beim Ladevor gang validiert. Somit kann die Integrität der Verzeichnis- und/oder Netzwerkrichtlinie überwacht werden.

Fig. 3 zeigt eine Ausführungsform der erfindungsgemäßen An ordnung. Die Anordnung 50 umfasst eine GenerierungsVorrich tung 20, einen Gastrechner 30 und eine Einbindedatenbank 40. Die Einbindedatenbank 40 kann im Gastrechner 30 integriert, oder, wie dargestellt, abgesetzt von Gastrechner 30 zentral und von mehreren Gastrechnern zugänglich ausgebildet sein.

Die GenerierungsVorrichtung 20 ist derart ausgebildet, eine Verzeichnisrichtline 28 zu erzeugen, die mindestens eine Ein binderegel für die Zuweisung des Unterverzeichnisses der Con- tainerinstanz zum Unterverzeichnis im QuellVerzeichnis um fasst, insbesondere für persistente Unterverzeichnisse in dem Daten persistent gespeicherten werden. Die Generierungsvor- richtung 21 ist des Weiteren derart ausgebildet eine Schnitt steilenricht1ine 27 zu erzeugen, die mindestens eine Einbin deregel für die Zuweisung der Netzwerkschnittstelle der Con tainerinstanz zur virtuellen und/oder physikalischen Netz werkschnittstelle des zugeordneten Gastrechners 30 umfasst.

Die Generierungseinheit 21 ist derart ausgestaltet, dass so wohl die Verzeichnisrichtline 28 als auch die Schnittstellen richtlinie 27 durch einen Ersteller einer Konfigurationsdatei 24 erstellbar ist. In einer Ausführungs ariante umfasst die Generierungseinheit 21 mindestens eine erste Eingabeeinheit 21, über die die Verzeichnisrichtlinie 28 und die Schnitt stellenrichtlinie 27 vom Ersteller der Konfigurationsdatei 24 erstellbar ist. Die Generierungseinheit 20 verknüpft die Ver- zeichnisrichtlinie 28 und die Schnittstellenrichtlinie 27 mit der Konfigurationsdatei 24. Die Konfigurationsdatei 24 ist einem Containerabbild 25 zugeordnet.

In einer AusführungsVariante ist die Generierungseinheit 21 derart ausgebildet, dass lediglich die Schnittstellenrichtli nie 27 vom Ersteller der Konfigurationsdatei 25 erstellbar ist und die Verzeichnisrichtlinie 27 von einem Ersteller des Containerabbilds 25 erstellbar ist. Die Generierungseinheit 21 umfasst beispielsweise eine zweite Eingabeeinheit, über die der Ersteller des Containerabbilds 24 die Verzeichnis richtlinie erstellt. In diesem Fall wird die Verzeichnis richtlinie 28 mit dem Containerabbild 25 verknüpft, die Schnittstellenrichtline 27 wird mit der Konfigurationsdatei 24 verknüpft. Die Konfigurationsdatei 24 referenziert das Containerabbild 25 und definiert die Zuordnung von einem QuellVerzeichnis zu einem ZielVerzeichnis sowie den Schnitt stellen.

Die Generierungseinheit umfasst eine Ausgabeeinheit 23, über die das Containerabbild 25, die zugeordnete Konfigurationsda tei 24, sowie die Verzeichnisrichtlinie 28 und die Schnitt stellenrichtlinie 27 in eine Laufzeitumgebung 33 des Gast rechners 30 geladen werden. Eine Containerinstanz 31 wird aus dem Containerabbild 25 anhand von Anweisungen und Zuweisun gen, die in der Konfigurationsdatei 24 enthalten sind, konfi guriert und gestartet. Vor dem Startvorgang einer Container instanz 31 überprüft der Gastrechner 30, ob alle vom Contai nerabbild 25 für die Containerinstanz 31 festgelegten Unter verzeichnisse im QuellVerzeichnis entsprechend der Verzeich- nisrichtlinie 28 einbindbar sind, und/oder ob alle von der Konfigurationsdatei 24 festgelegten Netzwerkschnittstellen entsprechend der Schnittstellenrichtlinie 27 einbindbar sind ohne EinbindeOptionen von Unterverzeichnissen und Netzwerk schnittstellen von bereits vorhandenen weiteren Container instanzen 32 zu verletzen. Ergibt die Prüfung, dass alle EinbindeOptionen der Verzeichnis- und Schnittstellenrichtli nie erfüllt sind und somit ein positives Prüfungsergebnis vorliegt, wird die Containerinstanz 31 aus dem Containerab bild 25 erzeugt.

Somit kann mit einer für das Containerabbild hinterlegten Verzeichnis- und/oder Schnittstellenrichtline sichergestellt werden, dass persistierte Daten exklusiv für ein Containerab bild les- und schreibbar sind. Der Einrichtevorgang kann für nicht-berechtigte Containerabbilder unterbunden werden. In der erweiterten Variante können Containerabbilder aufgrund ihrer Eigenschaften (z.B. aufgrund ihrer Signatur) speziell geschützte Unterverzeichnisse anfordern. Die Einschränkungen für das Lesen und Schreiben werden nicht mehr nur von einem Plattformbetreiber definiert werden, sondern können auch vom Containerabbild-Hersteller spezifiziert werden. Durch die In terpretation von Variablen kann die Validierungskomponente im Gastrechner auch dynamisch konfigurierbare Unterverzeichnisse im Zugriff für Containerinstanzen beschränken. Gerätedateien, die exklusiv einer Containerinstanz zugeordnet werden sollen, können speziell abgesichert werden. Netzwerkschnittstellen können durch das Verfahren ebenfalls geschützt werden, wodurch verhindert wird, dass nicht-autorisierte Container instanzen sich auf Netzwerke andere Instanzen einhängen. Alle Verfahrensschritte können durch die entsprechenden Gerä te implementiert werden, die zum Ausführen des jeweiligen Verfahrensschrittes geeignet sind. Alle Funktionen, die von gegenständlichen Merkmalen ausgeführt werden können, können ein Verfahrensschritt des Verfahrens sein. Alle beschriebenen und/oder gezeichneten Merkmale können im Rahmen der Erfindung vorteilhaft miteinander kombiniert werden. Die Erfindung ist nicht auf die beschriebenen Ausführungsbeispiele beschränkt.