DE112020004699T5 - Schützen von arbeitslasten in kubernetes - Google Patents

Schützen von arbeitslasten in kubernetes Download PDF

Info

Publication number
DE112020004699T5
DE112020004699T5 DE112020004699.0T DE112020004699T DE112020004699T5 DE 112020004699 T5 DE112020004699 T5 DE 112020004699T5 DE 112020004699 T DE112020004699 T DE 112020004699T DE 112020004699 T5 DE112020004699 T5 DE 112020004699T5
Authority
DE
Germany
Prior art keywords
image
pod
kubernetes
computer
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112020004699.0T
Other languages
English (en)
Other versions
DE112020004699B4 (de
Inventor
Angel Nunez Mencias
Peter Morjan
Dirk Herrendoerfer
Preethi Polepalli Yeshwanth
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112020004699T5 publication Critical patent/DE112020004699T5/de
Application granted granted Critical
Publication of DE112020004699B4 publication Critical patent/DE112020004699B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

Aspekte der Erfindung weisen ein Erhalten eines originalen Docker-Abbildes von einem Kunden, Verschlüsseln eines Speicherplattenabbildes unter Verwendung von Inhalten aus dem originalen Docker-Abbild und sicheres Verschlüsseln eines Startladeprogramms durch einen Prozessor auf. Aus dem verschlüsselten Festplattenabbild und dem sicheren verschlüsselten Startladeprogramm wird ein neu gepacktes Abbild erstellt. Das neu gepackte Abbild wird bereitgestellt, indem das neu gepackte Abbild in einen Pod-Container eingefügt wird und ein gesicherter Kubernetes-Pod zum Schutz von Arbeitslasten erzeugt wird, wobei der gesicherte Kubernetes-Pod mindestens eine virtuelle Maschine besitzt, die den Pod-Container enthält.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein die Sicherheit von Kubernetes und insbesondere ein Schützen von Arbeitslasten in Kubernetes.
  • Kubernetes ist ein quelloffenes Container-Orchestrierungssystem für eine Automatisierung von Anwendungsbereitstellung, Skalierung und Verwaltung. Kubernetes definiert einen Satz von Bausteinen, die als Primitive bezeichnet werden und zusammen Mechanismen bereitstellen, die Anwendungen auf Grundlage von Prozessor-, Speicher- und benutzerdefinierten Maßzahlen bereitstellen, warten und skalieren. Ein Pod ist ein Kubernetes-Baustein, der einen oder mehrere Container umfasst, die sich zusammen auf einer Host-Maschine befinden und die Ressourcen gemeinsam nutzen können. Ein Knoten, bei dem es sich um eine virtuelle Maschine (VM) oder eine physische Maschine handeln kann, ist eine Arbeitsmaschine in Kubernetes, die einen oder mehrere Pods umfasst. Jeder Knoten enthält die Dienste, die zum Ausführen der Pods nötig sind. Kubernetes unterstützt bisher kein Sicherheitsmodell, das die Arbeitselemente in den Pods von der Steuerung des Kubernetes-Administrators trennt. Ferner sind die Kubernetes-Arbeitslasten in den Pods in keiner Weise gesichert, gesperrt oder verschlüsselt, um die Daten der Arbeitslast zu schützen, und daher ist der Kunde auch nicht vor einem Zugriff durch den Administrator sicher.
  • Kubernetes (Kubernetes ist eine Marke von Google, Inc.) unterstützt in seiner ursprünglichen Form keine Virtualisierungstechnik oder die Steigerung von Fähigkeiten der Arbeitslast eines Pod, um solche Merkmale zu unterstützen, da die Trennung zwischen Host und Container-Arbeitslasten über Linux-Steuergruppen erfolgt.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Erfindung sind auf ein Schützen von Arbeitslasten in Kubernetes gerichtet. Ein nichteinschränkendes, beispielhaftes, durch einen Computer umgesetztes Verfahren umfasst Erhalten eines originalen Docker-Abbildes von einem Kunden, Verschlüsseln eines Speicherplattenabbildes unter Verwendung des Inhalts aus dem originalen Docker-Abbild und sicheres Verschlüsseln eines Startladeprogramms durch einen Prozessor. Aus dem verschlüsselten Speicherplattenabbild und dem sicher verschlüsselten Startladeprogramm wird ein neu gepacktes Abbild erstellt. Das neu gepackte Abbild wird bereitgestellt, indem das neu gepackte Abbild in einen Pod-Container eingefügt und ein gesicherter Kubernetes-Pod zum Schützen von Arbeitslasten erzeugt wird, wobei der gesicherte Kubernetes-Pod mindestens eine virtuelle Maschine besitzt, die den Pod-Container enthält.
  • Andere Ausführungsformen der vorliegenden Erfindung setzen Merkmale des oben beschriebenen Verfahrens in Computersystemen und Computerprogrammprodukten um.
  • Zusätzliche technische Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung verwirklicht. Ausführungsformen und Aspekte der Erfindung werden hierin im Einzelnen beschrieben und als Teil des beanspruchten Gegenstands betrachtet. Zum besseren Verständnis siehe die detaillierte Beschreibung und die Zeichnungen.
  • Figurenliste
  • Auf die hierin beschriebenen Besonderheiten der exklusiven Rechte wird besonders hingewiesen, und sie werden in den Ansprüchen am Schluss der Spezifikation eindeutig beansprucht. Die vorstehenden und sonstigen Merkmale und Vorteile der Ausführungsformen der Erfindung sind aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen ersichtlich, wobei:
    • 1 einen Ablaufplan eines Prozesses zum Schützen von Arbeitslasten in Kubernetes gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 2 ein Schaubild von Komponenten, die zum Schützen von Arbeitslasten in Kubernetes verwendet werden, gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 3 eine Umsetzung zum Schützen von Arbeitslasten in Kubernetes gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung veranschaulicht;
    • 4 eine Cloud-Computing-Umgebung gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt; und
    • 5 Abstraktionsmodellschichten gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt.
  • Die hierin abgebildeten Schaubilder sind veranschaulichend. Zu dem Schaubild oder den darin beschriebenen Operationen kann es viele Variationen geben, ohne vom Geist der Erfindung abzuweichen. Beispielsweise können die Aktionen in einer abweichenden Reihenfolge durchgeführt werden oder Aktionen hinzugefügt, weggelassen oder geändert werden. Auch beschreiben der Ausdruck „verbunden“ und Variationen davon ein Vorliegen eines Datenübertragungspfads zwischen zwei Elementen und deuten keine direkte Verbindung zwischen den Elementen ohne dazwischen liegende Elemente/Verbindungen an. Alle diese Variationen gelten als Teil der Spezifikation.
  • DETAILLIERTE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung ermöglichen einen detaillierteren Schutz einzelner Arbeitslasten in einem Kubernetes-Cluster, indem eine neue Sicherheitsgrenze für einzelne Container in einem Kubernetes-Pod bereitgestellt wird. Dies ermöglicht es Administratoren, ein Kubernetes-Cluster mit voller Transparenz und bestehenden Werkzeugen zu verwalten.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung verhindern, dass eine einzelne Arbeitslast eine Schwachstelle eines Containers durchbricht, um Daten aus anderen Pods in derselben Kubernetes-Arbeitsmaschine zu lesen.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung weisen einen beigesellten (sidecar) Container auf, der für jeden in einem Kubernetes-Cluster eingesetzten Pod bereitgestellt ist, um ein Bereitstellen einer Runq-Umgebung für alle Container des Pods zu unterstützen.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung stellen einen Schutz für einen Haupt- und Massenspeicher eines Pods vor einem Host-Betriebssystem (BS) bereit.
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung ermöglichen den Schutz von nicht belegten Servern (z.B. Logikpartitionen oder „LPARs“), virtuellen Maschinen, einzelnen Docker-Containern und ganzen Kubernetes-Clustern.
  • Nun zu 1 übergehend, ist ein Ablaufplan eines Gesamtprozesses zum Schützen von Arbeitslasten in Kubernetes gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung allgemein gezeigt. Der Prozess beginnt bei Block 101 und erhält ein originales Docker-Abbild bei Block 102. Ein Docker-Abbild ist ein Abbild eines Docker-Containers, bei dem es sich um eine quelloffene Entwicklungsplattform handelt. Der Docker-Container ermöglicht eine Portabilität der Dienstfunktion zwischen jedem beliebigen System, auf dem das Linux-BS ausgeführt wird. Sobald das originale Docker-Abbild erhalten wurde, verschlüsselt der Prozess bei Block 104 ein Speicherplattenabbild unter Verwendung des Inhalts des ursprünglichen Docker-Abbildes. Der Prozess verschlüsselt dann bei Block 106 ein Startladeprogramm. Ein Starten einer BS-Konfiguration auf einem Datenverarbeitungssystem, bei dem Kernparameter fest codiert sind, kann ein Weitergeben des BS-Kerns an ein Startladeprogramm umfassen. Dies kann das Startladeprogramm veranlassen, den BS-Kern auf das Datenverarbeitungssystem zu laden und auszuführen.
  • Genauso kann ein Starten einer BS-Konfiguration, bei der ein oder mehrere Kernparameterwerte in einem Datenobjekt getrennt vom BS-Kern gespeichert sind, ein Weitergeben sowohl des Betriebssystemkerns als auch eines oder mehrerer Kernparameterwerte an ein Startladeprogramm umfassen. Dies veranlasst das Startladeprogramm, den BS-Kern mit dem einen oder mehreren Kernparameterwerten zu laden und auszuführen.
  • Immer noch unter Bezugnahme auf 1 erzeugt der Prozess dann bei Block 108 ein neu gepacktes Abbild unter Verwendung des verschlüsselten Speicherplattenabbildes und des sicher verschlüsselten Startladeprogramms. Neupacken umfasst Laden des vorhandenen Docker-Abbildes, dann Verschlüsseln der Speicherschichten des Docker-Abbildes, das ein sicher verschlüsseltes Startladeprogramm und einen Neuaufbau des Docker-Abbildes umfasst. Das neu gepackte Abbild wird bei Block 110 bereitgestellt, indem das neu gepackte Abbild in einen Kubernetes-Pod-Container eingefügt wird. Der Prozess erzeugt dann bei Block 112 einen gesicherten Kubernetes-Pod und endet bei Block 113. Heutige Anwendungsumgebungen verwenden in der Regel Container und Mikrodienste als Architekturparadigma. In diesem Konzept wird eine bestimmte Auswahl von Mikrodiensten, die als Container laufen, in einem Pod zusammengefasst und bildet dadurch beispielsweise eine Anwendung oder Lösung.
  • Ein gesicherter Kubernetes-Pod läuft in einem sicheren Ausführungsmodus und hat dadurch einen Speicher, der von der zugrunde liegenden Host-Umgebung isoliert ist. Auch wenn er als Runq-Container läuft, hat ein Cluster-Administrator keinen Konsolenzugriff auf die Pods. Dies bietet einen Schutz vor allen menschlichen Benutzern.
  • Nun zu 2 übergehend, ist ein Schaubild 200 von Komponenten zum Schützen von Arbeitslasten in Kubernetes gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung allgemein gezeigt. Ein Docker-Abbild 205 eines Kunden enthält Kundengeheimnisse 207, ein Speicherplattenabbild 208 und ein sicher ausführbares Runq-Startladeprogramm 210. Es sei angemerkt, dass das Runq-Startladeprogramm 210 einen eindeutigen Schlüssel zum Entschlüsseln der verschlüsselten Speicherplatte hat und die Umgebung darauf vorbereitet, dass der Docker-Container ohne Änderungen läuft. Bei Runq handelt es sich um eine Docker-Laufzeit auf Grundlage eines Hypervisors. Runq bereitet einen Container, der über Ressourcen verfügt, auf das Bereitstellen eines in Quick Emulator (QEMU) vorliegenden Hypervisors vor. Das Docker-Abbild wird in einem Pod-Container bereitgestellt 212, indem eine sich verändernde Runq-Kubernetes-Zugangssteuereinheit 214 mit Webhook verwendet wird. Der sich verändernde Webhook ist ein Dienst, um die Definition einer Bereitstellungsanfrage zu verändern und gleichzeitig Flexibilität zu bieten, um vor dem Bereitstellen die Zugangslogik benutzerspezifisch anzupassen. Der Webhook sorgt dafür, dass nur vertrauenswürdiger Code im privilegierten Modus ausgeführt werden kann. Nach Bereitstellen des Docker-Abbildes des Kunden im gesicherten Kubernetes-POD 220, wird es in einen Pod-Container 224 abgelegt, der Teil einer virtuellen Maschine 222 ist. Der gesicherte Kubernetes-Pod 220 umfasst ferner einen Runq-Sidecar-Container 226. Der Runq-Sidecar-Container 226 umfasst einen gemeinsam genutzten Datenspeicher 228 sowohl mit Runq 230 als auch mit QEMU 232. Aus Sicht des Kubernetes-Hosts ist die virtuelle Maschine eine Blackbox. Beispielsweise sieht ein Administrator, der versucht, Einblick in die Kubernetes-Arbeitsmaschine zu nehmen, nur einen QEMU-Prozess, wobei der Speicher des QEMU-Prozesses verschlüsselt ist, wenn er aus Kubernetes ausgelesen wird, und die Daten als verschlüsselter Datenspeicher in den Kubernetes-Datenspeichern gespeichert sind, die dem Pod zugewiesen sind.
  • Nun zu 3 übergehend, sind Beispiele für virtuelle Server 300, die ein sicheres Ausführen zum Schützen von Arbeitslasten in Kubernetes nutzen, gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung allgemein gezeigt. Die Logikpartition (LPAR) 302 des Hypervisors ist die Basis für eine Hosting-Anwendung 304. Die Hosting-Anwendung 304 führt virtuelle Server aus. Ein virtueller Server 308 nutzt ein sicheres Ausführen zum Schutz. Ein anderer virtueller Server 306 führt eine Interval Key Server (IKS)-Cruiser-Arbeitsmaschinenplattform 310 aus. Die IKS-Cruiser-Arbeitsmaschinenplattform 310 stellt den Arbeitsmaschinenknoten des Kubernetes-Clusters dar, in dem die Bereitstellungen des Kunden schließlich gehostet werden. Der Administrator hat keinen Zugriff auf eine Cruiser-Arbeitsmaschine. Bei einer Träger-Arbeitsmaschine handelt es sich um den Verwaltungsarbeitsknoten, auf den die Administration zu Dienst- und Wartungszwecken zugreifen kann. Die IKS-Cruiser-Arbeitsmaschinenplattform 310 hat ein Kubelet 312 und einen Kubernetes-Agenten 314. Bei dem Kubelet 312 handelt es sich um einen Knotenagenten, der auf jedem Knoten des Kubernetes-Clusters ausgeführt wird. Es sorgt dafür, dass die Pods so laufen wie in den Pod-Spezifikationen definiert. Der Kubernetes-Pod 316 hat mehrere Container, einen nichtgesicherten Container 320 einer auf dem Kern beruhenden virtuellen Maschine (KVM) und zwei gesicherte Container 318. Jeder sichere Container 318 im Pod ist mit einem sicheren Ausführen isoliert. Jeder Pod-Container ist vor anderen Containern, Kubernetes-Komponenten, dem zugrunde liegenden Host und dem Cloud-Administrator geschützt. Jeder virtuelle Server 306 ist vor anderen virtuellen Servern und der Hosting-Anwendung 304 geschützt. Bei dieser Ausführungsform kann die KVM mit oder ohne sichere Ausführung ausgeführt werden.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle umfassen.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
  • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Die Nutzung von Ressourcen kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
  • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende eMail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
  • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten umfasst.
  • Nun unter Bezugnahme auf 4 ist die veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie der elektronische Assistent (PDA, personal digital assistant) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 4 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Nun unter Bezugnahme auf 5 wird ein Satz funktionaler Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (4) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 5 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC- (Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. Bei einigen Ausführungsformen beinhalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Die Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann die Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt die dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen die Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie die Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen umfassen. Die Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren den Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt die Anordnung vorab und die Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für die Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und Schützen einer Arbeitslast in Kubernetes 96.
  • Verschiedene Ausführungsformen der Erfindung sind hierin unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben. Alternative Ausführungsformen der Erfindung können erdacht werden, ohne vom Umfang dieser Erfindung abzuweichen. Zwischen Elementen in der folgenden Beschreibung und in den Zeichnungen sind verschiedene Verbindungen und Lagebeziehungen (z.B. über, unter, benachbart usw.) dargelegt. Sofern nicht anders angegeben, können diese Verbindungen und/oder Lagebeziehungen direkt oder indirekt sein und die vorliegende Erfindung soll in dieser Hinsicht nicht einschränkend sein. Entsprechend kann sich eine Verbindung von Einheiten entweder auf eine direkte oder eine indirekte Verbindung beziehen und eine Lagebeziehung zwischen Einheiten kann eine direkte oder eine indirekte Lagebeziehung sein. Darüber hinaus können die hierin beschriebenen verschiedenen Aufgaben und Prozessschritte in eine umfangreichere Prozedur oder einen umfangreicheren Prozess mit zusätzlichen Schritten oder einer zusätzlichen Funktionalität, die hier nicht detailliert beschrieben sind, eingegliedert sein.
  • Ein oder mehrere der hierin beschriebenen Verfahren kann mit einer beliebigen oder einer Kombination der folgenden Technologien umgesetzt werden, die jeweils in der Technik allgemein bekannt sind: (ein) diskrete(r) Logikschaltkreis(e) mit Logikgattern zum Umsetzen von Logikfunktionen nach Datensignalen, ein anwendungsspezifischer integrierter Schaltkreis (ASIC) mit geeigneten kombinatorischen Logikgattern, (eine) programmierbare Gatteranordnung(en) (PGA), eine im Feld programmierbare Gatteranordnung (PFGA) usw.
  • Der Kürze halber können herkömmliche Techniken, die mit dem Herstellen oder Nutzen von Aspekten der Erfindung zusammenhängen, hierin detailliert beschrieben sein oder nicht. Insbesondere sind verschiedene Aspekte von Datenverarbeitungssystemen und bestimmten Computerprogrammen zum Realisieren der hierin beschriebenen verschiedenen technischen Merkmale allgemein bekannt. Entsprechend werden viele herkömmliche Umsetzungsdetails der Kürze halber hierin nur kurz erwähnt oder ganz weggelassen, ohne die bekannten System- und/oder Prozessdetails bereitzustellen.
  • Bei einigen Ausführungsformen können verschiedene Funktionen oder Aktionen an einem bestimmten Ort und/oder in Verbindung mit dem Betrieb einer oder mehrerer Vorrichtungen oder Systeme stattfinden. Bei einigen Ausführungsformen kann ein Teil einer bestimmten Funktion oder Aktion in einer ersten Einheit oder an einem ersten Ort erfolgen, und der Rest der Funktion oder Aktion kann an einer oder mehreren zusätzlichen Einheiten oder Orten erfolgen.
  • Die hier verwendete Terminologie dient nur dem Zweck, besondere Ausführungsformen zu beschreiben, und soll nicht einschränkend sein. Wie hier verwendet, sollen die Singularformen „ein“, „eine“ und „der, die, das“ auch die Pluralformen einschließen, sofern es der Kontext nicht anders angibt. Es ist ferner anzumerken, dass die Ausdrücke „aufweist“ und/oder „aufweisend“, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, aber nicht das Vorhandensein oder Hinzufügen eines/r oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel oder aus Schritt plus Funktion bestehender Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material oder jede Handlung für die Durchführung der Funktion in Verbindung mit anderen beanspruchten Elementen, wie im Besonderen beansprucht, einschließen. Die vorliegende Offenbarung wurde zum Zweck der Veranschaulichung und Beschreibung dargestellt, soll aber nicht erschöpfend oder auf die offenbarte Form beschränkt sein. Viele Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsformen wurden gewählt und beschrieben, um die Grundgedanken der Offenbarung und die praktische Anwendung am besten zu beschreiben und um andere Fachleute zu befähigen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen nachzuvollziehen, die für den besonders betrachteten Gebrauch geeignet sind.
  • Die hierin abgebildeten Schaubilder sind veranschaulichend. Zu dem Schaubild oder den darin beschriebenen Schritten (oder Operationen) kann es viele Variationen geben, ohne vom Geist der Erfindung abzuweichen. Beispielsweise können die Aktionen in einer abweichenden Reihenfolge durchgeführt werden oder Aktionen hinzugefügt, weggelassen oder geändert werden. Auch beschreibt der Ausdruck „verbunden“ ein Vorliegen eines Signalpfads zwischen zwei Elementen und deutet keine direkte Verbindung zwischen den Elementen ohne dazwischen liegende Elemente/Verbindungen an. All diese Variationen gelten als Teil der vorliegenden Offenbarung.
  • Die folgenden Definitionen und Abkürzungen sind für die Auslegung der Ansprüche und der Spezifikation heranzuziehen. Wie hierin gebraucht, sollen die Ausdrücke „weist auf“, „aufweisend“, „umfasst“, „umfassend“, „hat“, „habend“, „enthält“ oder „enthaltend“ oder eine sonstige Variation davon eine nichtausschließliche Einschließung abdecken. Beispielsweise ist eine Zusammensetzung, eine Mischung, ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, die, das oder der eine Liste von Elementen aufweist, nicht unbedingt auf nur jene Elemente beschränkt, sondern kann andere Elemente umfassen, die nicht ausdrücklich aufgeführt sind oder einer solchen Zusammensetzung, Mischung, einem solchen Prozess, Verfahren, Artikel oder einer solchen Vorrichtung innewohnt.
  • Außerdem wird der Ausdruck „beispielhaft“ hierin in der Bedeutung „als Beispiel, Fall oder Veranschaulichung dienend“ gebraucht. Jede Ausführungsform oder Ausgestaltung, die hierin als „beispielhaft“ beschrieben wird, ist nicht unbedingt so auszulegen, als sei sie gegenüber anderen Aspekten oder Ausgestaltungen bevorzugt oder vorteilhaft. Die Ausdrücke „mindestens ein“ und „ein oder mehrere“ werden so verstanden, dass sie eine beliebige Ganzzahl umfassen, die größer oder gleich eins ist, d.h. eins, zwei, drei, vier usw. Die Ausdrücke „eine Mehrzahl“ kann so verstanden werden, dass sie eine beliebige Ganzzahl umfassen, die größer oder gleich zwei ist, d.h. zwei, drei, vier, fünf usw. Der Ausdruck „Verbindung“ kann sowohl eine indirekte „Verbindung“ als auch eine direkte „Verbindung“ umfassen.
  • Die Ausdrücke „ungefähr“, „im Wesentlichen“, „ca.“ und Variationen davon sollen den Grad des Fehlers umfassen, der mit einer Messung der bestimmten Größe auf Grundlage des zum Zeitpunkt der Anmeldungseinreichung verfügbaren Geräts zusammenhängt. Beispielsweise kann „ungefähr“ einen Bereich von ± 8 % oder 5 % oder 2 % eines bestimmten Wertes umfassen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Einzelebene der Integration handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zum Ausführen von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltkreisanordnungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). Bei einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbare Programmanweisung ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um ein Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Ausführen der bestimmten logischen Funktion(en) aufweisen. Bei einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung dargestellt, sollen aber nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne vom Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber am Markt befindlichen Technologien am besten zu erläutern oder Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.

Claims (20)

  1. Durch einen Computer umgesetztes Verfahren, das aufweist: Erhalten eines originalen Docker-Abbildes von einem Kunden durch einen Prozessor; Verschlüsseln eines Speicherplattenabbildes unter Verwendung von Inhalten aus dem originalen Docker-Abbild durch einen Prozessor; Verschlüsseln eines Startladeprogramms durch einen Prozessor; Erzeugen eines neu gepackten Abbildes unter Verwendung des verschlüsselten Speicherplattenabbildes und des verschlüsselten Startladeprogramms; Bereitstellen des neu gepackten Abbildes durch den Prozessor, indem das neu gepackte Abbild in einen Pod-Container eingefügt wird; und Erzeugen eines gesicherten Kubernetes-Pods zum Schützen von Arbeitslasten, wobei der gesicherte Kubernetes-Pod mindestens eine virtuelle Maschine hat, die den Pod-Container aufweist.
  2. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei das Bereitstellen des neu gepackten Abbildes mithilfe einer sich verändernden Kubernetes-Zugangssteuereinheit erfolgt, um das Einfügen in den Pod-Container durchzuführen.
  3. Durch einen Computer umgesetztes Verfahren nach Anspruch 2, wobei die sich verändernde Kubernetes-Zugangssteuereinheit einen Webhook nutzt, um die Definition des Pod-Containers zum Bereitstellungszeitpunkt zu ändern.
  4. Durch einen Computer umgesetztes Verfahren nach Anspruch 1, wobei der gesicherte Kubernetes-Pod ferner einen Runq-Sidecar-Container aufweist.
  5. Durch einen Computer umgesetztes Verfahren nach Anspruch 4, wobei der Runq-Sidecar-Container einen gemeinsam genutzten Datenspeicher aufweist.
  6. Durch einen Computer umgesetztes Verfahren nach Anspruch 5, wobei der gemeinsam genutzte Datenspeicher Runq aufweist.
  7. Durch einen Computer umgesetztes Verfahren nach Anspruch 5, wobei der gemeinsam genutzte Datenspeicher QEMU aufweist.
  8. System, das aufweist: einen Speicher mit durch einen Computer lesbaren Anweisungen; und einen oder mehrere Prozessoren zum Ausführen der durch einen Computer lesbaren Anweisungen, wobei die durch einen Computer lesbaren Anweisungen den einen oder die mehreren Prozessoren steuern, so dass sie Operationen ausführen, die aufweisen: Erhalten eines originalen Docker-Abbildes von einem Kunden; Verschlüsseln eines Speicherplattenabbildes unter Verwendung von Inhalten aus dem originalen Docker-Abbild; Verschlüsseln eines Startladeprogramms; Erzeugen eines neu gepackten Abbildes unter Verwendung des verschlüsselten Speicherplattenabbildes und des sicher verschlüsselten Startladeprogramms; Bereitstellen des neu gepackten Abbildes, indem das neu gepackte Abbild in einen Pod-Container eingefügt wird; und Erzeugen eines gesicherten Kubernetes-Pods zum Schützen von Arbeitslasten, wobei der gesicherte Kubernetes-Pod mindestens eine virtuelle Maschine hat, die den Pod-Container enthält.
  9. System nach Anspruch 8, wobei das Bereitstellen des neu gepackten Abbildes mithilfe einer sich verändernden Kubernetes-Zugangssteuereinheit erfolgt, um das Einfügen in den Pod-Container durchzuführen.
  10. System nach Anspruch 9, wobei die sich verändernde Kubernetes-Zugangssteuereinheit einen Webhook nutzt, um die Definition des Pod-Containers zum Bereitstellungszeitpunkt zu ändern.
  11. System nach Anspruch 8, wobei der gesicherte Kubernetes-Pod ferner einen Runq-Sidecar-Container aufweist.
  12. System nach Anspruch 11, wobei der Runq- Sidecar-Container einen gemeinsam genutzten Datenspeicher aufweist.
  13. System nach Anspruch 12, wobei der gemeinsam genutzte Datenspeicher Runq aufweist.
  14. System nach Anspruch 13, wobei der gemeinsam genutzte Datenspeicher QEMU aufweist.
  15. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit dadurch verkörperten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, Operationen durchzuführen, die aufweisen: Erhalten eines originalen Docker-Abbildes von einem Kunden; Verschlüsseln eines Speicherplattenabbildes unter Verwendung von Inhalten aus dem originalen Docker-Abbild; Verschlüsseln eines Startladeprogramms; Erzeugen eines neu gepackten Abbildes unter Verwendung des verschlüsselten Speicherplattenabbilds und des sicher verschlüsselten Startladeprogramms; Bereitstellen des neu gepackten Abbildes, indem das neu gepackte Abbild in einen Pod-Container eingefügt wird; und Erzeugen eines gesicherten Kubernetes-Pods zum Schützen von Arbeitslasten, wobei der gesicherte Kubernetes-Pod mindestens eine virtuelle Maschine hat, die den Pod-Container enthält.
  16. Computerprogrammprodukt nach Anspruch 15, wobei das Bereitstellen des neu gepackten Abbildes mithilfe einer sich verändernden Kubernetes-Zugangssteuereinheit erfolgt, um das Einfügen in den Pod-Container durchzuführen.
  17. Computerprogrammprodukt 16, wobei die sich verändernde Kubernetes-Zugangssteuereinheit einen Webhook nutzt, um die Definition des Pod-Containers zum Bereitstellungszeitpunkt zu ändern.
  18. Computerprogrammprodukt nach Anspruch 15, wobei der gesicherte Kubernetes-Pod ferner einen Runq-Sidecar-Container umfasst.
  19. Computerprogrammprodukt nach Anspruch 18, wobei der Runq-Sidecar-Container einen gemeinsam genutzten Datenspeicher aufweist.
  20. Computerprogrammprodukt nach Anspruch 19, wobei der gemeinsam genutzte Datenspeicher Runq und QEMU aufweist.
DE112020004699.0T 2019-09-30 2020-09-04 Schützen von arbeitslasten in kubernetes Active DE112020004699B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/587,256 2019-09-30
US16/587,256 US11176245B2 (en) 2019-09-30 2019-09-30 Protecting workloads in Kubernetes
PCT/IB2020/058231 WO2021064493A1 (en) 2019-09-30 2020-09-04 Protecting workloads in kubernetes

Publications (2)

Publication Number Publication Date
DE112020004699T5 true DE112020004699T5 (de) 2022-06-23
DE112020004699B4 DE112020004699B4 (de) 2024-05-08

Family

ID=75161370

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020004699.0T Active DE112020004699B4 (de) 2019-09-30 2020-09-04 Schützen von arbeitslasten in kubernetes

Country Status (6)

Country Link
US (1) US11176245B2 (de)
JP (1) JP7461697B2 (de)
CN (1) CN114341850B (de)
DE (1) DE112020004699B4 (de)
GB (1) GB2603710B (de)
WO (1) WO2021064493A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461474B2 (en) * 2020-01-24 2022-10-04 International Business Machines Corporation Process-based virtualization system for executing a secure application process
US11392399B2 (en) 2020-05-13 2022-07-19 Sap Se External binary sidecar for cloud containers
JP7459014B2 (ja) 2021-05-18 2024-04-01 トヨタ自動車株式会社 コンテナ管理装置、及びコンテナ管理プログラム
US20220385532A1 (en) * 2021-05-26 2022-12-01 Red Hat, Inc. Adding host systems to existing containerized clusters
CN113918353B (zh) * 2021-12-14 2022-02-22 杭州朗澈科技有限公司 工作负载扩容方法和系统
CN113934711B (zh) * 2021-12-16 2022-03-15 天津南大通用数据技术股份有限公司 一种自动化部署gbase8s集群的方法
US11966466B2 (en) * 2022-01-10 2024-04-23 Check Point Serverless Security Ltd. Unified workload runtime protection
CN114547661A (zh) * 2022-03-21 2022-05-27 京东科技信息技术有限公司 应用配置数据的加解密方法、装置、设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006007659A1 (en) * 2004-07-21 2006-01-26 S2 Holdings Pty Limited Building methods
US8495356B2 (en) * 2010-12-31 2013-07-23 International Business Machines Corporation System for securing virtual machine disks on a remote shared storage subsystem
US20120179904A1 (en) 2011-01-11 2012-07-12 Safenet, Inc. Remote Pre-Boot Authentication
US9298491B2 (en) * 2013-06-25 2016-03-29 Vcumulus Limited System and method for live conversion and movement of virtual machine image and state information between hypervisors
WO2017129657A1 (en) * 2016-01-29 2017-08-03 British Telecommunications Public Limited Company Disk encryption
EP3267351A1 (de) 2016-07-07 2018-01-10 Gemalto Sa Methode für das sichere verwalten eines docker image
WO2018234741A1 (en) * 2017-06-23 2018-12-27 Qio Technologies Ltd SYSTEMS AND METHODS FOR INTELLIGENCE OF INDUSTRIAL ASSETS BY DISTRIBUTED SYSTEMIC ANTICIPATION
US10705880B2 (en) 2017-09-22 2020-07-07 Vmware, Inc. Cluster updating using temporary update-monitor pod
CN107864131A (zh) 2017-11-03 2018-03-30 郑州云海信息技术有限公司 一种实现Kubernetes集群多租户网络隔离的方法及系统
CN108108223B (zh) 2017-11-30 2022-05-24 国网浙江省电力公司信息通信分公司 基于Kubernetes的容器管理平台
US10776459B2 (en) * 2017-12-07 2020-09-15 International Business Machines Corporation Facilitating build and deploy runtime memory encrypted cloud applications and containers
US10949250B2 (en) * 2018-02-07 2021-03-16 Red Hat, Inc. Image subunit based guest scheduling
CN108989091B (zh) 2018-06-22 2022-02-11 杭州才云科技有限公司 基于Kubernetes网络的租户网络隔离方法、存储介质、电子设备
US11017092B2 (en) * 2018-09-27 2021-05-25 Intel Corporation Technologies for fast launch of trusted containers
CN109446032A (zh) * 2018-12-19 2019-03-08 福建新大陆软件工程有限公司 Kubernetes副本扩缩容的方法及系统
CN110007933A (zh) 2019-03-26 2019-07-12 山东超越数控电子股份有限公司 一种面向多租户容器镜像安全配置方法,系统,运行终端及存储介质
US11048802B2 (en) * 2019-05-09 2021-06-29 X Development Llc Encrypted hard disk imaging process

Also Published As

Publication number Publication date
US11176245B2 (en) 2021-11-16
GB2603710B (en) 2022-11-23
JP2022549405A (ja) 2022-11-25
GB202205814D0 (en) 2022-06-08
CN114341850B (zh) 2022-11-22
CN114341850A (zh) 2022-04-12
DE112020004699B4 (de) 2024-05-08
GB2603710A (en) 2022-08-10
JP7461697B2 (ja) 2024-04-04
US20210097169A1 (en) 2021-04-01
WO2021064493A1 (en) 2021-04-08

Similar Documents

Publication Publication Date Title
DE112020004699B4 (de) Schützen von arbeitslasten in kubernetes
DE112020000558B4 (de) Dynamisches ändern einer isolierung einer containerisierten arbeitslast in reaktion auf eine erfassung eines auslösenden faktors
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112018004349T5 (de) Dynamische auswahl von bereitstellungskonfigurationen von softwareanwendungen
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE112020000223B4 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112021002245T5 (de) Verhindern einer unberechtigten bereitstellung von paketen in clustern
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE112021002099T5 (de) Hypervisor-geschützter schlüssel
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112020004522T5 (de) Erhöhen der leistungsfähigkeit von frame-übergreifenden live-aktualisierungen
DE112020003825T5 (de) Entsprechung zwischen externen Operationen und Containern sowie Mutationsereignissen
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112022002615T5 (de) Kontinuierliche funktionsfähigkeit und integrität von anwendungen während eines migrationsvorgangs
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten
DE112021001764T5 (de) Ermitteln eines urhebers eines verschlüsselten objekts
DE112019001957T5 (de) Sichere operationen mit verschlüsselten daten
DE102021122507A1 (de) Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen
DE112021004798T5 (de) Gewährleisten einer sicheren bereitstellung einer blockchain-infrastruktur
DE112021005237T5 (de) Verwaltung von privaten schlüsseln

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence