DE112021004945T5 - Techniken der kompositionellen verifikation für rollenerreichbarkeitsanalysen in identitätssystemen - Google Patents

Techniken der kompositionellen verifikation für rollenerreichbarkeitsanalysen in identitätssystemen Download PDF

Info

Publication number
DE112021004945T5
DE112021004945T5 DE112021004945.3T DE112021004945T DE112021004945T5 DE 112021004945 T5 DE112021004945 T5 DE 112021004945T5 DE 112021004945 T DE112021004945 T DE 112021004945T DE 112021004945 T5 DE112021004945 T5 DE 112021004945T5
Authority
DE
Germany
Prior art keywords
role
roles
reachability
identity
provider network
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.)
Pending
Application number
DE112021004945.3T
Other languages
English (en)
Inventor
John Byron Cook
Neha Rungta
Andrew Jude GACEK
Daniel George Peebles
Carsten Varming
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112021004945T5 publication Critical patent/DE112021004945T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/828Allocation of resources per group of connections, e.g. per group of users
    • 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/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers

Abstract

Es werden Techniken zum Verwenden der kompositionellen Verifikation zum Durchführen von Rollenerreichbarkeitsanalysen in Bezug auf Sammlungen von Benutzerkonten und Rollen eines Cloud-Anbieter-Netzwerks beschrieben. Die delegierte rollenbasierte Ressourcenverwaltung ist im Allgemeinen ein Verfahren zur Steuerung des Zugriffs auf Ressourcen in Netzwerken von Cloud-Anbietern und anderen verteilten Systemen. Viele Cloud-Anbieter-Netzwerke implementieren zum Beispiel Identitäts- und Zugriffsverwaltungssubsysteme mit diesem Ansatz, wobei das Konzept der „Rollen“ verwendet wird, um anzugeben, auf welche Ressourcen Personen, Software oder (rekursiv) andere Rollen zugreifen können. Es wird eine Abstraktion der Rollenerreichbarkeitsanalyse bereitgestellt, die als Eingabe in eine Modellprüfungsanwendung verwendet werden kann, um über Rollenerreichbarkeitsfragen nachzudenken (z. B. Fragen, die sich darauf beziehen, welche Rollen einer Organisation von anderen Rollen aus erreichbar sind).

Description

  • STAND DER TECHNIK
  • Cloud-Anbieter-Netzwerke ermöglichen es Benutzern, eine Vielfalt von rechnerbezogenen Ressourcen wie Rechenressourcen, Speicherressourcen, Netzwerkressourcen und dergleichen zu verwenden. Wenn ein Benutzer oder eine Anwendung mit einem Cloud-Anbieter-Netzwerk interagiert (z. B. unter Verwendung einer Anwendungsprogrammierschnittstelle (API) oder einer Befehlszeilenschnittstelle (CLI), die vom Cloud-Anbieter-Netzwerk bereitgestellt wird), muss der Benutzer oder die Anwendung typischerweise Sicherheitszugangsdaten angeben, die zeigen, wer der Benutzer oder die Anwendung ist und ob der Benutzer oder die Anwendung berechtigt ist, auf die angeforderten Ressourcen zuzugreifen. Ein Cloud-Anbieter-Netzwerk verwendet wiederum die Sicherheitszugangsdaten, um den Benutzer oder die Anwendung zum Ausführen verschiedener Aktionen zu authentifizieren und zu autorisieren. Die Sicherheitszugangsdaten können zum Beispiel Benutzernamen und Passwörter, Zugriffsschlüssel oder dergleichen beinhalten.
  • Figurenliste
  • Verschiedene Ausführungsformen gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, wobei:
    • 1 ein Diagramm ist, das eine Umgebung veranschaulicht, in der Rollenerreichbarkeitsanalysen in Bezug auf Benutzerorganisationen (z. B. einschließlich Gruppen von Benutzern, Rollen und Richtlinien) durchgeführt werden, die durch einen Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks gemäß einigen Ausführungsformen definiert sind.
    • 2 ein Diagramm ist, das die Beziehung zwischen beispielhaften Identitätsrichtlinien- und Vertrauensrichtlinienfragmenten, die mit einem Benutzer assoziiert sind, und Rollen innerhalb eines Benutzerkontos gemäß einigen Ausführungsformen veranschaulicht.
    • 3 eine beispielhafte Autorisierungssemantik für eine Rolle eines Identitäts- und Zugriffsverwaltungsdienstes gemäß einigen Ausführungsformen veranschaulicht.
    • 4 ein Diagramm ist, das ein beispielhaftes Rollenerreichbarkeitsprogramm gemäß einigen Ausführungsformen veranschaulicht.
    • 5 ein Diagramm ist, das eine grafische Benutzeroberfläche (GUI) veranschaulicht, die Ergebnisse aus einer Analyse gemäß einigen Ausführungsformen beinhaltet.
    • 6 ein Flussdiagramm ist, das Operationen eines Verfahrens zum Verwenden von Techniken der kompositionellen Verifikation für die Rollenerreichbarkeit in Identitätssystemen gemäß einigen Ausführungsformen veranschaulicht.
    • 7 eine beispielhafte Anbieter-Netzwerkumgebung gemäß einigen Ausführungsformen veranschaulicht.
    • 8 ein Blockdiagramm eines beispielhaften Anbieter-Netzwerks ist, das gemäß einigen Ausführungsformen einen Speicherdienst und einen Hardwarevirtualisierungsdienst für Kunden bereitstellt.
    • 9 ein Blockdiagramm ist, das ein beispielhaftes Computersystem gemäß einigen Ausführungsformen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Die vorliegende Offenbarung betrifft Verfahren, Vorrichtungen, Systeme und nicht-transitorische computerlesbare Speichermedien zum Verwenden von Techniken der kompositionellen Verifikation zum Durchführen von Rollenerreichbarkeitsanalysen in Bezug auf Sammlungen von Benutzerkonten und Rollen eines Cloud-Anbieter-Netzwerks. Die delegierte rollenbasierte Ressourcenverwaltung ist im Allgemeinen ein Verfahren zur Steuerung des Zugriffs auf Ressourcen in Netzwerken von Cloud-Anbietern und anderen verteilten Systemen. Viele Cloud-Anbieter-Netzwerke implementieren zum Beispiel Identitäts- und Zugriffsverwaltungssubsysteme mit diesem Ansatz, wobei das Konzept der „Rollen“ verwendet wird, um anzugeben, auf welche Ressourcen Personen, Software oder (rekursiv) andere Rollen zugreifen können. Gemäß einigen Ausführungsformen wird eine Abstraktion der Rollenerreichbarkeitsanalyse bereitgestellt, die als Eingabe in eine Rollenerreichbarkeits-Analysatoranwendung verwendet werden kann, um über Rollenerreichbarkeitsfragen nachzudenken, z. B. Fragen, die sich darauf beziehen, welche Rollen einer Organisation von anderen Rollen aus erreichbar sind. In einigen Ausführungsformen ermöglicht die beschriebene Analyse einem Identitäts- und Zugriffsverwaltungsdienst, programmgesteuert über Interaktionen zwischen vielen möglichen Richtlinientypen (z. B. Grenzrichtlinien, Dienststeuerungsrichtlinien, Identitätsrichtlinien, Sitzungsrichtlinien usw.) zu argumentieren, und ermöglicht ferner die Verifikation in Gegenwart von Netzwerkkonzepten anderer Cloud-Anbieter wie transitive Sitzungs-Tags. Darüber hinaus ermöglicht die Kompositionalität der Analyse, dass die Analyse über eine beliebige Anzahl von gleichzeitig ausgeführten Rechenressourcen verteilt wird, wodurch Rechenleistung, Speichernutzung usw. verbessert werden.
  • Moderne Anbieter von Cloud-Diensten bieten ihren Kunden herkömmlicherweise integrierte Funktionen zur Authentifizierung und Autorisierung an. Ein Identitäts- und Zugriffsverwaltungs-Subsystem eines Cloud-Anbieter-Netzwerks kann beispielsweise die Konzepte von Konten, Benutzern (innerhalb eines Kontos) und Föderation (von Konten von externen Identitätsanbietern) zur Authentifizierung von Identitäten bereitstellen. Um Bedingungen zu spezifizieren, unter denen auf Ressourcen zugegriffen werden kann, kann ein Cloud-Anbieter-Netzwerk eine Allzweck-Richtliniensprache zusammen mit den Konzepten von Rollen und delegierter Rollenübernahme verwenden. Wie oben angegeben, ist die delegierte rollenbasierte Ressourcenverwaltung ein häufig verwendetes Verfahren zum Steuern des Zugriffs zu Ressourcen bei verteilter Berechnung. Rollenerreichbarkeit ist die Frage, auf welche Ressourcen eine Rolle über einen transitiven Abschluss von möglicherweise vielen Rollenübernahmeschritten zugreifen kann (z. B. ein Benutzer A kann eine Rolle B übernehmen und weiter eine Rolle C über die Rolle B übernehmen usw.). Die Rollenerreichbarkeit ist nützlich, um den Sicherheitsstatus von Systemen zu verstehen, die für die Ausführung in der Cloud und anderen möglichen Umgebungen entwickelt wurden.
  • Wenn man also Eigenschaften über den Sicherheitsstatus von Systemen, die auf Cloud-basierten Anwendungsprogrammierschnittstellen (APIs) aufbauen, formal nachweisen möchte, werden Analysetechniken benötigt, die Fragen zur Rollenerreichbarkeit beantworten können, z. B. Fragen der Form: „Könnte die Rolle q Zugriff auf die Rolle r erhalten?“. Zum Beispiel könnte q im Konto i in der Lage sein, die Rolle r des Kontos k zu übernehmen. Es könnte sein, dass die Rolle r Berechtigungen für Ressourcen hat, auf die das Konto i aus Gründen der Sicherheit, des Datenschutzes oder der Einhaltung gesetzlicher Vorschriften nicht zugreifen darf. In einem Cloud-Anbieter-Netzwerk können diese Ressourcen Speicher, Vorrichtungen oder sogar Schreibzugriff auf genau die Richtlinien beinhalten, die den Zugriff zu Rollen regeln. Unternehmen auf Unternehmensebene verfügen heute in der Regel über Tausende von Cloud-basierten Konten und Zehntausende von Rollen, die in ihrem Cloud-basierten Fußabdruck verwendet werden. Da außerdem viele Unternehmen ihre Rechenzentren vor Ort aktiv außer Betrieb nehmen und Cloud-basierte IT-Services einführen, wächst die Anzahl der Konten und Rollen, die pro Netzwerkkunde eines Cloud-Anbieters verwendet werden, exponentiell.
  • In einigen Ausführungsformen kann die Analyse der Rollenerreichbarkeit als Modellprüfungsproblem interpretiert werden. In einigen Ausführungsformen beinhaltet die hierin beschriebene Struktur des Systems eine Identifizierung eines Satzes von Prinzipalen (z. B. die Benutzer und Rollen, die einem oder mehreren Konten eines Cloud-Anbieter-Netzwerks zugeordnet sind), die mit Benutzern assoziierten Berechtigungen, die mit Rollen assoziierten Vertrauensrichtlinien und die mit den Rollen assoziierten Berechtigungen. Hierin beschriebene Ausführungsformen beschreiben eine praktische Lösung für das Rollenerreichbarkeitsproblem basierend auf einer solchen Spezifikation, die sich eine Struktur zunutze macht, die üblicherweise in Systemen der realen Welt beobachtet wird: Der Satz möglicher Rollenübernahmebeziehungen innerhalb eines Kontos ist typischerweise dichter als die Beziehungen zwischen Rollen in unterschiedlichen Konten, was bedeutet, dass für die Skalierbarkeit während einer Analyse kompositionelle Verifikation verwendet werden kann. Für Analysen innerhalb von Konten wird eine verlaufsüberschätzende Abstraktion beschrieben, die eine ausreichende Genauigkeit für die gewünschten Arten von Analyseergebnissen bereitstellt. Neben anderen Vorteilen ermöglichen die Analysetechniken zum Beschreiben eine effiziente Berechnung von Rollenerreichbarkeitsanalysen und tragen dadurch auch dazu bei, den Sicherheitsstatus von Unternehmenskonten in Cloud-Anbieter-Netzwerken zu verbessern.
  • 1 ist ein Diagramm, das eine Umgebung veranschaulicht, in der Rollenerreichbarkeitsanalysen in Bezug auf Benutzerorganisationen (z. B. einschließlich Gruppen von Benutzern, Rollen und Richtlinien) durchgeführt werden, die durch einen Identitäts- und Zugriffsverwaltungsdienst 102 eines Cloud-Anbieter-Netzwerks 100 gemäß einigen Ausführungsformen definiert sind. Ein Cloud-Anbieter-Netzwerk 100 (manchmal einfach als „Cloud“ bezeichnet) bezieht sich auf einen Pool von über das Netzwerk zugänglichen Rechenressourcen (z. B. Rechen-, Speicher- oder Netzwerkressourcen, Anwendungen oder Dienste), die virtualisiert oder als Bare-Metal-System vorliegen können. Die Cloud kann zweckmäßigerweise einen On-Demand-Netzwerkzugriff auf den gemeinsamen Pool konfigurierbarer Rechenressourcen bereitstellen, die programmgesteuert bereitgestellt und auf Kundenbefehle hin freigegeben werden können. Diese Ressourcen können dynamisch bereitgestellt und neu konfiguriert werden, um sich an die variable Last anzupassen. Cloud Computing kann daher sowohl als Anwendungen betrachtet werden, die als Dienste über ein öffentlich zugängliches Netzwerk (z. B. das Internet, ein Mobilfunknetz) bereitgestellt werden, als auch als Hardware und Software in Rechenzentren von Cloud-Anbietern, die diese Dienste bereitstellen.
  • Ein Anbieter-Netzwerk 100 (oder „Cloud“-Anbieter-Netzwerk) bietet Benutzern die Möglichkeit, eine oder mehrere einer Vielfalt von Arten von computerbezogenen Ressourcen zu nutzen, wie etwa Rechenressourcen (z. B. Ausführen von Instanzen und/oder Containern für virtuelle Maschinen (VM), Ausführen von Batch-Jobs, Ausführen von Code ohne Bereitstellung von Servern), Daten-/Speicherressourcen (z. B. Objektspeicher, Speicher auf Blockebene, Datenarchivspeicher, Datenbanken und Datenbanktabellen usw.), netzwerkbezogene Ressourcen (z. B. Konfigurieren von virtuellen Netzwerken einschließlich Gruppen von Rechenressourcen, Content Delivery Networks (CDNs), Domain Name Service (DNS)), Anwendungsressourcen (z. B. Datenbanken, Erstellungs-/Bereitstellungsdienste von Anwendungen), Zugriffsrichtlinien oder -rollen, Identitätsrichtlinien oder -rollen, Maschinenabbilder, Router und weitere Datenverarbeitungsressourcen usw. Diese und weitere Datenverarbeitungsressourcen können als Dienste bereitgestellt werden, wie z. B. ein Hardware-Virtualisierungsdienst, der Recheninstanzen ausführen kann, ein Speicherdienst, der Datenobjekte speichern kann, usw. Die Benutzer (oder „Kunden“) des Anbieter-Netzwerke 100 können ein oder mehrere Benutzerkonten verwenden, die mit einem Kundenkonto assoziiert sind, obwohl diese Begriffe je nach Verwendungskontext etwas austauschbar verwendet werden können. Benutzer können mit einem Anbieter-Netzwerk 100 über ein oder mehrere Zwischennetzwerke 104 (z. B. das Internet) über eine oder mehrere Schnittstelle(n) interagieren, z. B. durch Verwendung von Anwendungsprogrammierschnittstellen- (API)-Aufrufen, über eine als Website implementierte Konsole oder Anwendung usw. Eine API bezieht sich auf eine Schnittstelle und/oder ein Kommunikationsprotokoll zwischen einem Client und einem Server, so dass, wenn der Client eine Anforderung in einem vordefinierten Format stellt, der Client eine Antwort in einem spezifischen Format erhalten oder eine definierte Aktion auslösen sollte. Im Kontext des Cloud-Anbieter-Netzwerks bieten APIs ein Gateway für Kunden zum Zugriff auf die Cloud-Infrastruktur, indem sie es Kunden ermöglichen, Daten vom Cloud-Anbieter-Netzwerk zu erhalten oder Aktionen innerhalb des Cloud-Anbieter-Netzwerks zu veranlassen, wodurch die Entwicklung von Anwendungen ermöglicht wird, die mit im Cloud-Anbieter-Netzwerk gehosteten Ressourcen und Diensten interagieren. APIs können auch verschiedenen Diensten des Cloud-Anbieter-Netzwerks ermöglichen, Daten untereinander auszutauschen. Die Schnittstelle(n) kann/können Teil einer Steuerebene des Anbieter-Netzwerks 100 sein oder als Front-End für diese dienen, die „Back-End“-Dienste umfasst, welche die Dienste unterstützen und ermöglichen, die den Kunden auf direktere Weise angeboten werden können.
  • Ein Cloud-Anbieter-Netzwerk kann als eine Anzahl von Regionen gebildet werden, wobei eine Region ein geografisches Gebiet ist, in dem der Cloud-Anbieter Rechenzentren gruppiert. Jede Region beinhaltet mehrere (z. B. zwei oder mehr) Verfügbarkeitszonen (AZs), die über ein privates Hochgeschwindigkeitsnetz, z. B. eine Glasfaserkommunikationsverbindung, miteinander verbunden sind. Eine AZ (auch als Verfügbarkeitsdomäne oder einfach als „Zone“ bezeichnet) bietet eine isolierte Fehlerdomäne, darunter eine oder mehrere Rechenzentrumseinrichtungen mit von denen in einer anderen AZ separater Stromversorgung, separatem Netzwerk und separater Kühlung. Ein Rechenzentrum bezieht sich auf ein physisches Gebäude oder Gehäuse, das Server des Cloud-Anbieter-Netzwerks beherbergt und mit Strom und Kühlung versorgt. Vorzugsweise sind AZs innerhalb einer Region weit genug voneinander entfernt positioniert, so dass eine Naturkatastrophe (oder ein anderes ausfallverursachendes Ereignis) nicht mehr als eine AZ gleichzeitig beeinträchtigen oder offline nehmen sollte.
  • Kunden können sich über ein öffentlich zugängliches Netz (z. B. das Internet, ein Mobilfunknetz), z. B. über ein Transitzentrum (TC), mit AZ des Cloud-Anbieter-Netzwerks verbinden. TCs sind die primären Backbone-Standorte, die Kunden mit dem Netzwerk des Cloud-Anbieters verbinden, und können bei anderen Netzwerkanbietereinrichtungen (z. B. Internetdienstanbietern (ISPs), Telekommunikationsanbietern) angeordnet und sicher (z. B. über ein VPN oder eine direkte Verbindung) mit den AZs verbunden sein. Jede Region kann aus Redundanzgründen zwei oder mehr TCs betreiben. Regionen sind mit einem globalen Netzwerk verbunden, das eine private Netzwerkinfrastruktur (z. B. vom Cloud-Anbieter kontrollierte Glasfaserverbindungen) beinhaltet, die jede Region mit mindestens einer anderen Region verbindet. Das Cloud-Anbieter-Netzwerk kann Inhalte von Points of Presence (oder „POPs“) außerhalb dieser Regionen, jedoch mit diesen vernetzt, über Edge-Standorte und regionale Edge-Cache-Server bereitstellen. Diese Aufteilung und geografische Verteilung der Computerhardware ermöglicht es dem Cloud-Anbieter-Netzwerk, Kunden auf globaler Ebene einen Ressourcenzugriff mit geringer Latenz und einem hohen Maß an Fehlertoleranz und Stabilität bereitzustellen.
  • Im Allgemeinen können der Verkehr und die Operationen eines Anbieter-Netzwerks grob in zwei Kategorien unterteilt werden: Steuerebenenoperationen, die über eine logische Steuerebene übertragen werden, und Datenebenenoperationen, die über eine logische Datenebene übertragen werden. Während die Datenebene die Bewegung von Benutzerdaten durch das verteilte Computersystem darstellt, stellt die Steuerebene die Bewegung von Steuersignalen durch das verteilte Computersystem dar. Die Steuerebene beinhaltet im Allgemeinen eine oder mehrere Komponenten der Steuerebene, die über einen oder mehrere Steuerungsserver verteilt und durch diese implementiert sind. Der Verkehr auf der Steuerebene beinhaltet im Allgemeinen Verwaltungsoperationen, wie z. B. Systemkonfiguration und -verwaltung (z. B. Ressourcenplatzierung, Hardware-Kapazitätsverwaltung, diagnostische Überwachung, Systemzustandsinformationen). Die Datenebene beinhaltet Kundenressourcen, die im Anbieter-Netzwerk implementiert sind (z. B. Recheninstanzen, Container, Blockspeichervolumes, Datenbanken, Dateispeicher). Der Datenverkehr auf Datenebene beinhaltet im Allgemeinen nicht-administrative Vorgänge wie das Übertragen von Kundendaten zu und von den Kundenressourcen. Die Komponenten der Steuerebene werden typischerweise auf einem separaten Satz von Servern von den Servern der Datenebene implementiert, und der Datenverkehr der Steuerebene und der Datenebene kann über separate/unterschiedliche Netzwerke gesendet werden.
  • Um diese und weitere Rechenressourcendienste bereitzustellen, stützen sich Anbieter-Netzwerke 100 oft auf Virtualisierungstechniken. Beispielsweise können Virtualisierungstechnologien verwendet werden, um Benutzern die Möglichkeit zu geben, Rechenressourcen zu steuern oder zu nutzen (z. B. eine „Recheninstanz“ wie eine VM, die ein Gastbetriebssystem (O/S) verwendet, das unter Verwendung eines Hypervisors arbeitet, der möglicherweise auf einem zugrunde liegenden Host-O/S weiter betrieben wird oder nicht, eines Containers, der in einer VM betrieben werden kann oder nicht, einer Recheninstanz, die auf „Bare-Metal“-Hardware ohne einen zugrunde liegenden Hypervisor ausgeführt werden kann), wobei eine oder mehrere Rechenressourcen mit einer einzigen elektronischen Vorrichtung implementiert werden können. Somit kann ein Benutzer eine vom Anbieter-Netzwerk gehostete Rechenressource (z. B. bereitgestellt durch einen Hardware-Virtualisierungsdienst) direkt nutzen, um eine Vielfalt von Rechenaufgaben auszuführen. Zusätzlich oder alternativ kann ein Benutzer eine Rechenressource indirekt nutzen, indem er Code übermittelt, der vom Anbieter-Netzwerk ausgeführt werden soll (z. B. über einen On-Demand-Code-Ausführungsdienst), der wiederum eine oder mehrere Rechenressourcen nutzt, um den Code auszuführen - in der Regel ohne dass der Benutzer die zugrunde liegende(n) involvierte(n) Recheninstanz(en) kontrolliert oder kennt.
  • In einigen Ausführungsformen ist ein Identitäts- und Zugriffsverwaltungsdienst 102 ein Dienst, der es Benutzern ermöglicht, den Zugriff auf Cloud-Anbieter-Netzwerkressourcen (z. B. Ressourcen 160, die mit verschiedenen Anbieter-Netzwerkdiensten 106 assoziiert sind, wie etwa Speicherobjekten 108, die mit einem Speicherdienst 110 assoziiert sind, Datenbanken 112, die mit einem Datenbankdienst 114 assoziiert sind, Recheninstanzen 116, die mit einem Hardwarevirtualisierungsdienst 118 assoziiert sind, und dergleichen sicher zu steuern). Mit dem Identitäts- und Zugriffsverwaltungsdienst 102 wird gesteuert, wer berechtigt ist, sich bei dem Cloud-Anbieter-Netzwerk 100 zu authentifizieren (z. B. sich anzumelden), und wer autorisiert ist (z. B. Berechtigungen hat), Ressourcen zu verwenden, die durch das Cloud-Anbieter-Netzwerk bereitgestellt werden. Im Allgemeinen ist eine Ressource ein Konzept, das verwendet wird, um die Domäne von Elementen zu erfassen, die von Kunden in einem Cloud-Anbieter-Netzwerk 100 erstellt, gelesen, modifiziert oder gelöscht werden können. Beispiele von Ressourcen beinhalten auch Prinzipale (z. B. Prinzipale 120, darunter beispielhafte Benutzer 122A - 122N und Rollen 124A - 124N) und Richtlinien 126 (darunter z. B. identitätsbasierte Richtlinien 128, Vertrauensrichtlinien 130 und sonstige Richtlinien 132). 1 veranschaulicht ferner das Konzept einer Organisation 134, das eine beliebige Anzahl von assoziierten Konten 136A - 136N beinhalten kann, das auch eine beliebige Anzahl von Benutzern und Rollen beinhalten kann (z. B. Rolle(n) 138, die mit dem Konto 136B assoziiert sind, und Rolle(n) 140, die mit dem Konto 136N assoziiert sind).
  • Wenn eine Person anfänglich ein Konto beim Cloud-Anbieter-Netzwerk 100 erstellt, beginnt die Person in einigen Ausführungsformen mit einer einzigen Anmeldeidentität, die vollständigen Zugriff auf alle Cloud-Anbieter-Netzwerkdienste und -Ressourcen hat, die mit dem Konto assoziiert sind (z. B. ein Root-Benutzer des Prinzipals 120). Beispielsweise kann auf die Root-Benutzeridentität zugegriffen werden, indem man sich mit einem Benutzernamen (z. B. einer E-Mail-Adresse) und einem Passwort anmeldet, die zum Erstellen des Kontos verwendet wurden. Cloud-Anbieter-Netzwerke 100 raten Benutzern häufig, für die meisten Aufgaben keinen Root-Benutzer zu verwenden und stattdessen zusätzliche Benutzerkonten mit definierten Berechtigungen zu erstellen (darunter z. B. eines oder mehrere der Benutzerkonten 122A - 122N). In einigen Ausführungsformen kann ein Benutzer verschiedenen Benutzerkonten verschiedene Berechtigungen für verschiedene Ressourcen erteilen. Beispielsweise könnte ein Benutzerkonto so konfiguriert werden, dass es einigen Benutzern vollständigen Zugriff auf einen Hardware-Virtualisierungsdienst 118, einen Speicherdienst 110 und weitere Ressourcen des Cloud-Anbieter-Netzwerks 100 gewährt. Anderen Benutzern kann ein Benutzerkonto einen Nur-Lese-Zugriff auf einige Speicher-Buckets oder die
  • Erlaubnis, einige Instanzen 116 zu verwalten usw. gewähren.
  • In einigen Ausführungsformen beinhaltet ein Konto identitätsbezogene Objekte, die als Teil des Identitäts- und Zugriffsverwaltungsdienstes 102 gespeichert sind, darunter beispielsweise Benutzer 122A - 122N, Gruppen (nicht dargestellt), Rollen 124A - 124N, Richtlinien 126 und dergleichen. Diese Ressourcen können von Benutzern des Cloud-Anbieter-Netzwerks 100 mit ausreichenden Privilegien hinzugefügt, bearbeitet und entfernt werden, z. B. unter Verwendung einer webbasierten Konsole, API, CLI oder einer anderen Schnittstelle, die vom Identitäts- und Zugriffsverwaltungsdienst 102 bereitgestellt wird.
  • In einigen Ausführungsformen stellt ein Prinzipal 120 eine Person oder Anwendung dar, die eine Aktion oder einen Vorgang an einer Ressource des Cloud-Anbieter-Netzwerks 100 (z. B. einer Ressource 160 oder einer Ressource des Identitäts- und Zugriffsverwaltungsdienstes 102) anfordern kann. Der mit einem Konto 136A assoziierte Satz von Prinzipalen 120 kann eine beliebige Anzahl von Benutzern 122A - 122N und Rollen 124A - 124N beinhalten. Eine Netzwerkanforderung eines Cloud-Anbieters tritt auf, wenn ein Prinzipal (z. B. ein Benutzer oder eine Rolle) eine Anforderung für eine Aktion oder Operation an einer Ressource sendet. Eine Anforderung kann einige oder alle der folgenden Informationen enthalten: die Aktion oder Operationen, die der Prinzipal ausführen möchte, das Ressourcenobj ekt, auf dem die Aktionen oder Operationen ausgeführt werden, die Person oder Anwendung, die eine Entität (z. B. einen Benutzer oder eine Rolle) verwendet hat, um die Anforderung zu senden, Umgebungsdaten (z. B. Informationen über IP-Adresse, Benutzeragent, SSL-Aktivierungsstatus, Tageszeit usw.) und Ressourcendaten (z. B. Daten in Bezug auf die angeforderte Ressource, wie z. B. eine Ressourcen-ID oder ein Tag-Name). In einigen Ausführungsformen sammelt der Identitäts- und Zugriffsverwaltungsdienst 102 die in einer Anforderung enthaltenen Informationen in einem Anforderungskontext, der zum Bewerten und Autorisieren der Anforderung verwendet wird.
  • In einigen Ausführungsformen bestimmt der Identitäts- und Zugriffsverwaltungsdienst 102, ob der anfordernde Prinzipal autorisiert (z. B. berechtigt) ist, die Anforderung abzuschließen, damit eine Anforderung abgeschlossen werden kann. Während der Autorisierung verwendet der Identitäts- und Zugriffsverwaltungsdienst 102 im Anforderungskontext enthaltene Werte, um nach für die Anforderung geltenden Richtlinien zu suchen (z. B. eine oder mehrere der Richtlinien 126). Der Identitäts- und Zugriffsverwaltungsdienst 102 verwendet die Richtlinien 126, um zu bestimmen, ob die Anforderung zugelassen oder verweigert werden soll. In einigen Ausführungsformen werden die Richtlinien im Identitäts- und Zugriffsverwaltungsdienst 102 als JavaScript Object Notation (JSON)-Dokumente (oder unter Verwendung eines beliebigen anderen Datenformats) gespeichert und spezifizieren die Berechtigungen für Prinzipalentitäten. In einigen Ausführungsformen gibt es mehrere Arten von Richtlinien 126, die beeinflussen können, ob eine Anforderung autorisiert ist, darunter z. B. identitätsbasierte Richtlinien 128, Vertrauensrichtlinien 130 und sonstige Richtlinien 132. Um Benutzern beispielsweise Berechtigungen für den Zugriff auf Ressourcen in ihrem eigenen Konto zu erteilen, können identitätsbasierte Richtlinien konfiguriert werden, während ressourcenbasierte Richtlinien verwendet werden können, um kontoübergreifenden Zugriff auf Ressourcen zu gewähren. In einigen Ausführungsformen prüft der Identitäts- und Zugriffsverwaltungsdienst 102 jede Richtlinie, die für den Kontext einer Anforderung gilt. Wenn eine einzelne Berechtigungsrichtlinie eine verweigerte Aktion enthält, verweigert der Identitäts- und Zugriffsverwaltungsdienst 102 die gesamte Anforderung. In einigen Ausführungsformen verweigert ein Identitäts- und Zugriffsverwaltungsdienst 102 Anforderungen standardmäßig, so dass eine Anforderung nur autorisiert wird, wenn jeder Teil einer Anforderung durch geltende Berechtigungsrichtlinien erlaubt ist.
  • In einigen Ausführungsformen genehmigt der Identitäts- und Zugriffsverwaltungsdienst 102 die Aktionen oder Operationen in der Anforderung, sobald eine Anforderung authentifiziert und autorisiert ist. Operationen werden von einem Dienst definiert und umfassen Aktionen, die für oder relativ zu einer Ressource ausgeführt werden können, wie z. B. das Anzeigen, Erstellen, Bearbeiten und Löschen dieser Ressource. Beispielsweise kann der Identitäts- und Zugriffsverwaltungsdienst 102 neben vielen anderen möglichen Aktionen wie CreateUser, DeleteUser, CreateRole und AssumeRole unterstützen. Damit ein Prinzipal eine Operation ausführen kann, wird die Aktion in eine Richtlinie aufgenommen, die für den Prinzipal oder die betroffene Ressource gilt.
  • In einigen Ausführungsformen sind identitätsbasierte Richtlinien 128 Berechtigungsrichtlinien, die an eine Identität angehängt sind, wie etwa ein Benutzer, eine Gruppe oder eine Rolle in einem Konto. In einigen Ausführungsformen sind ressourcenbasierte Richtlinien Berechtigungsrichtlinien, die an eine Ressource angehängt sind, wie z. B. ein Speicherobjekt 108 oder eine Rollenvertrauensrichtlinie. Eine ressourcenbasierte Richtlinie steuert, welche Aktionen ein bestimmter Prinzipal für diese Ressource ausführen kann und unter welchen Bedingungen. In einigen Ausführungsformen unterstützt der Identitäts- und Zugriffsverwaltungsdienst 102 beispielsweise Vertrauensrichtlinien 130, die an eine Rolle (z. B. eine oder mehrere der Rollen 124A - 124N) angehängt werden können. Da eine Rolle sowohl eine Identität als auch eine Ressource ist, die ressourcenbasierte Richtlinien unterstützt, sind in einigen Ausführungsformen sowohl eine Vertrauensrichtlinie als auch eine identitätsbasierte Richtlinie an eine Rolle angehängt. Vertrauensrichtlinien 130 definieren, welche Prinzipalentitäten (Konten, Benutzer, Rollen und verbundene Benutzer) die Rolle übernehmen können.
  • In einigen Ausführungsformen ist eine Rolle eine Identität, die ein Benutzer in einem Konto erstellt, das bestimmte Berechtigungen hat. Eine Rolle ähnelt einem Benutzer, da es sich um eine Identität mit Berechtigungsrichtlinien handelt, die bestimmen, was die Identität tun kann und was nicht. Anstatt jedoch eindeutig einer Person zugeordnet zu sein, soll eine Rolle von jedem übernommen werden können, der sie benötigt. Außerdem verfügt eine Rolle möglicherweise nicht über standardmäßige langfristige Zugangsdaten wie ein Kennwort oder Zugriffsschlüssel, die mit dieser assoziiert sind. Wenn eine Entität eine Rolle übernimmt, werden ihr stattdessen temporäre Sicherheitszugangsdaten für eine Rollensitzung bereitgestellt. Rollen können verwendet werden, um den Zugriff an Benutzer, Anwendungen oder Dienste zu delegieren, die normalerweise keinen Zugriff auf die Ressource haben. Beispielsweise möchte eine Person Benutzern in einem Konto Zugriff auf Ressourcen gewähren, auf die diese Benutzer normalerweise keinen Zugriff haben, oder Benutzern in einem Konto Zugriff auf Ressourcen in einem anderen Konto gewähren.
  • In einigen Ausführungsformen verwenden bei Kreis „1“ in FIG. In 1 ein oder mehrere Benutzer, die einer Organisation 134 zugeordnet sind, eine oder mehrere elektronische Vorrichtungen 144, um Identitätskonfigurationsanforderung(en) 142 zu erzeugen, um einen Satz von Prinzipalen 120 zu konfigurieren, die mit einer Organisation (z. B. einer durch die Organisation 134 repräsentierten Organisation) assoziiert sind, und ferner Richtlinien 126 zu konfigurieren, die mit einigen oder allen dieser Prinzipale assoziiert sind. Diese Prinzipale können beispielsweise erstellt werden, um eine Authentifizierung für Benutzer und Prozesse innerhalb von Konten (z. B. Konto 136A-136N) des Cloud-Anbieter-Netzwerks 100 bereitzustellen. Wie oben angegeben, stellen Identitäten einen Benutzer dar und können authentifiziert und dann autorisiert werden, Aktionen im Cloud-Anbieter-Netzwerk 100 durchzuführen, und jede Identität kann mit einer oder mehreren Richtlinien 126 assoziiert sein, um zu bestimmen, welche Aktionen ein Benutzer oder eine Rolle mit welchen Cloud-Anbieter-Netzwerkressourcen und unter welchen Bedingungen ausführen kann. Die Sammlung von Konten, Auftraggebern und Richtlinien kann beispielsweise von einer Organisation erstellt werden, die beabsichtigt, verschiedene Dienste des Cloud-Anbieter-Netzwerks 100 für verschiedene Zwecke zu verwenden. Darüber hinaus kann die Sammlung von Konten, Auftraggebern und Richtlinien, die eine Organisation umfasst, im Laufe der Zeit nach Wunsch der Organisation modifiziert werden.
  • In einigen Ausführungsformen erstellt und speichert der Identitäts- und Zugriffsverwaltungsdienst 102 in Kreis ,,2" als Reaktion auf die Identitätskonfigurationsanforderung(en) 142 Daten, die die Konten, Prinzipale und Richtlinien darstellen, und speichert diese. Wie weiter oben angegeben, können diese Prinzipale und Richtlinien von externen Benutzern des Cloud-Anbieter-Netzwerks 100 mit ausreichenden Privilegien hinzugefügt, bearbeitet und entfernt werden, z. B. unter Verwendung einer webbasierten Konsole, API, CLI oder einer anderen vom Identitäts- und Zugriffsverwaltungsdienst 102 bereitgestellten Schnittstelle, und Daten, die die Prinzipale und Richtlinien darstellen, können unter Verwendung verschiedener Arten von Speicherressourcen gespeichert werden, die vom Identitäts- und Zugriffsverwaltungsdienst 102 verwaltet werden.
  • 2 ist ein Diagramm, das die Beziehung zwischen beispielhaften Identitätsrichtlinien- und Vertrauensrichtlinienfragmenten, die mit einem Benutzer assoziiert sind, und Rollen innerhalb eines Benutzerkontos gemäß einigen Ausführungsformen veranschaulicht. Es wird angemerkt, dass die beispielhaften Richtlinien in 2 nur einfache Richtlinienfragmente darstellen, während typische Richtlinien, die von Benutzern eines Cloud-Anbieter-Netzwerks 100 definiert werden, zahlreiche Konjunktionen und Disjunktionen von „Erlauben“- und „Verweigern“-Anweisungen enthalten. In einem beispielhaften Cloud-Anbieter-Netzwerk 100 kann ein Prinzipal x (z. B. ein Benutzer wie Benutzer A 200, eine Rolle wie Rolle B 202 oder eine Rolle wie Rolle C 204) eine Rolle y übernehmen, wenn die Vertrauensrichtlinie von y x vertraut und die Identitätsrichtlinie von x Zugriff auf die sts:AssumeRole-API (z. B. eine API-Aktion, die durch das Cloud-Anbieter-Netzwerk 100 definiert ist und verwendet wird, um eine Rolle zu übernehmen) für die Ressource y gewährt. Wenn in diesem Beispiel x und y von unterschiedlichen Konten stammen, erhält x Zugriff auf die sts:AssumeRole-API, wenn seine Identitätsrichtlinie ausdrücklich Zugriff gewährt. Wenn x und y von demselben Konto stammen, hat x Zugriff auf sts:AssumeRole, solange seine Identitätsrichtlinie den Zugriff nicht explizit verweigert.
  • In dem in 2 gezeigten Beispiel wird dem Benutzer A 200 (z. B. von Konto 01239) nicht ausdrücklich der Zugriff verweigert, um die Rolle B 202 zu übernehmen, weil die Rolle B nicht in der Sprache „D*“ ist, die in der Identitätsrichtlinie des Benutzers A verwendet wird (z. B. wie veranschaulicht im Identitätsrichtlinienausschnitt 206 von Benutzer A). Unterdessen vertraut die Rolle B 202 dem Benutzer A 200 aufgrund des Richtlinienfragments 210 (und somit ist es dem Benutzer A 200 gestattet, den Schritt der Rollenübernahme 208A durchzuführen), und die Rolle C 204 vertraut der Rolle B 202 aufgrund des Richtlinienfragments 214. Die Rolle B 202 kann in die Rolle C 208B (vom Konto 09876) übergehen, da C in der Sprache von C* ist. Anders als bei der Beziehung zwischen dem Benutzer A 200 und der Rolle B 202 ist das ausdrückliche Erlauben in der Vertrauensrichtlinie von C erforderlich, da die Rolle B 202 und die Rolle C 204 mit unterschiedlichen Konten assoziiert sind. Abschließend wird angemerkt, dass die bedingten Anweisungen in den Vertrauensrichtlinien die Rollenübernahmeschritte auf Prozesse beschränken, die auf virtuellen Maschinen von eingeschränkten IP-Adressen wie 20.34.66.10 ausgeführt werden. Somit kann der Benutzer A 200 in diesem Beispiel potenziell die Zugangsdaten für die Rolle B 202 erwerben, SSH in eine andere Cloud-basierte virtuelle Maschine, wie etwa 20.10.1.10, und dann erfolgreich die Rolle C 204 übernehmen.
  • In einigen Fällen kann die Rollenübernahmekette (Benutzer A 200 -> Rolle B 202 -> Rolle C 204) ein Verhalten sein, das von Benutzern gewünscht wird, die mit der relevanten Organisation assoziiert sind. In anderen Beispielen könnte es jedoch unerwünscht sein, dass der Benutzer 200 über die Rolle B 202 die Rolle C 204 übernehmen kann. Wenn beispielsweise die Rolle C 204 Zugriff auf Ressourcen hat, auf die der Besitzer des Kontos 09876 nicht wünscht, dass der Benutzer A 200 Zugriff hat, stellt die Rollenübernahmekette eine unerwünschte Möglichkeit dar. Angesichts einer deklarativen Invariante, dass der Zugriff in dieser Umgebung nachgewiesen werden soll, zielt die Rollenerreichbarkeitsanalyse darauf ab, solche Rollenübernahmeketten in der oft großen Menge komplexer Identitätsrichtlinien, Ressourcenrichtlinien, Vertrauensrichtlinien, Benutzer, Rollen und Rechenressourcen usw. zu finden.
  • Um eine breite Vielfalt von Anwendungsfällen zu unterstützen, unterstützt ein Cloud-Anbieter-Netzwerk 100 in einigen Ausführungsformen viele zusätzliche Konzepte, die zu dem in 2 veranschaulichten Beispiel hinzugefügt werden könnten, wie etwa Sitzungs-Tags, transitive Sitzungs-Tags, Berechtigungsgrenzenrichtlinien, Sitzungsrichtlinien und dergleichen. Die Semantik jedes dieser Konzepte interagiert miteinander, was es zunehmend schwieriger macht, Fragen zur Rollenerreichbarkeit zu beantworten. Es gibt auch die Überlegung, dass die verwendeten Richtlinienanweisungen modifiziert werden können, während versucht wird, die Frage der Rollenerreichbarkeit zu beantworten. Der Code, der diese Anweisungen modifiziert, kann unter der Kontrolle von Rollen stehen, die während der Analyse berücksichtigt werden. Das in 2 gezeigte Beispiel lässt diese Details weg, um ein allgemeines Beispiel für das Problem der Rollenerreichbarkeit zu geben. Die hierin beschriebene formale Darstellung wird jedoch in ihrer Gesamtheit beschrieben, und die entsprechende Analyse unterstützt zusätzliche derartige Komplexitäten.
  • Wie oben angedeutet, ist eine Ressource ein Konzept, das verwendet wird, um die Domäne von Elementen zu erfassen, die von Kunden in einem Cloud-Anbieter-Netzwerk 100 erstellt, gelesen, modifiziert oder gelöscht werden können. Beispiele sind Benutzer, Rollen, Richtlinien, Warteschlangen, Datenbanken, virtuelle Maschinen usw. In diesem Beispiel steht
    Figure DE112021004945T5_0001
    für den Satz gültiger Ressourcen,
    Figure DE112021004945T5_0002
    für den Richtliniensatz und
    Figure DE112021004945T5_0003
    für den Satz von Prinzipalen. Die Syntax von R , P und  X
    Figure DE112021004945T5_0004
    bleibt in der Semantik abstrakt, und es wird darauf hingewiesen, dass X R
    Figure DE112021004945T5_0005
    (z. B. ein Benutzer oder eine Rolle eine Art von Ressource ist). In einigen Ausführungsformen gibt es eine Projektion auf jede Ressource, r R ,
    Figure DE112021004945T5_0006
    bezeichnet mit r#, die die Kontonummer des Cloud-Anbieter-Netzwerks 100 zurückgibt, das mit r assoziiert ist. Mehrere andere Projektionen werden angenommen, z. B. rDienst = kms, wenn die Ressource r ein kryptographischer Schlüssel eines Schlüsselverwaltungsdienstes (KMS) ist. Der Aktionssatz
    Figure DE112021004945T5_0007
    ist ein Satz von Konstanten wie iam:AttachRolePolicy und s3:DeleteObject. Eine Anforderung ist somit ein Quadrupel (p, a, r, c), sodass p X ,   a A ,   r R  und  c
    Figure DE112021004945T5_0008
    eine Zuordnung sind, die zusätzliche dienstspezifische Informationen für die Anforderung enthält, z. B. den Schlüssel aws:SourceIp, der im Richtlinienbedingungsbeispiel in 2 verwendet wird, sowie Sitzungs-Tags. Es wird angenommen, dass C die Menge aller gültigen Zuordnungen ist.
  • In einigen Ausführungsformen sind Richtlinien (z. B. Richtlinien 126) in einem Cloud-Anbieter-Netzwerk 100 an verschiedene Ressourcen, Prinzipale und Netzwerkkonstrukte angehängt, und Autorisierungsentscheidungen basieren auf der Zusammensetzung dieser Richtlinien. Die Syntax von Richtlinien bleibt abstrakt, und die hier bereitgestellten Beispiele werden in einer beispielhaften JSON-basierten Syntax gezeigt, obwohl in anderen Beispielen andere Syntaxen verwendet werden können. Abgenommen, q P
    Figure DE112021004945T5_0009
    sei eine syntaktisch gültige Richtlinie. In einigen Ausführungsformen wird die Semantik von q als [q] bezeichnet, wobei q : X × A × R × C { wahr ,   f a l s c h ,   v e r w e i g e r t } . p ( p , a , r , c ) = wahr
    Figure DE112021004945T5_0010
     
    Figure DE112021004945T5_0011
    wenn die Anforderung ausdrücklich erlaubt ist. [p] (p, a, r, c)=falsch, wenn die Anforderung nicht ausdrücklich erlaubt ist (es ist zu beachten, dass dies etwas anderes als ausdrücklich verweigert ist). [p] (p, a, r, c) = verweigert, wenn die Anforderung ausdrücklich verweigert wird. Wie in den nachstehenden Beispielen beschrieben, werden die Ergebnisse verschiedener Richtlinien kombiniert, wobei boolesche Operationen verwendet werden, jedoch auf der 3-wertigen Einstellung: {wahr, falsch, verweigert}. Daher sind erhöhte boolesche Operationen für die 3-wertige Einstellung wie folgt definiert: x ¯ y { denied ,  if  x = denied y = denied x y ,  otherwise x ¯ y { denied ,  if  x = denied y = denied x y ,  otherwise
    Figure DE112021004945T5_0012
  • In einigen Ausführungsformen verhält sich der Wert verweigert bei Verwendung mit ∨̅ und ∧̅ analog zu einer Ausnahme in Programmiersprachen. Das heißt, für alle Ausdrücke e, die als Kombination von ∨̅ und ∧̅ konstruiert sind, vereinfacht sich e zu verweigert, wenn verweigert als Unterausdruck auftritt. Beispiel: ∀ x,y,z. xv̅(denied∧̅y)∨̅z=denied.
  • In einigen Ausführungsformen wird der Zustand des Cloud-Anbieter-Netzwerks 100 als eine Familie von Teilfunktionen behandelt, die durch logische Konstanten indiziert sind. Für die meisten Konstanten, die sich auf den Identitäts- und Verwaltungsdienst 102 beziehen, ist die Domäne der Teilfunktion
    Figure DE112021004945T5_0013
    und ist der Bereich
    Figure DE112021004945T5_0014
    , wenn er definiert ist, und ⊥" wenn er nicht definiert ist. Das heißt, wenn σ ein Netzwerkzustand eines Cloud-Anbieters und c eine gültige Konstante im Zusammenhang mit dem Identitäts- und Zugriffsverwaltungsdienst ist, dann gilt σ c : R P { } .
    Figure DE112021004945T5_0015
    Als Beispiel verwenden wir die logische konstante Grenze, um Grenzrichtlinien darzustellen. Wenn also p eine Grenzrichtlinie q im Cloud-Anbieter-Netzwerkzustand σ aufweist, dann gilt σGrenze (p) = q. Wenn p keine Grenzrichtlinie aufweist, dann gilt σGrenze (p) = ⊥.
  • In einigen Ausführungsformen kann die in 3 gezeigte Definition veranschaulichen, wie Zugriffssteuerungsentscheidungen für Rollen getroffen werden, wie durch die Rollenautorisierungssemantik 300 veranschaulicht. Wie in 3 gezeigt, wird die Frage betrachtet, ob die Rolle p berechtigt ist, die Aktion a auf der Ressource r auszuführen oder nicht. Zum Beispiel autorisiert der Identitäts- und Zugriffsverwaltungsdienst 102 die Aktion von einem Status σ eines Cloud-Anbieter-Netzwerks 100 dann und nur dann, wenn AUTHσ(p, a, r, c) = wahr ist. Hier wird angenommen, dass p eine Rolle ist; unterschiedliche Semantiken regeln die Autorisierung, wenn p beispielsweise ein Benutzer ist. Die in 3 gezeigte beispielhafte Semantik dient nur der Veranschaulichung; in anderen Ausführungsformen kann die Semantik der Rollenautorisierung durch Logik ausgedrückt werden, die andere Kombinationen von Richtlinientypen und Cloud-Anbieter-Netzwerkkonstrukten berücksichtigt.
  • In einigen Ausführungsformen definiert die nachstehende Gleichung eine Rollenübernahme-Übergangsbeziehung, ⇝, basierend auf der oben definierten Rollenautorisierungssemantik: ( p , σ , t ) E ( p ' , σ ' , t ' ) c . AUTH σ ( p , sts : AssumeRole , p ' , c t ' ) ( t ' 0 AUTH σ ( p , sts : TagSession , p ' , c t ) ) t t ' ( σ , σ ' ) E
    Figure DE112021004945T5_0016
  • Hier gibt die Gleichung an, dass eine Rolle p, wenn sich das Cloud-Anbieter-Netzwerk 100 im Zustand σ befindet und der Zustand des transitiven Sitzungs-Tags t ist, p' übernehmen kann, wenn der Satz von neuen transitiven Sitzungs-Tags t'-t eingeführt wird. Das E in ⇝E wird verwendet, um die Auswirkung der Umgebung auf die Cloud-Anbieter-Netzwerkzustände während der Ausführung zu charakterisieren. Während beispielsweise p in p' übergeht, könnte die Umgebung Rollen, Richtlinien oder Ressourcen hinzufügen oder löschen. In einigen Ausführungsformen ist die Rolle p' von (p, σ) aus unter einem Umgebungsmodell E erreichbar, wenn und nur wenn es ein t, t', σ' gibt, so dass ( p , σ , t ) E * ( p ' , σ ' , t ' )
    Figure DE112021004945T5_0017
    gilt. In der Praxis beeinflusst die Wahl von E die Frage der Erreichbarkeit über mehrere Rollenübernahmeschritte hinweg. Zum Beispiel kann p' von p nicht erreichbar sein, wenn sich der Cloud-Anbieter-Netzwerkzustand nicht ändert (d. h. E={(s,s')| s=s'}), aber erreichbar sein, wenn die Umgebung nicht eingeschränkt ist (z. B. E= {(s,s')|true}). Es ist zu beachten, dass in ⇝ der Zustand von transitiven Sitzungs-Tags explizit in ⇝ verfolgt wird, um ihre Wirkung über möglicherweise mehrere Rollenübernahmeschritte hinweg zu modellieren.
  • 4 veranschaulicht ein definiertes Programm f (unter Verwendung von Übernahmeanweisungen, z. B. wie durch einen symbolischen Modellprüfer 152 oder eine andere Art von Rollenerreichbarkeitsanalyseanwendung definiert) mit der Eigenschaft, dass die Rolle p' von (p, σ) unter einem Umgebungsmodell E dann und nur dann nicht erreichbar ist, wenn die Assert-Anweisung in U(p, σ, t, E, p') nicht fehlschlagen kann. In einigen Ausführungsformen ermöglicht diese Reduzierung die Verwendung einer Software-basierten Analyse-Engine (die z. B. möglicherweise einen symbolischen Modellprüfer 152 enthält), um die Erreichbarkeit zwischen zwei beliebigen gegebenen Rollen p und p' zu beweisen oder zu widerlegen. Darüber hinaus kann diese Analyse über eine beliebige Anzahl von gleichzeitig ausgeführten Rechenvorrichtungen verteilt werden (z. B. Rechenvorrichtungen oder Ressourcen, die vom Identitäts- und Zugriffsverwaltungsdienst 102 verwaltet werden, bereitgestellt von einem Hardwarevirtualisierungsdienst 118 oder einem anderen Dienst des Cloud-Anbieter-Netzwerks 100), wobei die effiziente Analyse einer Organisation mit vielen Benutzern und Rollen ermöglicht wird. Vorausgesetzt, dass beispielsweise eine Organisation einen Satz von Rollen als Eingabe enthält, kann die Analyse von Rollenpaaren über eine beliebige Anzahl von separaten Rechenvorrichtungen 146 verteilt werden.
  • In einigen Ausführungsformen empfängt der Identitäts- und Zugriffsverwaltungsdienst 102 bei Kreis „3“ eine Anforderung 158 zum Durchführen einer Rollenerreichbarkeitsanalyse in Bezug auf einige oder alle der Rollen, die mit einem Konto oder einem Satz von Konten assoziiert sind (z. B. Konten, die mit einer Organisation 134 assoziiert sind). Beispielsweise kann die Anforderung 158 eine Rollenerreichbarkeitsanalyse mehrerer Konten einer Organisation (z. B. Konten 136A - 136N oder Organisation 134) anfordern, die mit einem Identitäts- und Zugriffsverwaltungsdienst 102 eines Cloud-Anbieter-Netzwerks 100 assoziiert sind, wobei die Mehrzahl von Konten insgesamt eine Vielzahl von Benutzern 122A - 122N (und mit den Konten 136B - 136N assoziierte Benutzer), eine Vielzahl von Rollen 124A - 124N , 138, 140 und eine Vielzahl von Richtlinien (darunter z. B. die Richtlinien 126) beinhaltet. In einigen Ausführungsformen ist die Anforderung 158 eine Anforderung zum Berechnen von Graphen, die mögliche Paare (p, p') darstellen, sodass p in p' übergehen könnte. In einigen Ausführungsformen kann dies unter Bezugnahme auf das oben beschriebene Beispielprogramm und unter der Annahme von σ, t und E als Menge berechnet werden: G = {(p, p')|Erreichbar (U(p, a, t, E, p'))=falsch}, wobei Erreichbar die Verwendung eines symbolischen Modellprüfers 152 oder einer anderen Analyse-Engine darstellt. In weiteren Beispielen kann eine Rollenerreichbarkeitsanalyse-Anforderung 158 die Analyse eines spezifizierten Satzes von Konten, Rollen oder einer anderen Gruppierung eines zu analysierenden Satzes von Rollen anfordern.
  • In einigen Ausführungsformen spezifiziert die Anforderung 158 eine oder mehrere ausgewählte Rollen von einer Organisation zur Analyse. Beispielsweise kann ein Benutzer ein oder mehrere Administratorkonten zur Analyse angeben, sodass die Rollenerreichbarkeitsanalyse einen Satz von einer oder mehreren weiteren Rollen identifiziert, die die Administratorrolle(n) erreichen können. In anderen Beispielen fordert ein Benutzer eine Analyse jeglicher Rollen an, die mit spezifizierten Berechtigungen assoziiert sind (z. B. Berechtigungen zum Zugreifen auf eine bestimmte Ressource oder zum Durchführen bestimmter Arten von Aktionen innerhalb des Cloud-Anbieter-Netzwerks 100). Diese Arten von „eingehenden Analysen“ können Benutzer beispielsweise dabei unterstützen, eine Gruppe von Benutzern und Rollen zu identifizieren, die Rollen mit Berechtigungen erreichen können, für die der Benutzer möglicherweise möchte oder nicht möchte, dass diese Benutzer/Rollen Zugriff haben. In weiteren Ausführungsformen spezifiziert die Anforderung 158 einen oder mehrere Benutzer oder Rollen für eine „abgehende Analyse“ des Satzes von Rollen, die die Benutzer oder Rollen erreichen können. Beispielsweise kann ein Benutzer einen Benutzer oder eine Rolle angeben, von denen der Benutzer weiß, dass sie manipuliert wurden, und die Analyse kann einen Hinweis auf eine Reihe von Rollen liefern, die der manipulierte Benutzer oder die manipulierte Rolle erreichen kann.
  • In einigen Ausführungsformen erhält der Rollenerreichbarkeitsanalysator 150 bei Kreis „4“ die Organisationsspezifikation 148 (z. B. Daten, die Informationen über das Benutzerkonto und Richtlinieninformationen identifizieren) als Eingabe und initiiert die Ausführung einer Analyse-Engine (z. B. einer softwarebasierten Anwendung, die verwendet wird, um Rollenerreichbarkeitsanalysen basierend auf den hierin beschriebenen Formalisierungen durchzuführen und die möglicherweise einen symbolischen Modellprüfer 152 beinhaltet) basierend auf einem Rollenerreichbarkeitsmodell/-programm 154 unter Verwendung der Organisationsspezifikation 148 als Eingabe. Beispielsweise kann ein Rollenerreichbarkeitsanalysator 150 auf einer oder mehreren Rechenvorrichtungen 146 ausgeführt werden. In einigen Ausführungsformen ist das Ergebnis der Analyse des Rollenerreichbarkeitsanalysators ein Rollenübernahmegraph 156, der die Rollenerreichbarkeitsbeziehungen zwischen den Rollen 124A - 124N darstellt, die durch den Rollenerreichbarkeitsanalysator 150 identifiziert wurden.
  • In einigen Ausführungsformen involviert die vom Rollenerreichbarkeitsanalysator 150 durchgeführte Rollenerreichbarkeitsanalyse das Identifizieren von Rollenerreichbarkeitsbeziehungen zwischen der Vielzahl von Rollen, die in der Organisationsspezifikation 148 identifiziert sind, indem für jedes Paar von Rollen der Vielzahl von analysierten Rollen bestimmt wird, ob ein Satz von Rollenübernahmeschritten besteht, wenn eine zweite Rolle des Paares von einer ersten Rolle des Paares über einen oder mehrere Rollenübernahmeschritte übernommen werden kann. Beispielsweise involviert die Analyse für eine erste Rolle A und eine zweite Rolle B das Bestimmen, ob Rolle B von Rolle A aus erreichbar ist, entweder im Hinblick auf Richtlinien, die es der Rolle A erlauben, die Rolle B direkt zu übernehmen, oder die der Rolle A erlauben, die Rolle B über einen oder mehrere Rollenübernahme-Zwischenschritte zu übernehmen (z. B. existiert eine Umgebung, so dass Rolle A die Rolle C übernehmen kann, Rolle D von Rolle C übernommen und Rolle B von Rolle D übernommen werden kann).
  • In einigen Ausführungsformen kann die oben beschriebene Analyse weiter modifiziert werden, indem angemerkt wird, dass während der Analyse zahlreiche erreichbare Rollenketten gefunden werden und somit diese Rollenketten nicht neu berechnet werden müssen. Darüber hinaus sind in typischen Organisationen kontointerne Rollenübernahmen relativ häufig, wohingegen kontenübergreifende Rollenübernahmen relativ selten sind. Somit kann in einigen Ausführungsformen ein Satz kontenspezifischer Graphen wie folgt berechnet werden: G i = { ( p , p ' ) | p # = i p # ' = i Impact ( U ( p , σ , t , E . p ' ) ) = false } .
    Figure DE112021004945T5_0018
    Dann kann in einigen Ausführungsformen G selbst unter Verwendung des in 5 gezeigten Rollenerreichbarkeitsprogramms 500 effizient berechnet werden. Wie gezeigt, versucht das Rollenerreichbarkeitsprogramm 500 nur dann, eine Kante in G hinzuzufügen, wenn es möglich ist, zwischen Konten zu wechseln (was in einer spärlichen Umgebung selten vorkommt). In einigen Ausführungsformen wird E unter Verwendung von Interpolation synthetisiert. Beispielsweise sei E={(s,s')ls=s'}, wonach dann f(p, a, t. E, p') ausgeführt wird. In einigen Ausführungsformen können dann die während des symbolischen Modellprüfernachweises verwendeten Interpolanten erhalten und verwendet werden.
  • In einigen Ausführungsformen veranlasst der Identitäts- und Zugriffsverwaltungsdienst 102 bei Kreis „5“ die Anzeige von Ergebnissen der Analyse, die möglicherweise z. B. einen Rollenerreichbarkeitsgraph 602 in einer webbasierten Konsole oder einer anderen GUI 600 beinhaltet. 6 ist ein Beispiel einer grafischen Anzeige eines Rollenerreichbarkeitsgraphen 602, der die Rollenerreichbarkeitsbeziehungen darstellt, die in der oben beschriebenen Analyse in Bezug auf einen identifizierten Satz von Rollen identifiziert wurden. In einigen Ausführungsformen stellt in dem Rollenerreichbarkeitsgraphen 602 jeder Knoten des Graphen eine jeweilige Rolle der Vielzahl von Rollen dar, und eine Kante zwischen einem ersten Knoten und einem zweiten Knoten des Graphen gibt an, dass es einer jeweiligen ersten Rolle gestattet ist, eine jeweilige zweite Rolle der Vielzahl von Rollen zu übernehmen. Beispielsweise veranschaulicht der Rollenerreichbarkeitsgraph 602, dass die Rolle 124C vom Benutzer 122A über einen Rollenübernahmeschritt vom Benutzer 122A zur Rolle 124A (oder zur Rolle 124B) und dann weiter von der Rolle 124A zur Rolle 124C erreichbar ist. Das in 6 veranschaulichte Beispiel veranschaulicht ferner, dass Rollenübernahmeschritte über Konten hinweg möglich sind, z. B. veranschaulicht durch den möglichen Rollenübernahmeschritt von Rolle 124F von Konto 136A zu Rolle 124I von Konto 136N. In anderen Ausführungsformen können andere Darstellungen der Rollenerreichbarkeitsanalyse präsentiert werden, wie etwa die Anzeige von Informationen, die mit einem bestimmten Benutzer oder einer bestimmten Rolle und einem Satz von Berechtigungen und Richtlinien, die vom Benutzer oder der Rolle geerbt werden, basierend auf möglichen Rollenübernahmeketten assoziiert sind; z. B. kann die Präsentation einen Graphen oder eine andere explizite Darstellung der Rollenerreichbarkeitsketten anzeigen oder auch nicht.
  • In einigen Ausführungsformen stellt der Rollenerreichbarkeitsgraph 602 wie oben angegeben ferner Informationen über die Identitätsrichtlinien bereit, die mit einer oder mehreren der angezeigten Rollen assoziiert sind. Beispielsweise kann ein Benutzer eine Rolle im Graphen auswählen und die GUI veranlassen, Informationen über die der Rolle gewährten Berechtigungen anzuzeigen, sodass ein Benutzer Informationen über die potenziellen Auswirkungen eines Auftretens der identifizierten Rollenübernahmebeziehung erhalten kann. Obwohl das in 6 gezeigte Beispiel nur eine kleine Anzahl von Konten und Rollen veranschaulicht, kann ein Rollenerreichbarkeitsgraph 602 im Allgemeinen die Anzeige einer beliebigen Anzahl von Konten, Rollen, Benutzern und anderen Informationen beinhalten, die sich auf die Rollenerreichbarkeitsanalyse beziehen.
  • 7 ist ein Flussdiagramm, das Operationen 700 eines Verfahrens zum Verwenden von Techniken der kompositionellen Verifikation für die Rollenerreichbarkeit in Identitätssystemen gemäß einigen Ausführungsformen veranschaulicht. Einige oder alle der Operationen 700 (oder andere hierin beschriebene Prozesse oder Variationen und/oder Kombinationen davon) werden unter der Steuerung von einem oder mehreren Computersystemen durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind, und sind als Code implementiert (z. B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), die gemeinsam auf einem oder mehreren Prozessoren durch Hardware oder Kombinationen davon ausgeführt werden. Der Code wird auf einem computerlesbaren Speichermedium beispielsweise in Form eines Computerprogramms gespeichert, das Anweisungen umfasst, die von einem oder mehreren Prozessoren ausführbar sind. Das computerlesbare Speichermedium kann nicht-transitorisch sein. In einigen Ausführungsformen werden eine oder mehrere der (oder alle) Operationen 700 durch den Rollenerreichbarkeitsanalysator 150 der anderen Figuren durchgeführt.
  • Die Operationen 700 beinhalten bei Block 702 das Empfangen einer Eingabe, die eine Rollenerreichbarkeitsanalyse einer Vielzahl von Konten anfordert, die mit einem Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks assoziiert sind, wobei die Vielzahl von Konten insgesamt eine Vielzahl von Rollen und eine Vielzahl von Richtlinien beinhaltet.
  • Die Operationen 700 beinhalten ferner bei Block 704 das Initiieren der Ausführung einer Analyse-Engine, die zum Identifizieren von Rollenerreichbarkeitsbeziehungen unter der Vielzahl von Rollen verwendet wird, wobei eine Rollenerreichbarkeitsbeziehung zwischen einer ersten Rolle und einer zweiten Rolle der Vielzahl von Rollen anzeigt, dass einem Benutzer erlaubt ist, die zweite Rolle über eine Übernahme der ersten Rolle und einen oder mehrere Rollenübernahmeschritte zu übernehmen, und wobei die Analyse-Engine eine Spezifikation der Vielzahl von Rollen und der Vielzahl von Richtlinien als Eingabe für ein Rollenerreichbarkeitsprogramm verwendet, das eine Modellierung des Zustands von transitiven Sitzungs-Tags über mehrere Rollenübernahmeschritte hinweg beinhaltet.
  • Die Operationen 700 beinhalten ferner bei Block 706 das Generieren mindestens eines Rollenerreichbarkeitsgraphen, der die Rollenerreichbarkeitsbeziehungen darstellt, wobei jeder Knoten des Rollenerreichbarkeitsgraphen eine jeweilige Rolle der Vielzahl von Rollen darstellt und eine Kante zwischen einem ersten Knoten und einem zweiten Knoten des Rollenerreichbarkeitsgraphen angibt, dass es einer jeweiligen ersten Rolle erlaubt ist, eine jeweilige zweite Rolle der Vielzahl von Rollen zu übernehmen.
  • Die Operationen 700 beinhalten ferner bei Block 708 das Veranlassen der Anzeige einer grafischen Benutzeroberfläche (GUI), die eine grafische Anzeige des mindestens einen Rollenerreichbarkeitsgraphen beinhaltet.
  • 8 veranschaulicht eine beispielhafte Anbieter-Netzwerkumgebung (oder „Dienstanbietersystem“) gemäß einigen Ausführungsformen. Ein Anbieter-Netzwerk 800 kann Kunden über einen oder mehrere Virtualisierungsdienste 810 Ressourcenvirtualisierung bereitstellen, die es Kunden ermöglichen, Instanzen 812 von virtualisierten Ressourcen zu kaufen, zu mieten oder anderweitig zu erhalten, darunter Rechen- und Speicherressourcen, die auf Vorrichtungen innerhalb des Anbieter-Netzwerks/der Anbieter-Netzwerke in einem oder mehreren Rechenzentren implementiert sind, ohne darauf beschränkt zu sein. Mit den Ressourceninstanzen 812 können lokale Internetprotokoll(IP)-Adressen 816 assoziiert sein; die lokalen IP-Adressen sind die internen Netzwerkadressen der Ressourceninstanzen 812 im Anbieter-Netzwerk 800. In einigen Ausführungsformen kann das Anbieter-Netzwerk 800 auch öffentliche IP-Adressen 814 und/oder öffentliche IP-Adressbereiche (z. B. Internetprotokoll Version 4 (IPv4)- oder Internetprotokoll Version 6 (IPv6)-Adressen) bereitstellen, die Kunden vom Anbieter 800 erhalten können.
  • Herkömmlicherweise kann das Anbieter-Netzwerk 800 über die Virtualisierungsdienste 810 einem Kunden des Dienstanbieters (z. B. einem Kunden, der ein oder mehrere Client-Netzwerke 850A - 850C mit einer oder mehreren Kundenvorrichtungen 852 betreibt) erlauben, zumindest einige öffentliche IP-Adressen 814, die dem Kunden mit bestimmten dem Kunden zugewiesenen Ressourceninstanzen 812 zugewiesen oder zugeteilt sind, dynamisch zu assoziieren. Das Anbieter-Netzwerk 800 kann dem Kunden auch erlauben, eine öffentliche IP-Adresse 814, die zuvor einer dem Kunden zugewiesenen virtualisierten Computerressourceninstanz 812 zugewiesen wurde, einer anderen virtualisierten Computerressourceninstanz 812, die ebenfalls dem Kunden zugewiesen ist, neu zuzuordnen. Unter Verwendung der vom Dienstanbieter bereitgestellten virtualisierten Rechenressourceninstanzen 812 und öffentlichen IP-Adressen 814 kann ein Kunde des Dienstanbieters, wie etwa der Betreiber des Kundennetzwerks/der Kundennetzwerke 850A - 850C, beispielsweise kundenspezifische Anwendungen implementieren und Kundenanwendungen auf einem zwischengeschalteten Netzwerk 840 wie etwa dem Internet präsentieren. Andere Netzwerkentitäten 820 auf dem Zwischennetzwerk 840 können dann Verkehr zu einer öffentlichen Ziel-IP-Adresse 814 generieren, die von dem/den Kundennetzwerk(en) 850A - 850C veröffentlicht wird; der Datenverkehr wird zum Rechenzentrum des Dienstanbieters geleitet und im Rechenzentrum über ein Netzwerksubstrat zur lokalen IP-Adresse 816 der virtualisierten Rechenressourceninstanz 812 geleitet, die derzeit der öffentlichen IP-Zieladresse 814 zugeordnet ist. In gleicher Weise kann Antwortverkehr von der virtualisierten Rechenressourceninstanz 812 über das Netzwerksubstrat zurück auf das Zwischennetzwerk 840 zur Quellenentität 820 geleitet werden.
  • Lokale IP-Adressen, wie sie hierin verwendet werden, beziehen sich auf die internen oder „privaten“ Netzwerkadressen, beispielsweise von Ressourceninstanzen in einem Anbieter-Netzwerk. Lokale IP-Adressen können sich innerhalb von Adressblöcken befinden, die von Internet Engineering Task Force (IETF) Request for Comments (RFC) 1918 reserviert sind, und/oder ein Adressformat aufweisen, das von IETF RFC 4193 spezifiziert ist, und sie können innerhalb des Anbieter-Netzwerks änderbar sein. Netzwerkverkehr, der von außerhalb des Anbieter-Netzwerks stammt, wird nicht direkt an lokale IP-Adressen geleitet; vielmehr verwendet der Datenverkehr öffentliche IP-Adressen, die den lokalen IP-Adressen der Ressourceninstanzen zugeordnet sind. Das Anbieter-Netzwerk kann Netzwerkvorrichtungen oder -geräte beinhalten, die eine Netzwerkadressübersetzung (NAT) oder eine ähnliche Funktionalität bereitstellen, um die Zuordnung von öffentlichen IP-Adressen zu lokalen IP-Adressen und umgekehrt durchzuführen.
  • Öffentliche IP-Adressen sind über das Internet veränderbare Netzwerkadressen, die Ressourceninstanzen entweder vom Dienstanbieter oder vom Kunden zugewiesen werden. An eine öffentliche IP-Adresse geleiteter Verkehr wird beispielsweise über 1:1 -NAT übersetzt und an die jeweilige lokale IP-Adresse einer Ressourceninstanz weitergeleitet.
  • Einige öffentliche IP-Adressen können von der Anbieter-Netzwerkinfrastruktur bestimmten Ressourceninstanzen zugewiesen werden; diese öffentlichen IP-Adressen können als öffentliche Standard-IP-Adressen oder einfach als Standard-IP-Adressen bezeichnet werden. In einigen Ausführungsformen ist die Zuordnung einer Standard-IP-Adresse zu einer lokalen IP-Adresse einer Ressourceninstanz die standardmäßige Startkonfiguration für alle Ressourceninstanztypen.
  • Zumindest einige öffentliche IP-Adressen können Kunden des Anbieter-Netzwerks 800 zugeteilt oder von diesen erhalten werden; ein Kunde kann dann seine zugeteilten öffentlichen IP-Adressen bestimmten Ressourceninstanzen zuweisen, die dem Kunden zugeteilt sind. Diese öffentlichen IP-Adressen können als öffentliche IP-Adressen des Kunden oder einfach als IP-Adressen des Kunden bezeichnet werden. Statt wie im Fall von Standard-IP-Adressen durch das Anbieter-Netzwerk 800 Ressourceninstanzen zugewiesen zu werden, können Kunden-IP-Adressen Ressourceninstanzen durch die Kunden zugewiesen werden, beispielsweise über eine vom Dienstanbieter bereitgestellte API. Im Gegensatz zu Standard-IP-Adressen werden Kunden-IP-Adressen Kundenkonten zugeteilt und können von den jeweiligen Kunden nach Bedarf oder Wunsch anderen Ressourceninstanzen neu zugeordnet werden. Eine Kunden-IP-Adresse ist einem Kundenkonto zugeordnet, nicht einer bestimmten Ressourceninstanz, und der Kunde kontrolliert diese IP-Adresse, bis der Kunde entscheidet, sie freizugeben. Im Gegensatz zu herkömmlichen statischen IP-Adressen erlauben Kunden-IP-Adressen dem Kunden, Ausfälle von Ressourceninstanzen oder Verfügbarkeitszonen zu maskieren, indem die öffentlichen IP-Adressen des Kunden einer beliebigen mit dem Konto des Kunden assoziierten Ressourceninstanz neu zugeordnet werden. Die Kunden-IP-Adressen ermöglichen beispielsweise einem Kunden, Probleme mit den Ressourceninstanzen oder der Software des Kunden zu umgehen, indem Kunden-IP-Adressen neu zu Ersatzressourceninstanzen zugeordnet werden.
  • 9 ist ein Blockdiagramm eines beispielhaften Anbieter-Netzwerks, das gemäß einigen Ausführungsformen einen Speicherdienst und einen Hardwarevirtualisierungsdienst für Kunden bereitstellt. Der Hardwarevirtualisierungsdienst 920 stellt Kunden mehrere Rechenressourcen 924 (z. B. Recheninstanzen 925 wie VMs) bereit. Die Rechenressourcen 924 können beispielsweise an Kunden des Anbieter-Netzwerks 900 (z. B. an einen Kunden, der das Kundennetzwerk 950 implementiert) vermietet oder geleast werden. Jede Rechenressource 924 kann mit einer oder mehreren lokalen IP-Adressen versehen sein. Das Anbieter-Netzwerk 900 kann zum Leiten von Paketen von den lokalen IP-Adressen der Rechenressourcen 924 zu öffentlichen Internetzielen und von öffentlichen Internetquellen zu den lokalen IP-Adressen der Rechenressourcen 924 konfiguriert sein.
  • Das Anbieter-Netzwerk 900 kann einem Kundennetzwerk 950, das beispielsweise über das lokale Netzwerk 956 mit dem zwischengeschalteten Netzwerk 940 gekoppelt ist, die Fähigkeit bereitstellen, virtuelle Datenverarbeitungssysteme 992 über den mit dem zwischengeschalteten Netzwerk 940 und dem Anbieter-Netzwerk 900 gekoppelten Hardwarevirtualisierungsdienst 920 zu implementieren. In einigen Ausführungsformen kann der Hardwarevirtualisierungsdienst 920 eine oder mehrere APIs 902 bereitstellen, beispielsweise eine Webdienstschnittstelle, über die ein Kundennetzwerk 950 auf Funktionen zugreifen kann, die durch den Hardwarevirtualisierungsdienst 920 bereitgestellt werden, beispielsweise über eine Konsole 994 (z. B. webbasierte Anwendung, eigenständige Anwendung, mobile Anwendung usw.). In einigen Ausführungsformen kann im Anbieter-Netzwerk 900 jedes virtuelle Datenverarbeitungssystem 992 im Kundennetzwerk 950 einer Rechenressource 924 entsprechen, die dem Kundennetzwerk 950 geleast, vermietet oder anderweitig bereitgestellt wird.
  • Von einer Instanz eines virtuellen Computersystems 992 und/oder einer anderen Kundenvorrichtung 990 (z. B. über die Konsole 994) kann der Kunde auf die Funktionalität des Speicherdienstes 910 zugreifen, z. B. über eine oder mehrere APIs 902 , um auf Daten aus den Speicherressourcen 918A-918N eines virtuellen Datenspeichers 916 (z. B. ein Ordner oder „Bücket“, ein virtualisiertes Volumen, eine Datenbank usw.), der von dem Anbieter-Netzwerk 900 bereitgestellt wird, zuzugreifen und Daten darin zu speichern. In einigen Ausführungsformen kann ein virtualisiertes Datenspeicher-Gateway (nicht gezeigt) im Kundennetzwerk 950 bereitgestellt werden, das mindestens einige Daten lokal zwischenspeichern kann, zum Beispiel häufig aufgerufene oder kritische Daten, und das mit dem Speicherdienst 910 über einen oder mehrere Kommunikationskanäle kommunizieren kann, um neue oder modifizierte Daten aus einem lokalen Cache hochzuladen, sodass der primäre Datenspeicher (virtualisierter Datenspeicher 916) beibehalten wird. In einigen Ausführungsformen kann ein Benutzer über ein virtuelles Rechensystem 992 und/oder auf einer anderen Kundenvorrichtung 990 Datenträger des virtuellen Datenspeichers 916 über den Speicherdienst 910, der als Speichervirtualisierungsdienst fungiert, bereitstellen und darauf zugreifen, und diese Datenträger können dem Benutzer als lokaler (virtueller) Speicher 998 erscheinen.
  • Obwohl in 9 nicht gezeigt, kann auf den/die Virtualisierungsdienst(e) auch von Ressourceninstanzen innerhalb des Anbieter-Netzwerks 900 über API(s) 902 zugegriffen werden. Beispielsweise kann ein Kunde, Gerätedienstanbieter oder eine andere Entität von innerhalb eines jeweiligen virtuellen Netzwerks im Anbieter-Netzwerk 900 über eine API 902 auf einen Virtualisierungsdienst zugreifen, um die Zuteilung einer oder mehrerer Ressourceninstanzen innerhalb des virtuellen Netzwerks oder innerhalb eines anderen virtuellen Netzwerks anzufordern.
  • In einigen Ausführungsformen kann ein System, das einen Teil der oder alle hierin beschriebenen Techniken implementiert, ein Allzweck-Computersystem beinhalten, das ein oder mehrere computerzugängliche Medien beinhaltet oder zum Zugriff auf diese konfiguriert ist, wie etwa das in 10 dargestellte Computersystem 1000. In der veranschaulichten Ausführungsform beinhaltet das Computersystem 1000 einen oder mehrere Prozessoren 1010, die über eine Ein-/Ausgabe-(E/A)-Schnittstelle 1030 mit einem Systemspeicher 1020 gekoppelt sind. Das Computersystem 1000 beinhaltet ferner eine Netzwerkschnittstelle 1040, die mit der E/A-Schnittstelle 1030 gekoppelt ist. Während 10 das Computersystem 1000 als einzelne Rechenvorrichtung zeigt, kann ein Computersystem 1000 in verschiedenen Ausführungsformen eine Rechenvorrichtung oder eine beliebige Anzahl von Rechenvorrichtungen beinhalten, die zum Zusammenarbeiten als einzelnes Computersystem 1000 konfiguriert sind.
  • In verschiedenen Ausführungsformen kann das Computersystem 1000 ein Uniprozessorsystem, das einen Prozessor 1010 beinhaltet, oder ein Multiprozessorsystem sein, das mehrere Prozessoren 1010 (z. B. zwei, vier, acht oder eine andere geeignete Anzahl) beinhaltet. Die Prozessoren 1010 können alle geeigneten Prozessoren sein, die Anweisungen ausführen können. In verschiedenen Ausführungsformen können die Prozessoren 1010 beispielsweise Allzweck- oder eingebettete Prozessoren sein, die eine der verschiedenen Befehlssatzarchitekturen (ISAs) wie etwa die x86-, PowerPC-, SPARC- oder MIPS-ISAs oder jede andere geeignete ISA implementieren. In Multiprozessorsystemen kann jeder der Prozessoren 1010 üblicherweise, aber nicht notwendigerweise, die gleiche ISA implementieren.
  • Der Systemspeicher 1020 kann Anweisungen und Daten speichern, auf die der/die Prozessor(en) 1010 zugreifen kann/können. In verschiedenen Ausführungsformen können die Systemspeicher 1020 mit jeder geeigneten Speichertechnologie implementiert sein (wie etwa Direktzugriffsspeicher (RAM), statischer RAM (SRAM), synchroner dynamischer RAM (SDRAM), nichtflüchtiger Speicher vom Typ Flash oder jede andere Art von Speicher). In der veranschaulichten Ausführungsform sind Programmanweisungen und Daten, die eine oder mehrere gewünschte Funktionen implementieren, wie etwa die oben beschriebenen Verfahren, Techniken und Daten, im Systemspeicher 1020 als Rollenerreichbarkeitsanalysecode 1025 (z. B. ausführbar zum Implementieren des Rollenerreichbarkeitsanalysator 150 als Ganzes oder zum Teil) und Daten 1026 gespeichert.
  • In einer Ausführungsform kann die E/A-Schnittstelle 1030 zum Koordinieren des E/A-Verkehrs zwischen dem Prozessor 1010, dem Systemspeicher 1020 und allen peripheren Vorrichtungen im System konfiguriert sein, darunter über die Netzwerkschnittstelle 1040 oder andere periphere Schnittstellen. In einigen Ausführungsformen kann die E/A-Schnittstelle 1030 alle notwendigen Protokoll-, Timing- oder sonstigen Datentransformationen durchführen, um Datensignale von einer Komponente (z. B. dem Systemspeicher 1020) in ein Format zu konvertieren, das für die Verwendung durch eine andere Komponente (z. B. den Prozessor 1010) geeignet ist. In einigen Ausführungsformen kann die E/A-Schnittstelle 1030 Unterstützung für Vorrichtungen beinhalten, die über verschiedene Arten von Peripheriebussen angeschlossen sind, wie etwa eine Variante des Peripheral Component Interconnect (PCI)-Busstandards oder des Universal Serial Bus (USB)-Standards. In einigen Ausführungsformen kann die Funktion der E/A-Schnittstelle 1030 in zwei oder mehr separate Komponenten aufgeteilt werden, beispielsweise in eine Nord- und eine Südbrücke. In einigen Ausführungsformen können auch einige oder alle Funktionen der E/A-Schnittstelle 1030, wie etwa eine Schnittstelle zum Systemspeicher 1020, direkt in den Prozessor 1010 integriert sein.
  • Die Netzwerkschnittstelle 1040 kann zum Erlauben des Austauschs von Daten zwischen dem Computersystem 1000 und anderen an ein Netzwerk oder Netzwerke 1050 angeschlossenen Vorrichtungen 1060, wie etwa anderen Computersystemen, konfiguriert sein. In verschiedenen Ausführungsformen kann die Netzwerkschnittstelle 1040 jedoch die Kommunikation über jedes geeignete drahtgebundene oder drahtlose allgemeine Datennetzwerk unterstützen, wie beispielsweise etwa andere Arten von Ethernet-Netzwerken. Zusätzlich kann die Netzwerkschnittstelle 1040 die Kommunikation über Telekommunikations-/Telefonnetzwerke wie analoge Sprachnetzwerke oder digitale Glasfaserkommunikationsnetzwerke, über Speicherbereichsnetzwerke wie Fibre Channel SANs oder über Ein-/Ausgabe jeder anderen geeigneten Art von Netzwerk und/oder Protokoll unterstützen.
  • In einigen Ausführungsformen beinhaltet ein Computersystem 1000 eine oder mehrere Auslagerungskarten 1070A oder 1070B (darunter einen oder mehrere Prozessoren 1075 und möglicherweise die eine oder mehreren Netzwerkschnittstellen 1040 beinhaltend), die unter Verwendung einer E/A-Schnittstelle 1030 (z. B. einem Bus, der eine Version des PCI-E-Standards (Peripheral Component Interconnect - Express) oder eine andere Schnittstelle wie eine QuickPath-Schnittstelle (QPI) oder eine UltraPath-Schnittstelle (UPI) implementiert) verbunden sind. Beispielsweise kann das Computersystem 1000 in einigen Ausführungsformen als elektronische Hostvorrichtung fungieren (z. B. als Teil eines Hardwarevirtualisierungsdienstes arbeiten), die Rechenressourcen wie etwa Recheninstanzen hostet, wobei die eine oder die mehreren Auslagerungskarten 1070A oder 1070B einen Virtualisierungsmanager ausführen, der Recheninstanzen verwalten kann, die auf der elektronischen Hostvorrichtung ausgeführt werden. Als ein Beispiel kann/können in einigen Ausführungsformen die Auslagerungskarte(n) 1070A oder 1070B Recheninstanzverwaltungsoperationen durchführen, wie etwa das Anhalten und/oder Aufheben der Pausierung von Recheninstanzen, das Starten und/oder Beenden von Recheninstanzen, das Durchführen von Speicherübertragungs-/Kopieroperationen usw. Diese Verwaltungsoperationen können in einigen Ausführungsformen von der/den Auslagerungskarte(n) 1070A oder 1070B in Koordination mit einem Hypervisor (z. B. auf Anforderung von einem Hypervisor) durchgeführt werden, der von den anderen Prozessoren 1010A - 1010N des Computers ausgeführt wird System 1000. In einigen Ausführungsformen kann der durch die Auslagerungskarte(n) 1070A oder 1070B implementierte Virtualisierungsmanager jedoch Anforderungen von anderen Entitäten aufnehmen (z. B. von Recheninstanzen selbst) und kann sich mit keinem separaten Hypervisor koordinieren (oder diesen bedienen).
  • In einigen Ausführungsformen kann der Systemspeicher 1020 eine Ausführungsform eines computerzugänglichen Mediums sein, das zum Speichern von Programmanweisungen und Daten wie oben beschrieben konfiguriert ist. In anderen Ausführungsformen können jedoch Programmanweisungen und/oder Daten auf anderen Arten von computerzugänglichen Medien empfangen, gesendet oder gespeichert werden. Allgemein gesagt kann ein nicht flüchtiges Medium, auf das ein Computer zugreifen kann, computerlesbare Speichermedien oder Speichermedien wie magnetische oder optische Medien beinhalten, z. B. Disketten oder DVD/CD, die über die E/A-Schnittstelle 1030 mit dem Computersystem 1000 gekoppelt sind. Ein nicht-transitorisches computerlesbares Speichermedium kann auch jedes flüchtige oder nichtflüchtige Medium wie RAM (z. B. SDRAM, DDR SDRAM, SRAM usw.), ROM usw. beinhalten, das in einigen Ausführungsformen des Computersystems 1000 als Systemspeicher 1020 oder eine andere Art von Speicher beinhaltet sein kann. Ferner kann ein computerzugängliches Medium Übertragungsmedien oder Signale wie etwa elektrische, elektromagnetische oder digitale Signale beinhalten, die über ein Kommunikationsmedium wie etwa ein Netzwerk und/oder eine drahtlose Verbindung übermittelt werden, wie sie etwa über die Netzwerkschnittstelle 1040 implementiert werden kann.
  • Die verschiedenen Ausführungsformen können ferner in einer breiten Vielfalt von Betriebsumgebungen implementiert sein, zu denen in einigen Fällen ein oder mehrere Benutzercomputer, Rechenvorrichtungen oder Verarbeitungsvorrichtungen gehören können, die zum Betreiben einer beliebigen Anzahl von Anwendungen verwendet werden können. Benutzer- oder Client-Vorrichtungen können eine beliebige Anzahl von Allzweckcomputern beinhalten, wie etwa Desktop- oder Tablet-Computer, auf denen ein Standardbetriebssystem ausgeführt wird, sowie Mobilfunk-, drahtlose und tragbare Vorrichtungen, auf denen mobile Software ausgeführt wird und die in der Lage sind, eine Reihe von Networking- und Messaging-Protokollen zu unterstützen. Ein derartiges System kann zudem eine Reihe von Workstations beinhalten, auf denen ein beliebiges aus einer Vielfalt von handelsüblichen Betriebssystemen und sonstige bekannte Anwendungen für Zwecke wie etwa Entwicklung und Datenbankverwaltung ausgeführt werden. Diese Vorrichtungen können zudem weitere elektronische Vorrichtungen beinhalten, wie etwa Dummy Terminals, Thin Clients, Spielesysteme und andere Vorrichtungen, die in der Lage sind, über ein Netzwerk zu kommunizieren.
  • Die meisten Ausführungsformen verwenden mindestens ein Netzwerk, das dem Fachmann bekannt wäre, zum Unterstützen von Kommunikationen unter Verwendung einer Vielzahl von weithin verfügbaren Protokollen, wie etwa Transmission Control Protocol/Internet Protocol (TCP/IP), File Transfer Protocol (FTP), Universal Plug and Play (UPnP), Network File System (NFS), Common Internet File System (CIFS), Extensible Messaging and Presence Protocol (XMPP), AppleTalk usw. Das/die Netzwerk(e) kann/können zum Beispiel ein lokales Netzwerk (LAN), ein Weitverkehrsnetzwerk (WAN), ein virtuelles privates Netzwerk (VPN), das Internet, ein Intranet, ein Extranet, ein öffentliches Telefonnetz (PSTN), ein Infrarotnetzwerk, ein drahtloses Netzwerk, und jede Kombination davon beinhalten.
  • In Ausführungsformen, die einen Webserver verwenden, kann der Webserver beliebige von einer Vielfalt von Server- oder Mid-Tier-Anwendungen ausführen, darunter HTTP-Server, FTP-Server, CGI-Server, Datenserver, Java-Server und Geschäftsanwendungsserver, usw. Der/die Server kann/können außerdem in der Lage sein, Programme oder Skripte als Reaktion auf Anforderungen von Benutzervorrichtungen auszuführen, wie etwa durch Ausführen einer oder mehrerer Webanwendungen, die als ein oder mehrere Skripte oder Programme implementiert sein können, die in einer beliebigen Programmiersprache, wie etwa Java®, C, C# oder C++, oder einer beliebigen Skriptsprache, wie etwa Perl, Python oder TCL, sowie Kombinationen davon geschrieben sind. Der/die Server kann/können auch Datenbankserver umfassen, darunter diejenigen, die im Handel von Oracle®, Microsoft®, Sybase®, IBM® usw. erhältlich sind, ohne darauf beschränkt zu sein. Die Datenbankserver können relational oder nicht relational (z. B. „NoSQL“), verteilt oder nicht verteilt usw. sein.
  • Die Umgebung kann eine Vielfalt von Datenspeichern und weiteren Speichern und Speichermedien wie vorstehend erörtert beinhalten. Diese können an einer Vielfalt von Stellen angeordnet sein, wie etwa auf einem Speichermedium, das für einen oder mehrere der Computer lokal (und/oder darin angeordnet) ist oder von beliebigen oder allen der Computer im gesamten Netzwerk entfernt ist. In einem bestimmten Satz von Ausführungsformen können die Informationen in einem Speichernetzwerk (storage area network - SAN) angeordnet sein, das dem Fachmann bekannt ist. Gleichermaßen können beliebige zum Durchführen der Funktionen, die den Computern, Servern oder anderen Netzwerkvorrichtungen zugeschrieben sind, erforderliche Dateien gegebenenfalls lokal und/oder entfernt gespeichert sein. Wenn ein System computergestützte Vorrichtungen beinhaltet, kann jede solche Vorrichtung Hardwareelemente beinhalten, die über einen Bus elektrisch gekoppelt sein können, wobei die Elemente zum Beispiel mindestens eine zentrale Verarbeitungseinheit (central processing unit - CPU), mindestens eine Eingabevorrichtung (z. B. eine Maus, eine Tastatur, einen Controller, einen Touchscreen oder ein Tastenfeld) und mindestens eine Ausgabevorrichtung (z. B. eine Anzeigevorrichtung, einen Drucker oder einen Lautsprecher) beinhalten. Ein solches System kann außerdem eine oder mehrere Speichervorrichtungen beinhalten, wie etwa Plattenlaufwerke, optische Speichervorrichtungen und Solid-State-Speichervorrichtungen wie etwa Direktzugriffsspeicher (random access memory - RAM) oder Festwertspeicher (read-only memory - ROM) sowie entfernbare Medienvorrichtungen, Speicherkarten, Flash-Karten usw.
  • Solche Vorrichtungen können wie vorstehend beschrieben außerdem ein computerlesbares Speichermedien-Lesegerät, eine Kommunikationsvorrichtung (z. B. ein Modem, eine (drahtlose oder drahtgebundene) Netzwerkkarte, eine Infrarot-Kommunikationsvorrichtung usw.) und Arbeitsspeicher beinhalten. Das computerlesbare Speichermedien-Lesegerät kann mit einem computerlesbaren Speichermedium, das entfernte, lokale, feste und/oder entfernbare Speichervorrichtungen sowie Speichermedien für vorübergehendes und/oder dauerhaftes Enthalten, Speichern, Übertragen und Abrufen von computerlesbaren Information darstellt, verbunden oder zu deren Aufnahme konfiguriert sein. Das System und die verschiedenen Vorrichtungen beinhalten zudem typischerweise eine Anzahl an Softwareanwendungen, Modulen, Diensten oder anderen Elementen, die sich in mindestens einer Arbeitsspeichervorrichtung befinden, darunter ein Betriebssystem und Anwendungsprogramme, wie etwa eine Client-Anwendung oder ein Webbrowser. Es versteht sich, dass alternative Ausführungsformen zahlreiche Variationen von der vorstehend beschriebenen aufweisen können. Beispielsweise kann außerdem individuell angepasste Hardware verwendet werden und/oder können spezielle Elemente in Hardware, Software (darunter tragbare Software wie etwa Applets) oder beiden umgesetzt sein. Ferner kann eine Verbindung zu anderen Rechenvorrichtungen, wie etwa Netzwerk-Eingabe-/Ausgabe-Vorrichtungen, eingesetzt werden.
  • Speichermedien und andere nicht-transitorische computerlesbare Medien, die Code oder Teile von Code enthalten, können beliebige geeignete Medien beinhalten, die im Stand der Technik bekannt sind oder verwendet werden, darunter Speichermedien und Kommunikationsmedien, wie etwa unter anderem flüchtige und nicht flüchtige, entfernbare und nicht entfernbare Medien, die in einem beliebigen Verfahren oder einer beliebigen Technik zur Speicherung von Informationen implementiert sind, wie etwa computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten, darunter RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnik, CD-ROM, Digital Versatile Disk (DVD) oder anderer optischer Speicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen oder ein beliebiges anderes Medium, das zum Speichern der gewünschten Information verwendet werden kann und auf das durch eine Systemvorrichtung zugegriffen werden kann. Auf Grundlage der Offenbarung und der in dieser Schrift bereitgestellten Lehren versteht der Durchschnittsfachmann, dass andere Möglichkeiten und/oder Verfahren vorhanden sind, um die verschiedenen Ausführungsformen zu implementieren.
  • In der vorstehenden Beschreibung sind verschiedene Ausführungsformen beschrieben. Zu Zwecken der Erläuterung werden konkrete Konfigurationen und Details dargelegt, um ein tiefgreifendes Verständnis der Ausführungsformen bereitzustellen. Für den Fachmann ist jedoch auch ersichtlich, dass die Ausführungsformen ohne die konkreten Details umgesetzt werden können. Ferner können hinlänglich bekannte Merkmale weggelassen oder vereinfacht werden, damit die beschriebene Ausführungsform nicht unklar wird.
  • Text in Klammern und Blöcke mit gestrichelten Umrandungen (z. B. große Striche, kleine Striche, Punkt-Strich und Punkte) werden hierin zum Veranschaulichen von optionalen Operationen verwendet, die einigen Ausführungsformen zusätzliche Merkmale hinzufügen. Eine solche Notation sollte jedoch nicht so verstanden werden, dass dies die einzigen Optionen oder optionalen Operationen sind und/oder dass Blöcke mit durchgezogenen Rändern in bestimmten Ausführungsformen nicht optional sind.
  • Bezugszeichen mit angehängten Buchstaben (z. B. 918A-918N) können verwendet werden, um anzuzeigen, dass es in verschiedenen Ausführungsformen eine oder mehrere Instanzen der referenzierten Entität geben kann, und wenn es mehrere Instanzen gibt, müssen diese jeweils nicht identisch sein, sondern können stattdessen einige allgemeine Eigenschaften teilen oder sich auf gemeinsame Weise verhalten. Darüber hinaus sollen die verwendeten Suffixe nicht implizieren, dass eine bestimmte Menge der Entität existiert, sofern nicht ausdrücklich etwas anderes angegeben ist. Somit können zwei Entitäten, die die gleichen oder unterschiedliche Suffixbuchstaben verwenden, in verschiedenen Ausführungsformen die gleiche Anzahl von Instanzen aufweisen oder nicht.
  • Verweise auf „eine Ausführungsform“, „eine Ausführungsform“, „ein Ausführungsbeispiel“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft beinhalten kann, aber nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, die bestimmte Struktur, oder Eigenschaft beinhalten muss. Darüber hinaus beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Wenn ferner ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird vorgebracht, dass es im Bereich des Wissens eines Fachmanns liegt, solche Merkmale, Strukturen oder Eigenschaften in Verbindung mit anderen Ausführungsformen zu beeinflussen, ob explizit beschrieben oder nicht.
  • Darüber hinaus soll in den verschiedenen oben beschriebenen Ausführungsformen, sofern nicht ausdrücklich anders angegeben, disjunktive Sprache wie der Ausdruck „mindestens eines von A, B oder C“ so verstanden werden, dass er entweder A, B oder C oder eine beliebige Kombination davon (z. B. A, B und/oder C) bedeutet. Somit soll derartige disjunktive Sprache im Allgemeinen nicht ausdrücken, dass bestimmte Ausführungsformen erfordern, dass mindestens eines von X, mindestens eines von Y oder mindestens eines von Z jeweils vorhanden ist.
  • Zumindest einige Ausführungsformen der offenbarten Technologien können im Hinblick auf die folgenden Sätze beschrieben werden:
    1. 1. Computerimplementiertes Verfahren, umfassend:
      • Empfangen einer Eingabe, die eine Rollenerreichbarkeitsanalyse einer Vielzahl von Konten anfordert, die einem Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks zugeordnet sind, wobei die Vielzahl von Konten insgesamt eine Vielzahl von Rollen und eine Vielzahl von Richtlinien beinhaltet;
      • Initiieren der Ausführung einer Analyse-Engine, die zum Identifizieren von Rollenerreichbarkeitsbeziehungen unter der Vielzahl von Rollen verwendet wird, wobei eine Rollenerreichbarkeitsbeziehung zwischen einer ersten Rolle und einer zweiten Rolle der Vielzahl von Rollen anzeigt, dass einem Benutzer erlaubt ist, die zweite Rolle über eine Übernahme der ersten Rolle und einen oder mehrere Rollenübernahmeschritte zu übernehmen, und wobei die Analyse-Engine eine Spezifikation der Vielzahl von Rollen und der Vielzahl von Richtlinien als Eingabe für ein Rollenerreichbarkeitsprogramm verwendet, das eine Modellierung des Zustands von transitiven Sitzungs-Tags über mehrere Rollenübernahmeschritte hinweg beinhaltet;
      • Generieren mindestens eines Rollenerreichbarkeitsgraphen, der die Rollenerreichbarkeitsbeziehungen darstellt, wobei jeder Knoten des Rollenerreichbarkeitsgraphen eine jeweilige Rolle der Vielzahl von Rollen darstellt und eine Kante zwischen einem ersten Knoten und einem zweiten Knoten des Rollenerreichbarkeitsgraphen angibt, dass es einer jeweiligen ersten Rolle erlaubt ist, eine jeweilige zweite Rolle der Vielzahl von Rollen zu übernehmen; und
      • Veranlassen der Anzeige einer grafischen Benutzeroberfläche (GUI), die eine grafische Anzeige des mindestens einen Rollenerreichbarkeitsgraphen beinhaltet.
    2. 2. Computerimplementiertes Verfahren nach Satz 1, ferner umfassend das Identifizieren der Rollenerreichbarkeitsbeziehungen zwischen der Vielzahl von Rollen, indem für jedes Paar von Rollen der Vielzahl von Rollen bestimmt wird, ob ein Satz von Rollenübernahmeschritten existiert, wobei eine zweite Rolle des Paars durch eine erste Rolle des Paars über die Menge der Rollenübernahmeschritte übernehmbar ist.
    3. 3. Computerimplementiertes Verfahren nach einem der Sätze 1 oder 2, wobei die Ausführung der Analyse-Engine das Analysieren von Rollenpaaren der Vielzahl von Rollen involviert und wobei das Verfahren ferner das Verteilen der Analyse der Rollenpaare über eine Vielzahl von gleichzeitig ausgeführten Rechenressourcen umfasst.
    4. 4. Computerimplementiertes Verfahren, umfassend:
      • Erhalten von Daten, die eine erste Rolle und eine zweite Rolle spezifizieren, die durch einen Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks definiert sind, und die ferner mehrere Richtlinien spezifizieren, die jeweils mit der ersten Rolle oder der zweiten Rolle assoziiert sind;
      • Initiieren der Ausführung einer Analyse-Engine, um zu bestimmen, dass die zweite Rolle von der ersten Rolle über einen oder mehrere Rollenübernahmeschritte erreichbar ist, wobei die Analyse-Engine die Daten als Eingabe für ein Rollenerreichbarkeitsprogramm verwendet, das eine Modellierung des Zustands von transitiven Sitzungs-Tags über mehrere Rollenübernahmeschritte hinweg beinhaltet; und
      • Veranlassen der Anzeige einer grafischen Benutzeroberfläche (GUI) mit einer Darstellung der ersten Rolle und der zweiten Rolle und ferner mit einer Angabe des einen oder der mehreren Rollenübernahmeschritte zwischen der ersten Rolle und der zweiten Rolle.
    5. 5. Computerimplementiertes Verfahren nach Satz 4, wobei die erste Rolle und die zweite Rolle Teil einer Vielzahl von Rollen sind, die von der Analyse-Engine analysiert werden, und wobei das Verfahren ferner umfasst: Identifizieren der Rollenerreichbarkeitsbeziehungen zwischen der Vielzahl von Rollen, indem für jedes Paar von Rollen der Vielzahl von Rollen bestimmt wird, ob ein Satz von Rollenübernahmeschritten existiert, wobei eine zweite Rolle des Paars durch eine erste Rolle des Paars über die Menge der Rollenübernahmeschritte übernehmbar ist.
    6. 6. Computerimplementiertes Verfahren nach einem der Sätze 4 oder 5, wobei die erste Rolle und die zweite Rolle Teil einer Vielzahl von Rollen sind, die von der Analyse-Engine analysiert werden, wobei die Ausführung der Analyse-Engine das Analysieren von Rollenpaaren der Vielzahl von Rollen involviert und wobei das Verfahren ferner das Verteilen der Analyse der Rollenpaare über eine Vielzahl von gleichzeitig ausgeführten Rechenressourcen umfasst.
    7. 7. Computerimplementiertes Verfahren nach einem der Sätze 4-6, wobei die erste Rolle und die zweite Rolle mit einem oder mehreren Konten assoziiert sind, die durch einen Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks definiert sind, und wobei die Identitäts- und Zugriffsverwaltung die Ausführung des Reagierens auf eine Anforderung zum Durchführen einer Rollenerreichbarkeitsanalyse für das eine oder die mehreren Konten initiiert, die durch den Identitäts- und Zugriffsverwaltungsdienst definiert sind.
    8. 8. Computerimplementiertes Verfahren nach Satz 4-6, ferner umfassend:
      • Empfangen einer Eingabe, die eine Rollenerreichbarkeitsanalyse einer Vielzahl von durch einen Identitäts- und Zugriffsverwaltungsdienst des Cloud-Anbieter-Netzwerks definierten Konten einer Organisation anfordert, durch einen Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks, wobei die Organisation eine Vielzahl von Rollen, darunter die erste Rolle und die zweite Rolle, beinhaltet; und
      • Identifizieren einer Vielzahl von Rollenerreichbarkeitsbeziehungen unter der Vielzahl von Rollen, beinhaltend das Bestimmen, dass die zweite Rolle von der ersten Rolle aus erreichbar ist.
    9. 9. Computerimplementiertes Verfahren nach einem der Sätze 4-8, wobei die erste Rolle mit einem ersten Konto eines Cloud-Anbieter-Netzwerks und die zweite Rolle mit einem zweiten Konto des Cloud-Anbieter-Netzwerks assoziiert ist, und wobei die GUI einen Hinweis darauf beinhaltet, dass die erste Rolle und die zweite Rolle mit unterschiedlichen Konten assoziiert sind.
    10. 10. Computerimplementiertes Verfahren nach einem der Sätze 4-9, wobei die zweite Rolle mit einer Vertrauensrichtlinie assoziiert ist, die einen oder mehrere Prinzipale angibt, die berechtigt sind, die erste Rolle zu übernehmen, wobei die erste Rolle ferner mit einer Identitätsrichtlinie assoziiert ist, die der ersten Rolle gewährte Berechtigungen angibt, und wobei die Daten, die als Eingabe für die Analyse-Engine verwendet werden, ferner eine Darstellung der Vertrauensrichtlinie und der Identitätsrichtlinie beinhalten.
    11. 11. Computerimplementiertes Verfahren nach einem der Sätze 4-10, wobei das Rollenerreichbarkeitsprogramm ferner die Verwendung modelliert von mindestens einem von: einer Berechtigungsgrenzenrichtlinie, die zum Definieren von maximalen Berechtigungen, die identitätsbasierte Richtlinien Entitäten gewähren können, darunter der ersten Rolle oder der zweiten Rolle, verwendet wird, einer Sitzungsrichtlinie, die zum Definieren von einer Sitzung gewährten Berechtigungen verwendet wird, einer Dienststeuerungsrichtlinie, die zum Definieren von Berechtigungen für Entitäten einer Organisation verwendet wird, darunter der ersten Rolle oder der zweiten Rolle, oder einer ressourcenbasierte Richtlinie, die zum Definieren von Berechtigungen für eine Ressource verwendet wird.
    12. 12. Computerimplementiertes Verfahren nach einem der Sätze 4-11, wobei die GUI eine grafische Anzeige eines Rollenerreichbarkeitsgraphen beinhaltet, der einen ersten Knoten, der die erste Rolle darstellt, einen zweiten Knoten, der die zweite Rolle darstellt, und eine oder mehrere Kanten, die einen oder mehrere Rollenübernahmeschritte zwischen der ersten Rolle und der zweiten Rolle darstellen, beinhaltet.
    13. 13. Computerimplementiertes Verfahren nach einem der Sätze 4-12, ferner umfassend:
      • Empfangen einer Eingabe, die die zweite Rolle auswählt; und
      • Veranlassen der Anzeige von Identitätsrichtlinieninformationen, die mit der zweiten Rolle assoziiert sind, wobei die Identitätsrichtlinieninformationen Berechtigungen spezifizieren, die der zweiten Rolle gewährt werden.
    14. 14. Computerimplementiertes Verfahren nach einem der Sätze 4-13, wobei ein transitives Sitzungs-Tag der transitiven Sitzungs-Tags Metadaten sind, die einer Rollenübernahmesitzung zugewiesen sind, und wobei das transitive Sitzungs-Tag von nachfolgenden Rollenübernahmesitzungen geerbt wird, die mit nachfolgenden Rollenübernahmeschritten assoziiert sind.
    15. 15. Computerimplementiertes Verfahren nach einem der Sätze 4-14, ferner umfassend:
      • Empfangen einer Anforderung, die einen Satz von einer oder mehreren Rollen spezifiziert, der die erste Rolle beinhaltet, und ferner eine eingehende oder ausgehende Analyse der Erreichbarkeit der einen oder mehreren Rollen spezifiziert; und
      • wobei die Analyse-Engine einen Satz von eingehenden oder ausgehenden Rollen bestimmt, die die eine oder mehreren Rollen erreichen können, und wobei die GUI ferner eine Darstellung der eingehenden oder ausgehenden Rollen beinhaltet.
    16. 16. System, umfassend:
      • eine oder mehrere erste elektronische Vorrichtungen zum Implementieren eines Identitäts- und Zugriffsverwaltungsdienstes in einem Multi-Tenant-Cloud-Anbieter-Netzwerk, wobei der Identitäts- und Zugriffsverwaltungsdienst Anweisungen beinhaltet, die bei Ausführung den Identitäts- und Zugriffsverwaltungsdienst zu Folgendem veranlassen:
        • Empfangen einer Eingabe, die eine Rollenerreichbarkeitsanalyse einer Vielzahl von Konten anfordert, die mit einem Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks assoziiert sind, wobei die Vielzahl von Konten insgesamt eine Vielzahl von Rollen und eine Vielzahl von Richtlinien beinhaltet,
        • Initiieren der Ausführung einer Analyse-Engine, die zum Identifizieren von Rollenerreichbarkeitsbeziehungen unter der Vielzahl von Rollen verwendet wird, wobei eine Rollenerreichbarkeitsbeziehung zwischen einer ersten Rolle und einer zweiten Rolle der Vielzahl von Rollen anzeigt, dass einem Benutzer erlaubt ist, die zweite Rolle über eine Übernahme der ersten Rolle und einen oder mehrere Rollenübernahmeschritte zu übernehmen, und
        • Veranlassen der Anzeige einer grafischen Benutzeroberfläche (GUI), die eine grafische Anzeige des mindestens einen von der Analyse-Engine generierten Rollenerreichbarkeitsgraphen beinhaltet; und
      • eine oder mehrere zweite elektronische Vorrichtungen zum Implementieren einer Analyse-Engine im Multi-Tenant-Anbieter-Netzwerk, wobei die Analyse-Engine Anweisungen enthält, die bei Ausführung die Analyse-Engine zu Folgendem veranlassen:
        • Verwenden einer Spezifikation der Vielzahl von Rollen und der Vielzahl von Richtlinien als Eingabe für ein Rollenerreichbarkeitsprogramm, das eine Modellierung des Zustands von transitiven Sitzungs-Tags über mehrere Rollenübernahmeschritte hinweg beinhaltet, und
        • Generieren mindestens eines Rollenerreichbarkeitsgraphen, der die Rollenerreichbarkeitsbeziehungen darstellt, wobei jeder Knoten des Rollenerreichbarkeitsgraphen eine jeweilige Rolle der Vielzahl von Rollen darstellt und wobei eine Kante zwischen einem ersten Knoten und einem zweiten Knoten des Rollenerreichbarkeitsgraphen angibt, dass es einer jeweiligen ersten Rolle erlaubt ist, eine jeweilige zweite Rolle der Vielzahl von Rollen zu übernehmen.
    17. 17. System nach Satz 16, wobei die Analyse-Engine ferner Anweisungen beinhaltet, die bei Ausführung die Analyse-Engine veranlassen zum Identifizieren von Rollenerreichbarkeitsbeziehungen zwischen der Vielzahl von Rollen, indem sie für jedes Paar von Rollen der Vielzahl von Rollen bestimmt, ob ein Satz von Rollenübernahmeschritten besteht, wenn eine zweite Rolle des Paars von einer ersten Rolle des Paars über einen oder mehrere Rollenübernahmeschritte übernommen werden kann, wobei der Rollenerreichbarkeitsgraph einen oder mehrere transitiv geschlossene Graphen darstellt, die die Rollenerreichbarkeitsbeziehungen darstellen.
    18. 18. System nach einem der Sätze 16 oder 17, wobei die Ausführung der Analyse-Engine das Analysieren von Rollenpaaren der Vielzahl von Rollen involviert und wobei der Identitäts- und Zugriffsverwaltungsdienst ferner Anweisungen beinhaltet, die bei Ausführung den Identitäts- und Zugriffsverwaltungsdienst zum Verteilen der Analyse der Rollenpaare über eine Vielzahl von gleichzeitig ausgeführten Rechenressourcen veranlassen.
    19. 19. System nach einem der Sätze 16-18, wobei die erste Rolle mit einem ersten Konto eines Cloud-Anbieter-Netzwerks und die zweite Rolle mit einem zweiten Konto des Cloud-Anbieter-Netzwerks assoziiert ist, und wobei die GUI einen Hinweis darauf beinhaltet, dass die erste Rolle und die zweite Rolle mit unterschiedlichen Konten assoziiert sind.
    20. 20. System nach einem der Sätze 16-19, wobei die zweite Rolle mit einer Vertrauensrichtlinie assoziiert ist, die einen oder mehrere Prinzipale angibt, die berechtigt sind, die erste Rolle zu übernehmen, wobei die erste Rolle ferner mit einer Identitätsrichtlinie assoziiert ist, die der ersten Rolle gewährte Berechtigungen angibt, und wobei die Daten, die als Eingabe für die Analyse-Engine verwendet werden, ferner eine Darstellung der Vertrauensrichtlinie und der Identitätsrichtlinie beinhalten.
  • Dementsprechend sind die Beschreibung und die Zeichnungen in einem veranschaulichenden und nicht im einschränkenden Sinne zu betrachten. Es ist jedoch ersichtlich, dass verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne vom weiteren Geist und Schutzumfang der Offenbarung, wie in den Patentansprüchen dargelegt, abzuweichen.

Claims (15)

  1. Computerimplementiertes Verfahren, umfassend: Erhalten von Daten, die eine erste Rolle und eine zweite Rolle spezifizieren, die durch einen Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks definiert sind, und die ferner mehrere Richtlinien spezifizieren, die jeweils mit der ersten Rolle oder der zweiten Rolle assoziiert sind; Initiieren der Ausführung einer Analyse-Engine, um zu bestimmen, dass die zweite Rolle von der ersten Rolle über einen oder mehrere Rollenübernahmeschritte erreichbar ist, wobei die Analyse-Engine die Daten als Eingabe für ein Rollenerreichbarkeitsprogramm verwendet, das eine Modellierung des Zustands von transitiven Sitzungs-Tags über mehrere Rollenübernahmeschritte hinweg beinhaltet; und Veranlassen der Anzeige einer grafischen Benutzeroberfläche (GUI) mit einer Darstellung der ersten Rolle und der zweiten Rolle und ferner mit einer Angabe des einen oder der mehreren Rollenübernahmeschritte zwischen der ersten Rolle und der zweiten Rolle.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei die erste Rolle und die zweite Rolle Teil einer Vielzahl von Rollen sind, die von der Analyse-Engine analysiert werden, und wobei das Verfahren ferner umfasst: Identifizieren der Rollenerreichbarkeitsbeziehungen zwischen der Vielzahl von Rollen, indem für jedes Paar von Rollen der Vielzahl von Rollen bestimmt wird, ob ein Satz von Rollenübernahmeschritten existiert, wobei eine zweite Rolle des Paars durch eine erste Rolle des Paars über die Menge der Rollenübernahmeschritte übernehmbar ist.
  3. Computerimplementiertes Verfahren nach einem der Ansprüche 1 oder 2, wobei die erste Rolle und die zweite Rolle Teil einer Vielzahl von Rollen sind, die von der Analyse-Engine analysiert werden, wobei die Ausführung der Analyse-Engine das Analysieren von Rollenpaaren der Vielzahl von Rollen involviert und wobei das Verfahren ferner das Verteilen der Analyse der Rollenpaare über eine Vielzahl von gleichzeitig ausgeführten Rechenressourcen umfasst.
  4. Computerimplementiertes Verfahren nach einem der Ansprüche 1 bis 3, ferner umfassend: Empfangen einer Eingabe, die eine Rollenerreichbarkeitsanalyse einer Vielzahl von durch einen Identitäts- und Zugriffsverwaltungsdienst des Cloud-Anbieter-Netzwerks definierten Konten einer Organisation anfordert, durch einen Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks, wobei die Organisation eine Vielzahl von Rollen, darunter die erste Rolle und die zweite Rolle, beinhaltet; und Identifizieren einer Vielzahl von Rollenerreichbarkeitsbeziehungen unter der Vielzahl von Rollen, beinhaltend das Bestimmen, dass die zweite Rolle von der ersten Rolle aus erreichbar ist.
  5. Computerimplementiertes Verfahren nach einem der Ansprüche 1-4, wobei die erste Rolle mit einem ersten Konto eines Cloud-Anbieter-Netzwerks und die zweite Rolle mit einem zweiten Konto des Cloud-Anbieter-Netzwerks assoziiert ist, und wobei die GUI einen Hinweis darauf beinhaltet, dass die erste Rolle und die zweite Rolle mit unterschiedlichen Konten assoziiert sind.
  6. Computerimplementiertes Verfahren nach einem der Ansprüche 1-5, wobei die zweite Rolle mit einer Vertrauensrichtlinie assoziiert ist, die einen oder mehrere Prinzipale angibt, die berechtigt sind, die erste Rolle zu übernehmen, wobei die erste Rolle ferner mit einer Identitätsrichtlinie assoziiert ist, die der ersten Rolle gewährte Berechtigungen angibt, und wobei die Daten, die als Eingabe für die Analyse-Engine verwendet werden, ferner eine Darstellung der Vertrauensrichtlinie und der Identitätsrichtlinie beinhalten.
  7. Computerimplementiertes Verfahren nach einem der Ansprüche 1-6, wobei das Rollenerreichbarkeitsprogramm ferner die Verwendung modelliert von mindestens einem von: einer Berechtigungsgrenzenrichtlinie, die zum Definieren von maximalen Berechtigungen, die identitätsbasierte Richtlinien Entitäten gewähren können, darunter der ersten Rolle oder der zweiten Rolle, verwendet wird, einer Sitzungsrichtlinie, die zum Definieren von einer Sitzung gewährten Berechtigungen verwendet wird, einer Dienststeuerungsrichtlinie, die zum Definieren von Berechtigungen für Entitäten einer Organisation verwendet wird, darunter der ersten Rolle oder der zweiten Rolle, oder einer ressourcenbasierte Richtlinie, die zum Definieren von Berechtigungen für eine Ressource verwendet wird.
  8. Computerimplementiertes Verfahren nach einem der Ansprüche 1-7, wobei die GUI eine grafische Anzeige eines Rollenerreichbarkeitsgraphen beinhaltet, der einen ersten Knoten, der die erste Rolle darstellt, einen zweiten Knoten, der die zweite Rolle darstellt, und eine oder mehrere Kanten, die einen oder mehrere Rollenübernahmeschritte zwischen der ersten Rolle und der zweiten Rolle darstellen, beinhaltet.
  9. Computerimplementiertes Verfahren nach Anspruch 4, wobei ein transitives Sitzungs-Tag der transitiven Sitzungs-Tags Metadaten sind, die einer Rollenübernahmesitzung zugewiesen sind, und wobei das transitive Sitzungs-Tag von nachfolgenden Rollenübernahmesitzungen geerbt wird, die mit nachfolgenden Rollenübernahmeschritten assoziiert sind.
  10. Computerimplementiertes Verfahren nach Anspruch 4, ferner umfassend: Empfangen einer Anforderung, die einen Satz von einer oder mehreren Rollen spezifiziert, der die erste Rolle beinhaltet, und ferner eine eingehende oder ausgehende Analyse der Erreichbarkeit der einen oder mehreren Rollen spezifiziert; und wobei die Analyse-Engine einen Satz von eingehenden oder ausgehenden Rollen bestimmt, die die eine oder mehreren Rollen erreichen können, und wobei die GUI ferner eine Darstellung der eingehenden oder ausgehenden Rollen beinhaltet.
  11. System, umfassend: eine oder mehrere erste elektronische Vorrichtungen zum Implementieren eines Identitäts- und Zugriffsverwaltungsdienstes in einem Multi-Tenant-Cloud-Anbieter-Netzwerk, wobei der Identitäts- und Zugriffsverwaltungsdienst Anweisungen beinhaltet, die bei Ausführung den Identitäts- und Zugriffsverwaltungsdienst zu Folgendem veranlassen: Empfangen einer Eingabe, die eine Rollenerreichbarkeitsanalyse einer Vielzahl von Konten anfordert, die mit einem Identitäts- und Zugriffsverwaltungsdienst eines Cloud-Anbieter-Netzwerks assoziiert sind, wobei die Vielzahl von Konten insgesamt eine Vielzahl von Rollen und eine Vielzahl von Richtlinien beinhaltet, Initiieren der Ausführung einer Analyse-Engine, die zum Identifizieren von Rollenerreichbarkeitsbeziehungen unter der Vielzahl von Rollen verwendet wird, wobei eine Rollenerreichbarkeitsbeziehung zwischen einer ersten Rolle und einer zweiten Rolle der Vielzahl von Rollen anzeigt, dass einem Benutzer erlaubt ist, die zweite Rolle über eine Übernahme der ersten Rolle und einen oder mehrere Rollenübernahmeschritte zu übernehmen, und Veranlassen der Anzeige einer grafischen Benutzeroberfläche (GUI), die eine grafische Anzeige des mindestens einen von der Analyse-Engine generierten Rollenerreichbarkeitsgraphen beinhaltet; und eine oder mehrere zweite elektronische Vorrichtungen zum Implementieren einer Analyse-Engine im Multi-Tenant-Anbieter-Netzwerk, wobei die Analyse-Engine Anweisungen enthält, die bei Ausführung die Analyse-Engine zu Folgendem veranlassen: Verwenden einer Spezifikation der Vielzahl von Rollen und der Vielzahl von Richtlinien als Eingabe für ein Rollenerreichbarkeitsprogramm, das eine Modellierung des Zustands von transitiven Sitzungs-Tags über mehrere Rollenübernahmeschritte hinweg beinhaltet, und Generieren mindestens eines Rollenerreichbarkeitsgraphen, der die Rollenerreichbarkeitsbeziehungen darstellt, wobei jeder Knoten des Rollenerreichbarkeitsgraphen eine jeweilige Rolle der Vielzahl von Rollen darstellt und wobei eine Kante zwischen einem ersten Knoten und einem zweiten Knoten des Rollenerreichbarkeitsgraphen angibt, dass es einer jeweiligen ersten Rolle erlaubt ist, eine jeweilige zweite Rolle der Vielzahl von Rollen zu übernehmen.
  12. System nach Anspruch 11, wobei die Analyse-Engine ferner Anweisungen beinhaltet, die bei Ausführung die Analyse-Engine veranlassen zum Identifizieren von Rollenerreichbarkeitsbeziehungen zwischen der Vielzahl von Rollen, indem sie für jedes Paar von Rollen der Vielzahl von Rollen bestimmt, ob ein Satz von Rollenübernahmeschritten besteht, wenn eine zweite Rolle des Paars von einer ersten Rolle des Paars über einen oder mehrere Rollenübernahmeschritte übernommen werden kann, wobei der Rollenerreichbarkeitsgraph einen oder mehrere transitiv geschlossene Graphen darstellt, die die Rollenerreichbarkeitsbeziehungen darstellen.
  13. System nach einem der Ansprüche 11 oder 12, wobei die Ausführung der Analyse-Engine das Analysieren von Rollenpaaren der Vielzahl von Rollen involviert und wobei der Identitäts- und Zugriffsverwaltungsdienst ferner Anweisungen beinhaltet, die bei Ausführung den Identitäts- und Zugriffsverwaltungsdienst zum Verteilen der Analyse der Rollenpaare über eine Vielzahl von gleichzeitig ausgeführten Rechenressourcen veranlassen.
  14. System nach einem der Ansprüche 11-13, wobei die erste Rolle mit einem ersten Konto eines Cloud-Anbieter-Netzwerks und die zweite Rolle mit einem zweiten Konto des Cloud-Anbieter-Netzwerks assoziiert ist, und wobei die GUI einen Hinweis darauf beinhaltet, dass die erste Rolle und die zweite Rolle mit unterschiedlichen Konten assoziiert sind.
  15. System nach einem der Ansprüche 11-14, wobei die zweite Rolle mit einer Vertrauensrichtlinie assoziiert ist, die einen oder mehrere Prinzipale angibt, die berechtigt sind, die erste Rolle zu übernehmen, wobei die erste Rolle ferner mit einer Identitätsrichtlinie assoziiert ist, die der ersten Rolle gewährte Berechtigungen angibt, und wobei die Daten, die als Eingabe für die Analyse-Engine verwendet werden, ferner eine Darstellung der Vertrauensrichtlinie und der Identitätsrichtlinie beinhalten.
DE112021004945.3T 2020-09-23 2021-09-08 Techniken der kompositionellen verifikation für rollenerreichbarkeitsanalysen in identitätssystemen Pending DE112021004945T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/029,581 2020-09-23
US17/029,581 US11394661B2 (en) 2020-09-23 2020-09-23 Compositional reasoning techniques for role reachability analyses in identity systems
PCT/US2021/049462 WO2022066414A1 (en) 2020-09-23 2021-09-08 Compositional reasoning techniques for role reachability analyses in identity systems

Publications (1)

Publication Number Publication Date
DE112021004945T5 true DE112021004945T5 (de) 2023-08-03

Family

ID=78135109

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021004945.3T Pending DE112021004945T5 (de) 2020-09-23 2021-09-08 Techniken der kompositionellen verifikation für rollenerreichbarkeitsanalysen in identitätssystemen

Country Status (4)

Country Link
US (1) US11394661B2 (de)
CN (1) CN116391186B (de)
DE (1) DE112021004945T5 (de)
WO (1) WO2022066414A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220417265A1 (en) * 2021-06-29 2022-12-29 Microsoft Technology Licensing, Llc Anomaly detection in an application with delegate authorization
US11575696B1 (en) 2021-09-20 2023-02-07 Normalyze, Inc. Cloud data attack detection based on cloud security posture and resource network path tracing
US20230094856A1 (en) * 2021-09-20 2023-03-30 Normalyze, Inc. Compact cloud access network based on role-to-resource detection with resource state change tracking and provenance

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933925B2 (en) 2006-06-01 2011-04-26 International Business Machines Corporation System and method for role based analysis and access control
US7676498B2 (en) 2006-06-05 2010-03-09 International Business Machines Corporation Method and data processing system for managing user roles
WO2013138441A1 (en) * 2012-03-13 2013-09-19 Kent State University Systems, methods, and software for computing reachability in large graphs
US9246839B2 (en) * 2013-01-02 2016-01-26 International Business Machines Corporation Extending organizational boundaries throughout a cloud architecture
US9438506B2 (en) * 2013-12-11 2016-09-06 Amazon Technologies, Inc. Identity and access management-based access control in virtual networks
SG11201701007UA (en) * 2014-07-10 2017-03-30 Robert Higgs Universal access smart card for personal health records system
US9893967B1 (en) * 2015-05-14 2018-02-13 Hrl Laboratories, Llc Measuring network efficiency
US10855706B2 (en) * 2016-10-11 2020-12-01 Battelle Memorial Institute System and methods for automated detection, reasoning and recommendations for resilient cyber systems
US10673862B1 (en) 2016-12-07 2020-06-02 Amazon Technologies, Inc. Token-based access tracking and revocation
US10944758B1 (en) * 2018-09-28 2021-03-09 Amazon Technologies, Inc. Computer resource vulnerability assessment and remediation
US11134085B2 (en) * 2018-10-08 2021-09-28 Sonrai Security Inc. Cloud least identity privilege and data access framework
US20200243165A1 (en) * 2019-01-28 2020-07-30 International Business Machines Corporation Prediction model for determining whether feature vector of data in each of multiple input sequences should be added to that of the other data in the sequence
US10798084B1 (en) * 2019-04-30 2020-10-06 Sailpoint Technologies, Inc. System and method for identity management of cloud based computing services in identity management artificial intelligence systems
US10817346B1 (en) * 2019-09-23 2020-10-27 ForgeRock, Inc. Secure service isolation between instances of cloud products using a SaaS model

Also Published As

Publication number Publication date
US20220094643A1 (en) 2022-03-24
WO2022066414A1 (en) 2022-03-31
CN116391186B (zh) 2023-09-15
US11394661B2 (en) 2022-07-19
CN116391186A (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
DE112021004945T5 (de) Techniken der kompositionellen verifikation für rollenerreichbarkeitsanalysen in identitätssystemen
DE102012203561A1 (de) Die Personifikation/Bevollmächtigung eines Benutzers in einem Merkmal-basierenden Authentifizierungssystem
DE102016222034A1 (de) Dynamische Kennworterzeugung
DE112018004411T5 (de) Zugriffssteuerung in mikrodienst-architekturen
DE112019001481T5 (de) Selektives bereitstellen gegenseitiger transportschichtsicherheit mittels alternativer servernamen
DE112015004562T5 (de) Kontextbasiertes Cloud-System für die Zusicherung von Sicherheit
DE112012002741T5 (de) Identitäts- und Berechtigungsprüfungsverfahren für die Sicherheit einer Cloud-Datenverarbeitungsplattform
DE112011101729T5 (de) Verwaltung von Ressourcenzugriff
DE112018004390B4 (de) Sichere zugriffsverwaltung für werkzeuge innerhalb einer sicheren umgebung
DE102019131123A1 (de) Technologien zur transparenten function-as-a-service-arbitrierung für edge-systeme
DE112016001657T5 (de) Multi-Tenant-Sensitiver DHCP-Mechanismus für Cloud-Netzwerke
DE112012003977T5 (de) Eingriffsfreies Verfahren und Vorrichtung zum automatischen Zuteilen von Sicherheitsregelnin einer Cloud-Umgebung
EP4018617A1 (de) Verwaltung von berechtigungen für ressourcen auf cloud-basis mit sitzungsspezifischen attributen
DE112020002343T5 (de) Verteilung von Sicherheitsberechtigungsnachweisen
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE112016002392T5 (de) Autorisierung in einem verteilten System unter Verwendung von Zugriffssteuerungslisten und Gruppen
DE112016000790T5 (de) Instanziierung von Broadcast-Verschlüsselungsschemata zur Laufzeit
DE102021130942A1 (de) Mehrstufiger schutz für datenzentrierte objekte
DE202020005753U1 (de) Verwalten von Benutzeridentitäten in einem verwalteten Multi-Tenant-Dienst
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE102012007217A1 (de) IT-Verfahren für den sicheren Umgang mit Sensitiven Daten im Kontext des Cloud Computings
DE112020003555B4 (de) Verwaltung von sicherheits-berechtigungsnachweisen für client-anwendungen
DE112021005237T5 (de) Verwaltung von privaten schlüsseln
DE102021122507A1 (de) Bereitstellen von isolierten containern zur verarbeitung von benutzeranforderungen
DE112018005283T5 (de) Deduplizierung für dateien in einem cloud-computing-speicher und in datenübertragungswerkzeugen

Legal Events

Date Code Title Description
R012 Request for examination validly filed